X



【PHP】下らねぇ質問はここに 9
■ このスレッドは過去ログ倉庫に格納されています
0563デフォルトの名無しさん (ワッチョイ 5ed5-ISgX)
垢版 |
2018/08/28(火) 10:03:40.00ID:eY+qymJM0
JIS だと扱えない文字が結構あって面倒なんだよね。
氏名を埋め込もうとするだけでもすぐ問題が起こる。
個人的には結構保守的なんで極力 JIS にしたいが、utf8 も仕方ないかなと思うこともある。
0565559 (ワッチョイ 2ad0-wF79)
垢版 |
2018/08/28(火) 15:49:05.60ID:hBn2GmOT0
>>559
>>561です

>>564さん
どちらも化けてないです。
ただ文字化けする状況がよくわからなかっただけです。
自分の環境を全てutf8に統一すれば化けないですかね(´・ω・`)
0566デフォルトの名無しさん (ワッチョイ 9e9f-bqhm)
垢版 |
2018/08/28(火) 18:24:33.50ID:Bhr6KAhH0
どちらかと言えば、送信したサーバー側にあると思うよ。
ヘッダをMIMEエンコードしてないとか、
本文をJISと宣言しておいてSJISとか良く見る。
作る側が理解してない。

それを受信すらメールソフトが何とか正しく表示しようと努力して、
それでもダメだった場合に化ける。

あと稀に、ソースからしてそもそも化けてるという
バカが書いたメールもあるw
0570565 (ワッチョイ 2ad0-wF79)
垢版 |
2018/08/29(水) 16:28:12.93ID:Fy8w4QmX0
>>565です

>>566さん
こちらがしっかりと設定すれば大丈夫そうですね。
後は山のように試行錯誤を積み重ねていきたいと思います(´・ω・`)

今はmail($to・・・)の$toに自分のメールアドレスをどのようにして入れるか考えてます。
define関数で定義した方が安全?なんでしょうか。
勉強がんばります。
0571デフォルトの名無しさん (ワッチョイ bd5b-vl9i)
垢版 |
2018/08/29(水) 16:47:55.26ID:pmPs3x9R0
>>570
メンテナンス性を考慮すれば定数で定義しとく方が好ましい
”ハードコーディング”でググるんだ

あとPHP5.3未満だという理由でもない限りは
定数の定義はdefine()じゃなくconstでいい

define()にしかできない事をやる時だけdefine()を使う
…というかdefine()にしかできないような定数の定義の仕方は
しない方がいいというか
0573570 (ワッチョイ 2ad0-wF79)
垢版 |
2018/08/29(水) 18:04:53.37ID:Fy8w4QmX0
>>570です

>>571さん
constでも定義できるんですね。
他にも詳しいアドバイスありがとうございます。

>>572さん
設定値を管理するファイルを作る、メモしました。
定数名は大文字がマナー?なんですかね。

お二方、アドバイスありがとうございます。
ずっと画面と見つめ合ってたので頭が痛いです。
体調管理に気を付けます。
ありがとうございました。
0577デフォルトの名無しさん (オイコラミネオ MM21-SMhC)
垢版 |
2018/08/30(木) 20:10:41.63ID:b1WMdnEwM
共用のレンタルサーバーだと、
Permissionを0604にするのもありだな。

最初の0は気にしない。
次の6は自分の読み書き権限
次の0は同居してるユーザーに権限剥奪
最後の4はApacheに読み取り権限
0579デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
垢版 |
2018/08/30(木) 20:58:13.62ID:EWk4rtO80
ほとんどの共用レンタルサーバーは、
webユーザーは同一グループに所属するから、
xx0xで引っ掛けて拒否させるんだよ。
最後の4は付けないとApacheが読めない。

https://www.xserver.ne.jp/manual/man_server_permission.php

グループ設計がどうなってるかとか、
PHPの実行ユーザーが誰になるかとか、
事前に確認しないといけないな。
suEXEC、FastCGIなんかで変わってくる場合もあるし。
0583デフォルトの名無しさん (ワッチョイ 1d9f-GNu9)
垢版 |
2018/09/02(日) 10:08:19.04ID:ub6GWDzd0
ど素人です
質問させてください
cakephp3のwebroot以下にある.htaccessで、mod_rewriteの括弧外にrewritecondやrewriteruleが書かれているものを人様のサイトで拝見しました
括弧外に置かれても、機能するものなのでしょうか
0585デフォルトの名無しさん (ワッチョイ 1d9f-J7KC)
垢版 |
2018/09/02(日) 13:32:00.09ID:ub6GWDzd0
そうです

すみません、>>583は携帯から書き込んでいたので正確ではありませんでした
質問するにしても良くなかったですね

===================
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
===================

このようなものなのですが
0586デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
垢版 |
2018/09/02(日) 15:33:48.84ID:afimrVjB0
それは、そのモジュールが有効化されていたら設定するって意味で、
何のモジュールのディレクティブなのか明確になる以外にメリットない。

だから書かない方が良い。
ifを書かなければ、モジュールが無効なら即500エラーで設定ミスに気付ける。
モジュールが無効なのにエラーにならず、
設定したつもりでいる方が危ないからね。
0588デフォルトの名無しさん (ワッチョイ 1d9f-J7KC)
垢版 |
2018/09/02(日) 18:59:05.09ID:ub6GWDzd0
>>586
返答ありがとうございます

リファレンスにしていたものが、全てディレクティブを括弧内に書いていたのと
cakephpのインストール直後のプロジェクトに入っていた.htaccessでも
ディレクティブが<ifmodule>で囲まれていたので、
基本的には囲う必要があり、外に出る方がおかしいと思い込みがありました

まさにおっしゃられていた通り、apache2.confを見てみたら
Loadmoduleでmod_rewriteを有効化していたつもりで、実際にはコメントアウトされていたのですが
それにも気付いていませんでした

どうもありがとうございます
0590デフォルトの名無しさん (ワッチョイ 955b-zBrR)
垢版 |
2018/09/03(月) 11:36:23.62ID:Shssq38w0
>>587
ネタにマジレスしとくと
dieの発音は「ディエ」じゃなく「ダイ」だし
exitとdieは等価なので、エラーログに残るとかは嘘

exitの方が一般的だとは思うが好きな方を使えばOK
あくまで予想だが、die()はperl言語出身者に配慮して作ったんじゃなかろうか
0592デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
垢版 |
2018/09/03(月) 12:08:27.54ID:lQhKIzFA0
>>590
すまん。perlの関数と勘違いしてた…
PHPにおいてはexitもdieも同じらしい。
dieの引数も標準出力されたw

プログラムは読み手に意図を伝えた方が良い場合もあるから、
exit(1)よりdieの方が致命的エラーなのかなと思わせることはできるかな。
しかし標準出力されるんじゃあ使えないな。

嘘こいてすまん。
0594デフォルトの名無しさん (ワッチョイ 955b-zBrR)
垢版 |
2018/09/03(月) 12:27:19.50ID:Shssq38w0
>>591
ハイト
アライン
アラウ
ディナイ

どれも高校入試の時の発音問題頻出単語(要するに中学レベルの単語)だったような遠い20年以上前の記憶
うんざりする程しつこく教えてくれた当時の英語担任に感謝しないといかん
0598デフォルトの名無しさん (スププ Sd43-Oaw6)
垢版 |
2018/09/03(月) 12:55:17.57ID:Nk9MF4uYd
ネタなのかマジなのかわからなくなってきたけど正解はもちろん>>594
allow,denyをアローデニーと読んでいた自称サーバー管理者が設定したウンコみたいなサーバーに泣かされて以来トラウマです
そして今なおallow,denyという単語を目にするという事はそれ即ち、去年末にサポートが終わったApache2.2系をまだ使い続けてるというトラウマの再来になる可能性がががが
0603デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
垢版 |
2018/09/03(月) 14:53:06.39ID:lQhKIzFA0
あんまりこだわると意識高い系とか嫌味を言われそうだし、
まあわかればいいやね…

ここじゃないかもだかど、どっかのPHPスレで
エチョーと書いたらウケたよ。
0605デフォルトの名無しさん (アウアウカー Sa61-lQkG)
垢版 |
2018/09/03(月) 15:27:39.33ID:/uGmskjCa
allowというかau音はアゥからオゥに寄った側に聞こえるからカタカナ英語的にはアロゥはアリかなと思う
arrowと区別したいときはアラゥと言うべきだと思うけど

デニーとかアリグンは流石にねーなw
0607デフォルトの名無しさん (ワッチョイ 955b-zBrR)
垢版 |
2018/09/03(月) 17:56:38.19ID:Shssq38w0
array:アレイ

ini:initializationの略
stripos:string case-insensitive postionの略だと勝手に思ってる
strrpos:string reverse positionの略だと勝手に思ってる

かっこよく読みたいなら元の単語を略さずに読めばいいんだろうが
実用的にはアルファベットをそのまま読めばいいじゃなかろうか
0609デフォルトの名無しさん (ワッチョイ 1d9f-J7KC)
垢版 |
2018/09/04(火) 00:34:18.87ID:3EnQXiZU0
すみません、>>583で質問したのですが、
再度質問してよろしいでしょうか

サーバのドキュメントルートに置いた
CakePHPプロジェクトフォルダ(仮にCakeとします)
直下の.htaccessを消去しても
http://{hostIP}/cake/
をアドレスバーに打ち込むと、なぜか
https://{hostIP}/cake/webroot/
にリダイレクトされる現象が起きています

.htaccess以外にリダイレクトが起きる原因として考えられるものがあれば
教えていただきたくお願い申し上げます
なお、サーバはapache2.4.10、OSはDebian8.0です
0611デフォルトの名無しさん (ワッチョイ db9e-J7KC)
垢版 |
2018/09/04(火) 21:34:32.07ID:8BTVVQRQ0
include('/path/file.txt');
include('http://www.example.com/path/file.txt');
って何か違いはありますか?
0614デフォルトの名無しさん (ワッチョイ a3d0-hHnA)
垢版 |
2018/09/05(水) 16:46:47.73ID:dwWFM3zt0
公式のmail()とmb_send_mail()のページを見ていたのですが、
mail()のsubjectは表題、messageはメッセージ、
mb_send_mail()のsubjectは件名、messageは本文となっていました。
これは何かが違うということでしょうか。
くだらない質問と思いますが、よろしくお願いします。
0619デフォルトの名無しさん (ワッチョイ 969e-O+me)
垢版 |
2018/09/06(木) 17:01:57.65ID:kzkzi/Yy0
<form method="get" でsubmitした場合、
$_GETを使うのが普通だと思うのですが
$_POSTでも値が取れるのですが、そういうもんですか?
0622デフォルトの名無しさん (ワッチョイ 969e-O+me)
垢版 |
2018/09/06(木) 20:05:38.46ID:kzkzi/Yy0
>>621
WordPressなんですが、
form タグを埋め込んでbuttonクリックでsubmitしているので間違は無いと思います。
でも何故か$_GETでも$_POSTも値が取れるんです。
0624デフォルトの名無しさん (ワッチョイ 8b80-f65Y)
垢版 |
2018/09/06(木) 21:15:35.52ID:64ZwjQvb0
methodをgetでサブミットしてるなら
HTTPプロトコルではcontent bodyの部分は空になる
そういう仕様だからな
つまり通常postで取得できる部分はからっぽ

methodをpostでサブミットしてるなら
そういう状況はHTTPプロトコルでも十分にありえる
uriにurlエンコードされた文字列が含まれる状況でpostしたケースならありえるということになる

ちなみにオレはスクリプトの変数にその値がどう格納されるかは知らない

質問してるヤツは

 getでサブミットしてんのになんでそんなことがおきんの?

というのが質問の主旨と理解した
低学歴知恵遅れがその質問をどう解釈したかは知らない
0627デフォルトの名無しさん (ワッチョイ 8b80-f65Y)
垢版 |
2018/09/06(木) 22:27:25.22ID:64ZwjQvb0
はい低学歴知恵遅れ図星
ごまかそうとしても
もうバレてるからな

分かりやすいわ。。。
0630デフォルトの名無しさん (ワッチョイ 569f-vdZN)
垢版 |
2018/09/06(木) 22:59:57.65ID:bmlthp5L0
冗談とは言え、とりあえずパケットキャプチャしてみたら?に行き着いて欲しかったんだけどな。
その後、フレームワークなりの変数の検査するとか。

やり方を切り分けて絞り込んでいかないといけない。
0631デフォルトの名無しさん (ワッチョイ 7ad0-O+me)
垢版 |
2018/09/07(金) 09:44:56.47ID:9ghtkfrV0
PHPを始めたのですが分からないことがあるので教えてください。

https://qiita.com/mpyw/items/2f9955db1c02eeef43ea
上記ウェブサイトに次のコードがあるのですが、配列?を使用する理由を教えてください。

if (!isset($_POST['email'])) {
 $errors[] = 'Eメールアドレスが送信されていません';
} elseif ($_POST['email'] === '') {
 $errors[] = 'Eメールアドレスが入力されていません';
}

よろしくお願いします。
0634デフォルトの名無しさん (ワッチョイ 7ad0-O+me)
垢版 |
2018/09/09(日) 16:54:11.51ID:kcIkPUJb0
HTMLとPHPを使ってメールを送信するため、次のように書いたのですが、良いか悪いか判断ができません。
右も左も分からないため、どのようなことでも構いませんのでアドバイスをください。
メールは【入力】→【確認】→【送信】の流れで送信されます。
どうか、よろしくお願いします。

【input.php】
https://ideone.com/cEGHAA



【check.php】
https://ideone.com/R9GueN



【thanks.php】
https://ideone.com/R2mR1b
0636634 (ワッチョイ 7ad0-O+me)
垢版 |
2018/09/10(月) 14:59:46.15ID:Jh3v7l2E0
>>635
アドバイスありがとうございます。
辞書を引いたら納得しました。
さっそく反映したいと思います。
0637デフォルトの名無しさん (ワッチョイ 569f-vdZN)
垢版 |
2018/09/10(月) 20:03:31.22ID:LEZi3nV80
ネタにマジレスしてるんで、仕方ないからチラ見してみた。
このスレのダメな例の集大成みたいだな。

受け取った値の長さに制限を掛けて、巨大データを受け入れないようにする。
HTML側でもmaxlengthやtype="email"やrequiredを使うと気休めになるかも。
PHP側でも長さをチェックする。

filter_inputの使い方が違う。
受け取った価をあえて$_SESSIONに入れてどうする?
それは使わずに$subjectとかに代入する。

mail関数に入れるデータはエンコードするか、mb_send_mailを使う。

あとは動いてるならいいんじゃない?
0639デフォルトの名無しさん (ワッチョイ 532a-5rD0)
垢版 |
2018/09/11(火) 12:49:51.36ID:swAVBRLl0
class内のプロパティに関数って指定できないでしょうか?

class Test {
public $date = date("Y-m-d");
}

というイメージです。これを記述しても
Parse error: syntax error, unexpected '(', expecting ',' or ';'

というエラーが出るので無理だと思っているのですが、
できる方法があれば教えてください。
0642634 (ワッチョイ 7ad0-O+me)
垢版 |
2018/09/11(火) 17:53:48.50ID:sA/7deNB0
>>637
アドバイスありがとうございます。
次を課題に学習を進めたいと思います。
・HTMLとPHPで値の長さに制限を掛ける
・filter_inputの使い方を理解する

mail関数に関してもmb_send_mail関数と合わせて考え直します。
セッション変数については入力されたデータを持ちまわる体で使用しようと考えているのですが、type="hidden"の方が良いのでしょうか。
今は自身の理解が不足しているので、もう一度最初から取り組みます。

アドバイスありがとうございました。

>>638
アドバイスありがとうございます。
やはり既存のサービスの方が安全ですか。
今は自身のために勉強したいと思います。

アドバイスありがとうございました。
0646634 (ワッチョイ 7ad0-O+me)
垢版 |
2018/09/12(水) 08:16:38.34ID:uWMSldyR0
>>643
参考URLありがとうございます。
hiddenとセッションの使い分けを勉強します。
0647デフォルトの名無しさん (ワッチョイ 569f-vdZN)
垢版 |
2018/09/12(水) 08:31:17.86ID:t1WfAWi+0
>>646
う、うん。
でも一番はそこじゃないんだな。
スーパーグローバル変数を書き換えるべきではないのに、
そらをしてしまっているところね。
そもそもスーパーグローバルを使わないためのfilter_inputだから。
最初は誰でもそんなもんだから頑張ってね。
0648634 (ワッチョイ 7ad0-O+me)
垢版 |
2018/09/12(水) 08:36:21.52ID:uWMSldyR0
>>647
さっそく勘違いしてしまいました。
アドバイスありがとうございます。
0649デフォルトの名無しさん (ワッチョイ 5e92-fTNn)
垢版 |
2018/09/12(水) 11:26:01.33ID:/jhmkHwQ0
どうしてもわからないので質問お願いします。

私はWindows7でxamppを使いPHPを動かしています。
類似画像の比較のため「libpuzzle」というライブラリを使いたいのですが、インストールのやり方がわかりません。
インストールが簡単とのことで下記のページを参考にしようと思っているのですが、何をやっているのかわかりません。

https://fei-yen.jp/maya/wordpress/blog/2011/05/05/php%E3%81%A7%E7%94%BB%E5%83%8F%E3%81%AE%E9%A1%9E%E4%BC%BC%E5%BA%A6%E5%88%A4%E5%AE%9A%E3%81%AE%E3%81%A7%E3%81%8D%E3%82%8B%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA/

ひとまず「libpuzzle-0.11.tar.bz2」はダウンロードしました。
0650デフォルトの名無しさん (ワッチョイ 569f-vdZN)
垢版 |
2018/09/12(水) 12:09:08.51ID:t1WfAWi+0
そのURLを見たけど、tarファイルを展開してLinuxでコンパイルしてるよね。
この時点でWindowsはまったく該当しないので見てもわかるわけない。
Windows用のコンパイル済みバイナリをインストールするのが正解かと。
それか、そのファイルをWindowsで自前コンパイルするか。
0651デフォルトの名無しさん (ワッチョイ 5e92-fTNn)
垢版 |
2018/09/12(水) 12:24:56.89ID:/jhmkHwQ0
ありがとうございます。

いくつか調べてlibpuzzleがC言語で作られているはわかりました。
Windowsだとsoファイルではなくdllファイルで動かすみたいだから
libpuzzle.cをコンパイルしてdllにする、という感じなのでしょうか?
0655デフォルトの名無しさん (ワッチョイ 569f-vdZN)
垢版 |
2018/09/12(水) 19:23:24.37ID:t1WfAWi+0
>>654
そう。
言われてハッとしたんだが、もしかして俺すげー嘘ついてる?
フレームワーク無しなら$_SESSIONに代入せざるを得ないか?
何かもう忘れたわ。

適当な記憶でたまに嘘ぶっこくから少し自重する。
0658デフォルトの名無しさん (ワッチョイ 5e92-fTNn)
垢版 |
2018/09/12(水) 23:14:04.91ID:/jhmkHwQ0
libpuzzleはインストールが困難と判断したので、
他のものを調べたところ、Perceptual Hashが良さそうだったので変更しました。

コンポーザーをダンロードして、インストールはできました。

ですが、実行すると「Uncaught Error: Class 'Jenssegers\ImageHash\ImageHash' not found」といったように認識されません。
Windows7のXAMPPだとuseの書き方が違うのでしょうか?
ソースは以下の通りです。


use Jenssegers\ImageHash\ImageHash;
use Jenssegers\ImageHash\Implementations\DifferenceHash;

$hasher = new ImageHash(new DifferenceHash());
$hash = $hasher->hash('path/to/image.jpg');

echo $hash;
// or
echo $hash->toHex();
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況