PHP質問・雑談スレ5【初心者お断り(ROM歓迎)】
■ このスレッドは過去ログ倉庫に格納されています
PHPに関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。
PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
https://mevius.5ch.net/tech/ (【PHP】で板内を検索)
前スレ
https://medaka.5ch.net/test/read.cgi/php/1498653249/
その他リンク
・PHPマニュアル
https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
https://ideone.com/
・プログラミングのお題スレ (求PHPer参戦)
https://mevius.5ch.net/test/read.cgi/tech/1538096947/
このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
(FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼
このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
(HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造 昔改行するしないでデザインが変わったことがあったが
\nを\r\nにしたらうまくいったりして
仮にうまくいっても色々問題ありそうだけど >>12
なんで?それならなんで直書きだとそろうの? 9です
みなさんすみません、くだらない勘違いで>>10の通りcssで
font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
が当たってるか否かでした
当たれば直に書いてもphpからでも同じ位置に同じソースなのだから
当然同じ結果になりました
どうもお騒がせしました >>15
9のコードよく見ろよ
「え」が縦3つ揃うはずがないだろw え?
えはしっかり3つ並ぶじゃん
えっと、もしかしてお前には見えてないの? >>18
ウザいだけの行為をユーモアだと勘違いしてるバカ 質問したいことがあるのですが
って書こうとしたけどその前にphp.netを探したら問題解決しました php.netの内容は本当にすごいから一回読破して欲しい
phpで何が出来るかよく分かる php内で出力をgzencodeして吐き出すのと
Apacheのmod_deflate.cにお任せするのとどちらが負荷が少ないですか? >>26
現実的に差がセロなので、わざわざ試す暇人がいない
自分で試した方が早い
その書き込みする労力でできるんじゃないか? 試したアホがここにいる…phpでやったほうが30%ほど早くなった… phpでidentityで書き出してアパッチが回収して圧縮とか二度手間 filter_input関数の 「 FILTER_FLAG_STRIP_LOW 」 を使うと0〜31までの制御文字が除去?されますが、
nl2br関数で改行を反映させたい場合、preg_replace関数の正規表現で対応するしかないですか !?
良い方法を教えてください(´・ω・`) 最近のChromeやFirefoxって、完全にアプリを落とすまでCookie削除が効かないですよね?
自分がヘボいのかもですが、
ちゃんとCookieを削除してログオフされる方法はありますか?
PHPとJavaScriptで二重に削除してるけど管理ツールで見ると残っています。
ログアウト後に、そのままサイト内URLを叩くとアクサスできるのがカッコ悪いです。 きちんと削除できてないか、pluginとかが悪さしてるのではなく? いえ、アドオンとかは特に入れてなくてすっぴんです。
削除はPHPではdestroyや過去のCookie食わせて削除、
JavaScriptはjQueryでremoveしてます。
サブドメインまできっちり指定しろということなのでしょうか?
アホなのでわかりません。
http://yukihane.hatenablog.com/entry/201511/chrome-cookie-bug ちなみに、つい最近までFirefoxはちゃんと消えるブラウザでした。
アップデートしたらChromeと同じ挙動に変わっていました。 $_SESSION = array();
setcookie(session_name(), '', time() - 42000);
session_destroy();
この3行を順番に書けば消えるということで良いでしょうか?
session_unset() ;
も書いてあったと思います。
常駐するブラウザを落とさないと消えないですよw へ?
とりあえず極力シンプルな10行ぐらいのコードで試してみます。
ありがとうございました。 ここのスレの猛者に説明などは不要かと思うので割愛します。
リファクタリング時の凡ミスでした。
CookieもHTTPのやりとりをキャプチャして解決しました。
アホなのにブラウザのせいにして本当に申し訳ございませんでした。 CSRFがわからない(´・ω・`)
type="hidden"でトークンを隠してもウェブマスターツールで見られそうだし、さっぱり爽やかだ。 対策系なんていたちごっこなんだからCSRFの手法自体を勉強してきなさい
じゃないと確実な対策を書くことはできない セキュリティはほんと地獄
そうそうにあきらめてフレームワークに丸投げしてるわ >ウェブマスターツールで見られそうだし
理解できてない証拠 ある適度の規模になったらフレーワークだよね。
ネイティブな実装レベルを知らない人でも、
爺さんよりいいサイト作れる。 無知が使うなら規模関係ない
小規模だろうと大規模だろうと
必要なセキュリティ対策が何かすらわからないのだから ちょっとおかしいな
何らかのフレームワークを使っているからといって
CSRFを含めてセキュリティ対策が万全と保証されるわけではない
あくまでフレームワークを使って作った人の責任
フレームワークを使って作ったものにセキュリティホールがないかどうか確認できるスキルが必要になる
そんなスキルがあるなら自前でセキュリティ対策を書ける
するとフレームワークを使う理由は特化による労力削減しかなくなる そういう事をしなくて済むのが最近のフレームワークじゃん。
もちろん知識は必要だけど下のレイヤーは知らなくていい感じ。 どんな無知カスが使ってもセキュリティリスクゼロなんてフレームワークあるのですか グーグルやフェイスブックでさえお漏らしするからムリ オレオレ実フレームワークこそ正義と思ってたけどあっというまにセキュリティホールだらけになって辛かった 無知じゃ無理ってことだ
機能面もセキュリティ面も同じだが問題が出ないことはツールは保証してくれない
結局自分で仕組み上問題がないことを確認して
結局自分で実際上問題が出ないことをテストしなきゃいけない フレームワークでも何でもいいがツールが責任を持ってくれないのだから
自分(というか自社)が有事の責任を回避したいなら
最大限自衛できるスキルを持たないといけない
知らなくても済む、とはならない
高セキュリティを謳うフレームワーク使ってました、だけで裁判で過失ゼロ認定される自信があるなら良いけど 俺実装のまずさはPHPの関数が非推奨になったりするせいもある 逃げられないってやつだなあ
どうあっても回避できないもんは回避できない でもPHPもかなり良くなってきたし、NodeとかのJavaScriptよりはマシだよなあ。
あっちもPromiseとかで美しくなってきてはいるが… CSRFのワンタイムトークンって本当に有用なの?
今は同一生成元ポリシーがあるから余計なことしてなければ問題はないが
サーバでOriginの設定に問題があったりブラウザで余計なことしてる状態として
JavaScriptでGETで1回トークン含んだソースとってきて
2回めで実際のPOST先にトークン含めて送ると受理してしまわない? >>63
CSRF対策にワンタイム性は必要無いだろ >>70
ワンタイム性は必要ないというと
固定トークンとか有効とか言っちゃうのか? トークンなんてフレームワーク丸投げで何も意識せずに勝手に裏でやってくれりゃいいよ。 セキュリティのこと勉強しないやつは会話に入ってこなくていいのよ 質問
アンチウィルスソフトが重いからって止めてしまっている人のこと考えたら
ウィルス対策が100%万全でないメールクライアントなんてゴミクズだよね?
回答
止めんなよバカ 以下のページにアクセスした時、
バックグラウンドで処理を走らせようと思います
http://example.com/foo.php
foo.phpに通常のユーザーもアクセスできてしまうのですが、
404などを返したほうが良いのでしょうか?
また、その際はhtaccessを使用すれば良いでしょうか
それともphpのheaderから404を返すのでしょうか?
以下は実際の流れになります
小売業のHPで、wordpressを使っています
ルーチンとしてチラシが発生したときにページを作成し、pdfファイルと画像ファイルを添付して投稿
定期的に、一年以上前に投稿された記事とファイルを削除する必要があるので、その部分を自動化したいと思っているのです cron使え
どうしてもcron使えない状況でwp使ってるならwpに載せて管理者ログイン時以外利用不能にしろ
最悪でも単独の認証でもつけとけ 自分で管理しきれるならサードパーティのpluginを利用する手もあるが自分で管理しきれる場合だけ >>80
cronも併用していますが、シェルスクリプトを書ききれませんでした
(現在はshの中身はfoo.phpにアクセスするという物になっています)
>wpに載せて管理者ログイン時以外利用不能
>単独の認証
どちらかで実装します
ありがとうございました >>81
サードパーティーのプラグインはいつの間にかエラーだらけになりそうなので、出来る限り回避しています いやcron使えるなら使えよ
perl-cgiなんかと同様に*.phpの頭に
#!/path/to/php
って書いてchown/chmodしとくだけで済むから
sh書く必要ないし公開ディレクトリに置かずに済むだろう >>84
そんな方法があったんですか、ありがとうございます
なんとか頑張ってみます どこに書いたら良いのかわからずでここに。。。場違いだったらゴメンなさい。
Aサーバ = php.ini編集NG .htaccess内にphp_value記述OK
Bサーバ = php.ini編集OK .htaccess内にphp_value記述NG
の場合、A、Bサーバで共用できる.htaccessの書き方ってありますか?
要は、%{HTTP_HOST}などでサーバを判定して、Aサーバの場合のみ、php_valueの記述行がイキになるような書き方が出来ないものかと。 >>86
そういうことはできないと思う。
CGI(FastCGI)として動作している時の問題だと思うが、
そういうサーバではphp.iniか.htaccessに書かなくては意味のない設定を書く環境があるのでは?
それがないチープなサーバなら諦めるしかないかと。 ってか、どんなサーバーなんだよw
統一するかVPSにしとけ。 >>79
通常のユーザがアクセスできないように
ログイン認証設ければいいだけの話では レンタルなのはわかってるだろw
無駄に苦労するより統一しろよーって話だよ。 Basic認証レベルならwgetでいいし、
フォーム認証でもライブラリ使ってセッション食わればいいんじゃない? cronというかいわゆるwebcronをやろうとしてるんだろう?
>>94のとおりだよ >>97
>(現在はshの中身はfoo.phpにアクセスするという物になっています) >cronも併用していますが、シェルスクリプトを書ききれませんでした
書けないっていってんじゃん
curlかwgetいれてるだけだろうが
そんなのシェルスクリプトでもなんでもない >>97「(技術的には)sh書けないって言ってるじゃん」
>>98「(サーバーの仕様では)sh書けてるだろボケ」 みんな年末のカンファレンスに参加するの?
Web業界独特の気持ち悪いイベントに トークンで思い出した
bin2hex(random_bytes(32));ってのを見かけたんだけど これが今の主流なんかね >>101
しない
>Web業界独特の気持ち悪いイベント
これは同意だけど、まぁ最先端の金持ちオタクの集まりだから仕方ない webcronって
定期バッチ動かしたいけどサーバ仕様上cronが使えないから外部からHTTPで叩きましょう
ってなもんでしょ
他になんか意義あんの 0円 = \0 === null (ASCIIのnull 文字列)
思いついただけ WordPressのサイトで、
function.phpの中で複数のphpファイルをインクルードするのと、
---------
include_once 'file1.php' ;
include_once 'file2.php' ;
include_once 'file3.php' ;
function.phpの中に全部のコードをベタで書くのとでは、WEBサイトの表示速度に差が出ますか? ■ このスレッドは過去ログ倉庫に格納されています