【PHP】下らねぇ質問はここに 9
■ このスレッドは過去ログ倉庫に格納されています
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 8
http://mevius.5ch.net/test/read.cgi/tech/1489506082/
次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured >>553
それは $_POST を取ってるわけじゃない。
POSTされたデータを取る手段として $_POST と filter_input がある。
他の標準的な手段として用意されてるものは無いと思うけど、リクエストを自分で処理するという手段はある。 >>554
詳しく教えてくださりありがとうございます。
勉強になりました。 FILTER_SANITIZE_FULL_SPECIAL_CHARS?
htmlspecialchars?
あばばばば(´・ω・`) 前者は使わなくてもいい。
後者は画面に出すときに必須 mail関数で文字化けするのはどういった状況なんだろうか エンコード関連の設定が間違えているって書いても、
そのくらいは知っているって言われそうだしなあ PHPを初めて間もないので知らなかったです(´・ω・`)
文字化けが自分で作った環境が原因でおこるのか、
ユーザーの環境によっておこるのか、
それすらも現在進行形で勉強中です。 今時はメールもutf-8にしちゃう方が良い?
サイズはともかく。 JIS だと扱えない文字が結構あって面倒なんだよね。
氏名を埋め込もうとするだけでもすぐ問題が起こる。
個人的には結構保守的なんで極力 JIS にしたいが、utf8 も仕方ないかなと思うこともある。 >>559
件名が化けてるの?
本文が化けてるの? >>559
>>561です
>>564さん
どちらも化けてないです。
ただ文字化けする状況がよくわからなかっただけです。
自分の環境を全てutf8に統一すれば化けないですかね(´・ω・`) どちらかと言えば、送信したサーバー側にあると思うよ。
ヘッダをMIMEエンコードしてないとか、
本文をJISと宣言しておいてSJISとか良く見る。
作る側が理解してない。
それを受信すらメールソフトが何とか正しく表示しようと努力して、
それでもダメだった場合に化ける。
あと稀に、ソースからしてそもそも化けてるという
バカが書いたメールもあるw >>566
たまに磁場消したメール受けとる
解読するのを楽しみにしたりする >>565です
>>566さん
こちらがしっかりと設定すれば大丈夫そうですね。
後は山のように試行錯誤を積み重ねていきたいと思います(´・ω・`)
今はmail($to・・・)の$toに自分のメールアドレスをどのようにして入れるか考えてます。
define関数で定義した方が安全?なんでしょうか。
勉強がんばります。 >>570
メンテナンス性を考慮すれば定数で定義しとく方が好ましい
”ハードコーディング”でググるんだ
あとPHP5.3未満だという理由でもない限りは
定数の定義はdefine()じゃなくconstでいい
define()にしかできない事をやる時だけdefine()を使う
…というかdefine()にしかできないような定数の定義の仕方は
しない方がいいというか >>570
confg.phpとかconfig.iniとか作って、
設定値を書きまくるファイル用意するといいよ。
定数名は大文字にしておけば目立つね。 >>570です
>>571さん
constでも定義できるんですね。
他にも詳しいアドバイスありがとうございます。
>>572さん
設定値を管理するファイルを作る、メモしました。
定数名は大文字がマナー?なんですかね。
お二方、アドバイスありがとうございます。
ずっと画面と見つめ合ってたので頭が痛いです。
体調管理に気を付けます。
ありがとうございました。 >>570の$toって直書きすると外部から参照されたりするん?
そこらへん うちも勉強不足だわ 外部からってどういう意味?
宛先見せないと配達できないでしょ?
そういうことじゃなくて? web公開ディレクトリに置かないのが基本なんだよ。
hdocs/index.html
lib/php/config.ini 共用のレンタルサーバーだと、
Permissionを0604にするのもありだな。
最初の0は気にしない。
次の6は自分の読み書き権限
次の0は同居してるユーザーに権限剥奪
最後の4はApacheに読み取り権限 >>577
釣りかな?
それApacheにかぎらず誰でもオッケーって意味だよ ほとんどの共用レンタルサーバーは、
webユーザーは同一グループに所属するから、
xx0xで引っ掛けて拒否させるんだよ。
最後の4は付けないとApacheが読めない。
https://www.xserver.ne.jp/manual/man_server_permission.php
グループ設計がどうなってるかとか、
PHPの実行ユーザーが誰になるかとか、
事前に確認しないといけないな。
suEXEC、FastCGIなんかで変わってくる場合もあるし。 ど素人です
質問させてください
cakephp3のwebroot以下にある.htaccessで、mod_rewriteの括弧外にrewritecondやrewriteruleが書かれているものを人様のサイトで拝見しました
括弧外に置かれても、機能するものなのでしょうか <IfModule mod_rewrite.c>
もしかしてこれ? そうです
すみません、>>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>
===================
このようなものなのですが それは、そのモジュールが有効化されていたら設定するって意味で、
何のモジュールのディレクティブなのか明確になる以外にメリットない。
だから書かない方が良い。
ifを書かなければ、モジュールが無効なら即500エラーで設定ミスに気付ける。
モジュールが無効なのにエラーにならず、
設定したつもりでいる方が危ないからね。 >>581
怖い(´・ω・`)
>>582
ありがとう >>586
返答ありがとうございます
リファレンスにしていたものが、全てディレクティブを括弧内に書いていたのと
cakephpのインストール直後のプロジェクトに入っていた.htaccessでも
ディレクティブが<ifmodule>で囲まれていたので、
基本的には囲う必要があり、外に出る方がおかしいと思い込みがありました
まさにおっしゃられていた通り、apache2.confを見てみたら
Loadmoduleでmod_rewriteを有効化していたつもりで、実際にはコメントアウトされていたのですが
それにも気付いていませんでした
どうもありがとうございます 読み返してたんだけど>>557の前者って使うことないものなの? >>587
ネタにマジレスしとくと
dieの発音は「ディエ」じゃなく「ダイ」だし
exitとdieは等価なので、エラーログに残るとかは嘘
exitの方が一般的だとは思うが好きな方を使えばOK
あくまで予想だが、die()はperl言語出身者に配慮して作ったんじゃなかろうか height
align
allow
deny
web系に関わってるのにこういう単語の読み方がおかしな人の言う事は疑ってかかった方がいいという経験則 >>590
すまん。perlの関数と勘違いしてた…
PHPにおいてはexitもdieも同じらしい。
dieの引数も標準出力されたw
プログラムは読み手に意図を伝えた方が良い場合もあるから、
exit(1)よりdieの方が致命的エラーなのかなと思わせることはできるかな。
しかし標準出力されるんじゃあ使えないな。
嘘こいてすまん。 >>591
ヘイト
アリグン
?
デニー
allowを読み違えてる人は見たことない…
あとは、hrefをハーフ、widthをウィドスは稀に。
ウィドスはまだネイティブに近い方かな? >>591
ハイト
アライン
アラウ
ディナイ
どれも高校入試の時の発音問題頻出単語(要するに中学レベルの単語)だったような遠い20年以上前の記憶
うんざりする程しつこく教えてくれた当時の英語担任に感謝しないといかん アラウか…
何かそこだけ妙にネイティブだな。
アローですまん… 本来ネイティブの発音に合わせて読むべきなんだろうけど、
アラウやディナイと発音しても、日本人相手だと通じなかったりする アラウはちょっとなあ…
それ言い出すとonlyはオウンリイだし。
日頃はカタカナ英語でいいです。 ネタなのかマジなのかわからなくなってきたけど正解はもちろん>>594
allow,denyをアローデニーと読んでいた自称サーバー管理者が設定したウンコみたいなサーバーに泣かされて以来トラウマです
そして今なおallow,denyという単語を目にするという事はそれ即ち、去年末にサポートが終わったApache2.2系をまだ使い続けてるというトラウマの再来になる可能性がががが ウォーニング
まぁ会社によって方言みたいなのはあるよね
内心そうじゃないだろ…(ため息)と思いつつ相手に合わせる事も大事 今の所全問正解っぽくて安心した
falseをファルスと読む人を見る度に
パルスのファルシのルシがコクーンでパージを思い出す アリグンとかデニーとかいってるならヘイグヒトぐらいにしないと あんまりこだわると意識高い系とか嫌味を言われそうだし、
まあわかればいいやね…
ここじゃないかもだかど、どっかのPHPスレで
エチョーと書いたらウケたよ。 allowというかau音はアゥからオゥに寄った側に聞こえるからカタカナ英語的にはアロゥはアリかなと思う
arrowと区別したいときはアラゥと言うべきだと思うけど
デニーとかアリグンは流石にねーなw ini → イニ? アイエヌアイ?
array → アレイ? アライ?
あと正直str系の関数が読めない
strlen strpos当たりはわかるけど
stripos strrpos strripos
あたり array:アレイ
ini:initializationの略
stripos:string case-insensitive postionの略だと勝手に思ってる
strrpos:string reverse positionの略だと勝手に思ってる
かっこよく読みたいなら元の単語を略さずに読めばいいんだろうが
実用的にはアルファベットをそのまま読めばいいじゃなかろうか if
イフ
then
ゼン?
else
エルス?
true
トゥルー?
false
フォールス?
try
トライ?
throw
スロー?
catch
キャッチ? すみません、>>583で質問したのですが、
再度質問してよろしいでしょうか
サーバのドキュメントルートに置いた
CakePHPプロジェクトフォルダ(仮にCakeとします)
直下の.htaccessを消去しても
http://{hostIP}/cake/
をアドレスバーに打ち込むと、なぜか
https://{hostIP}/cake/webroot/
にリダイレクトされる現象が起きています
.htaccess以外にリダイレクトが起きる原因として考えられるものがあれば
教えていただきたくお願い申し上げます
なお、サーバはapache2.4.10、OSはDebian8.0です routes.phpとかは?
アプリのリダイレクトなのか、
apacheのリダイレクトなのか切り分けていくと良いのでは。 include('/path/file.txt');
include('http://www.example.com/path/file.txt');
って何か違いはありますか? >include('/path/file.txt');
/ から始まっているから、何かからの絶対パスかな?
プロジェクトルートか、公開サイトのルートからの絶対パスかな? 上のは言ってみればfile://になるんじゃないの? 違う? 公式のmail()とmb_send_mail()のページを見ていたのですが、
mail()のsubjectは表題、messageはメッセージ、
mb_send_mail()のsubjectは件名、messageは本文となっていました。
これは何かが違うということでしょうか。
くだらない質問と思いますが、よろしくお願いします。 全く同じ意味ですが異なります
この事に気をつけて厳密に取捨選択し、
どっちでもいいから適当に使いましょう mailはエンコードしてくれないから自分でしてから呼び出す。
mbはエンコードしてくれる。
というか、ググれよ! どっちの関数も直接使うには勝手が悪いので、さっさと基礎理解してライブラリ使うようにしましょう。 <form method="get" でsubmitした場合、
$_GETを使うのが普通だと思うのですが
$_POSTでも値が取れるのですが、そういうもんですか? 普通だけど普通じゃなくなって来たから、filter_input使う。
このスレの上の方にも出てる。 >>619
それちゃんとGETメソッドで送ってる?
GETとPOSTでは受け渡し方法が違うから
ちゃんとやっていればPOSTでは受けとれないはず >>621
WordPressなんですが、
form タグを埋め込んでbuttonクリックでsubmitしているので間違は無いと思います。
でも何故か$_GETでも$_POSTも値が取れるんです。 methodをgetでサブミットしてるなら
HTTPプロトコルではcontent bodyの部分は空になる
そういう仕様だからな
つまり通常postで取得できる部分はからっぽ
methodをpostでサブミットしてるなら
そういう状況はHTTPプロトコルでも十分にありえる
uriにurlエンコードされた文字列が含まれる状況でpostしたケースならありえるということになる
ちなみにオレはスクリプトの変数にその値がどう格納されるかは知らない
質問してるヤツは
getでサブミットしてんのになんでそんなことがおきんの?
というのが質問の主旨と理解した
低学歴知恵遅れがその質問をどう解釈したかは知らない >>619
サーバーのログって見ることは出来ない?
リクエストがどういうメソッドでやり取りされたか分かると思うけど >>624
冗談にムキになって… 低学歴知恵遅れとかw
主旨についてはわかってて書いてんの。
それが5chというところだから。 はい低学歴知恵遅れ図星
ごまかそうとしても
もうバレてるからな
分かりやすいわ。。。 冗談は冗談が通じる相手にしないと
この質問者はPOSTとGETについて理解できていないんだから
冗談だとは受けとってないと思うぞ 冗談とは言え、とりあえずパケットキャプチャしてみたら?に行き着いて欲しかったんだけどな。
その後、フレームワークなりの変数の検査するとか。
やり方を切り分けて絞り込んでいかないといけない。 PHPを始めたのですが分からないことがあるので教えてください。
https://qiita.com/mpyw/items/2f9955db1c02eeef43ea
上記ウェブサイトに次のコードがあるのですが、配列?を使用する理由を教えてください。
if (!isset($_POST['email'])) {
$errors[] = 'Eメールアドレスが送信されていません';
} elseif ($_POST['email'] === '') {
$errors[] = 'Eメールアドレスが入力されていません';
}
よろしくお願いします。 >>631
この例文の中では特に意味はない。post したページに戻る際、エラーをまとめて送る時に使う。 >>632
このような使い方もあるんですね。
教えてくださり、ありがとうございました。 HTMLとPHPを使ってメールを送信するため、次のように書いたのですが、良いか悪いか判断ができません。
右も左も分からないため、どのようなことでも構いませんのでアドバイスをください。
メールは【入力】→【確認】→【送信】の流れで送信されます。
どうか、よろしくお願いします。
【input.php】
https://ideone.com/cEGHAA
↓
【check.php】
https://ideone.com/R9GueN
↓
【thanks.php】
https://ideone.com/R2mR1b form.php
confirm.php
send.php
こうすると良いと思う >>635
アドバイスありがとうございます。
辞書を引いたら納得しました。
さっそく反映したいと思います。 ネタにマジレスしてるんで、仕方ないからチラ見してみた。
このスレのダメな例の集大成みたいだな。
受け取った値の長さに制限を掛けて、巨大データを受け入れないようにする。
HTML側でもmaxlengthやtype="email"やrequiredを使うと気休めになるかも。
PHP側でも長さをチェックする。
filter_inputの使い方が違う。
受け取った価をあえて$_SESSIONに入れてどうする?
それは使わずに$subjectとかに代入する。
mail関数に入れるデータはエンコードするか、mb_send_mailを使う。
あとは動いてるならいいんじゃない? 勉強のためならいいけどガチでサービスに導入とかはしない方がいいと思うよ
既存のサービス使った方が絶対に安全 class内のプロパティに関数って指定できないでしょうか?
class Test {
public $date = date("Y-m-d");
}
というイメージです。これを記述しても
Parse error: syntax error, unexpected '(', expecting ',' or ';'
というエラーが出るので無理だと思っているのですが、
できる方法があれば教えてください。 やり方はいろいろあるが、一般的にはコンストラクタの中で代入するんじゃないかな やり方はいろいろあるが、一般的にはコンストラクタの中で代入するんじゃないかな >>637
アドバイスありがとうございます。
次を課題に学習を進めたいと思います。
・HTMLとPHPで値の長さに制限を掛ける
・filter_inputの使い方を理解する
mail関数に関してもmb_send_mail関数と合わせて考え直します。
セッション変数については入力されたデータを持ちまわる体で使用しようと考えているのですが、type="hidden"の方が良いのでしょうか。
今は自身の理解が不足しているので、もう一度最初から取り組みます。
アドバイスありがとうございました。
>>638
アドバイスありがとうございます。
やはり既存のサービスの方が安全ですか。
今は自身のために勉強したいと思います。
アドバイスありがとうございました。 このくらいのフォームなら hidden の方がいいんじゃね。
セッションでなんかメリットある? >>643
参考URLありがとうございます。
hiddenとセッションの使い分けを勉強します。 >>646
う、うん。
でも一番はそこじゃないんだな。
スーパーグローバル変数を書き換えるべきではないのに、
そらをしてしまっているところね。
そもそもスーパーグローバルを使わないためのfilter_inputだから。
最初は誰でもそんなもんだから頑張ってね。 >>647
さっそく勘違いしてしまいました。
アドバイスありがとうございます。 そのURLを見たけど、tarファイルを展開してLinuxでコンパイルしてるよね。
この時点でWindowsはまったく該当しないので見てもわかるわけない。
Windows用のコンパイル済みバイナリをインストールするのが正解かと。
それか、そのファイルをWindowsで自前コンパイルするか。 ありがとうございます。
いくつか調べてlibpuzzleがC言語で作られているはわかりました。
Windowsだとsoファイルではなくdllファイルで動かすみたいだから
libpuzzle.cをコンパイルしてdllにする、という感じなのでしょうか? C言語は…、ちょっというかさっぱりわからないですね…。
GitHubでlibpuzzleの解凍されたフォルダが有りました。
https://github.com/jedisct1/libpuzzle
もし参考になれば >>647
そこで言ってるスーパーグローバルの書き換えって $_SESSION のこと? ■ このスレッドは過去ログ倉庫に格納されています