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の改造 print_r(ini_get_all('session'));
でもみてみれば >>293
PHPSESSIDを仮に”abc”だとして
1)
直前のページでセッションデータ保存する
→ var_dump($_SESSION) セッションデータ表示される
var_dump($_COOKIE) “abc”が表示される
2)
update.js実行
→ var_dump($_SESSION) セッションデータ表示されない
var_dump($_COOKIE) “abc”が表示される
↑今こんな状況? すみません分割になります
[session.auto_start] => Array
[global_value] => 0
[local_value] => 0
[access] => 2
[session.cache_expire] => Array
[global_value] => 180
[local_value] => 180
[access] => 7
[session.cache_limiter] => Array
[global_value] => nocache
[local_value] => nocache
[access] => 7
[session.cookie_domain] => Array
[global_value] =>
[local_value] =>
[access] => 7
[session.cookie_httponly] => Array
[global_value] => 0
[local_value] => 0
[access] => 7
[session.cookie_lifetime] => Array
[global_value] => 0
[local_value] => 0
[access] => 7
[session.cookie_path] => Array
[global_value] => /
[local_value] => /
[access] => 7 [session.cookie_secure] => Array
[global_value] => 0
[local_value] => 0
[access] => 7
[session.gc_divisor] => Array
[global_value] => 100
[local_value] => 100
[access] => 7
[session.gc_maxlifetime] => Array
[global_value] => 1440
[local_value] => 1440
[access] => 7
[session.gc_probability] => Array
[global_value] => 1
[local_value] => 1
[access] => 7
[session.lazy_write] => Array
[global_value] => 1
[local_value] => 1
[access] => 7
[session.name] => Array
[global_value] => PHPSESSID
[local_value] => PHPSESSID
[access] => 7
[session.referer_check] => Array
[global_value] =>
[local_value] =>
[access] => 7 [session.save_handler] => Array
[global_value] => files
[local_value] => files
[access] => 7
[session.save_path] => Array
[global_value] => /tmp
[local_value] => /tmp
[access] => 7
[session.serialize_handler] => Array
[global_value] => php
[local_value] => php
[access] => 7
[session.sid_bits_per_character] => Array
[global_value] => 4
[local_value] => 4
[access] => 7
[session.sid_length] => Array
[global_value] => 32
[local_value] => 32
[access] => 7
[session.upload_progress.cleanup] => Array
[global_value] => 1
[local_value] => 1
[access] => 2
[session.upload_progress.enabled] => Array
[global_value] => 1
[local_value] => 1
[access] => 2 [session.upload_progress.freq] => Array
[global_value] => 1%
[local_value] => 1%
[access] => 2
[session.upload_progress.min_freq] => Array
[global_value] => 1
[local_value] => 1
[access] => 2
[session.upload_progress.name] => Array
[global_value] => PHP_SESSION_UPLOAD_PROGRESS
[local_value] => PHP_SESSION_UPLOAD_PROGRESS
[access] => 2
[session.upload_progress.prefix] => Array
[global_value] => upload_progress_
[local_value] => upload_progress_
[access] => 2
[session.use_cookies] => Array
[global_value] => 1
[local_value] => 1
[access] => 7
[session.use_only_cookies] => Array
[global_value] => 1
[local_value] => 1
[access] => 7
[session.use_strict_mode] => Array
[global_value] => 0
[local_value] => 0
[access] => 7
[session.use_trans_sid] => Array
[global_value] => 1
[local_value] => 1
[access] => 7 session.save_pathのところにセッションファイルが保存されていると思うけど
>>295の(1)から(2)に遷移するタイミングでファイルが上書きされてる? セッション保存した後にunset関数呼んじゃってるとか? >>301
上書きされていました
たぶんこいつが原因ですよね
なんでや...
>>302-303
ログアウト処理では行っているところもありますが、それ以外だと無い感じです そのテストはどの環境でやってる?本番?ローカル?
本番なら共用サーバー? session_destroyかsession_regenerate_id実行してる位しか思いつかない 共用サーバなら/home/user/public_htmlがドキュメントルートだとして
/tmpじゃなくて/home/user/tmpとかに変更するとうまくいく場合がある >>310
再現しないよ
cookie無効になってるだけでは? update.jsは正常に動作してる?
jquery読み込めてなくてajaxが動作してなくてupdate.php叩けてないとかじゃない? >>312
叩けてなければセッションが取れないとか言わないでしょう
たふん…
どっちにしろPHP関係ない可能性大だね 謎だね
ブラウザから直打ちでupdate.php叩いたらうまくいくの? ajaxに関係なくセッションデータが利用できない環境なのか
ajaxが絡むとセッションデータが利用できなくなる環境なのか ちなみに俺も(>>311とは別人)ローカル環境で試してみたけど上手くいった とりあえず書いておくがGCPのGAEで確認したがIE11のセキュリティゾーンがインターネットだとcookieがガードされてセッションは取得出来なかった
セキュリティゾーンを信頼済みに変えるとOK
スレチなのでこの辺で PHP側で確認するならタイムアウト時間とかセッション管理をDBにしてみるとかか? 遅くなりすみません
>>312
再配布いいんだっけと思って、jquery同梱していませんでした
update.js自体は動作しました
>>314
update.phpのPOST要素を無くして、login.php開いてる状態からupdate.php直打ちしてもうまくいきませんでした
>>316
$_SESSIONが拾えなくてSQL失敗しててもjs側では成功と表示されるのですが、
そういう意味ではなく・・・?
使ってる環境がバリュードメインのコアサーバー+Chromeなんですが、そのせいなのかな・・・ >>321
セッション拾える
>update.phpのPOST要素を無くして、login.php開いてる状態からupdate.php直打ちしてもうまくいきませんでした
セッション拾えないって意味? login.phpでセッション保存できてもupdate.php直打ち実行で
セッション表示されないって話ならajax関係ないな 別ブラウザ、別PC・スマホとか端末かえてみてもだめなら、
サーバ側に問題があるのでは?
ユーザ設定ファイルのphp.iniや.htaccess設置してたら削除してみたり、
cronの設定削除してみたり、
削除してだめならsave.path変更とか、phpのセッション周りの設定変えてみたり、
レンタルサーバだと問題の特定は難しいけど、
デフォルトでPHPセッションがおかしくなる環境が提供されてるとは考えにくい。 お世話になっています
セッションが切れてしまう問題ですが、原因がわかり問題が解決いたしました
結果を言いますと、update.phpの先頭1行目に空白の改行があったことが原因でした
本番用のコードにもテスト用の最小構成コードにも空白行があり、そのため動作していなかったようです
色々手助けしていただき助かりました
ありがとうございました 解決してよかったけど、うーん、死ねってのが本音だぁ・・・ 「再現可能な」←再現しないコードをばら撒いて騒いでました
ペチパーはほんと民度が低いな きっとおまえんちの部屋の中も
お前のコードと同じように無秩序で
足の踏み場もない汚部屋なんだろうな IDE(いったい 誰が気にする ええじゃないか)を使えばジャンプできるから問題ない 再現したコードをこのスレに上げたけど環境によって
再現しないって話だからしょうがないと思うけどな
まー次からはこのスレ使うといいよ
【PHP】下らねぇ質問はここに書き込みやがれ 10
http://mevius.5ch.net/test/read.cgi/tech/1543392526/ よくしらんがバリュードメインのコアサーバーって
無料のやつで先頭に広告が挿入されるようなやつか?
そうだとしても先頭空行でPHPが機能しないとか謎すぎる なるほど、headers already sentか。
確かにsession_start()はset-cookieしなきゃいけないからな。
しかし完全にオマ環だな。こりゃエスパーでも難しい。
WARNINGまで切っちゃってるのはレン鯖にありがちだが、
開発段階ならちゃんとerror_reportingだすようしないと。 俺のローカル環境php.iniみたらoutput_buffering 4096になってたわ
>>261のレンサバはオフになってるのだろう 気づけばプロ並みPHP読んでるけど難しというより面倒くさすぎて挫折しそう
会員登録システム作るだけでこんな面倒くさいのかよ 俺は今PHPで汎用型POSレジシステムを構築しようとしているぜ >会員登録システム
これはかなり鬼門だぞ。フレームワーク使ったほうが良い
セキュリティ方面はマジで沼だから初心者が手を出すべきじゃない 初心者から勉強するならフレームワーク使うな
自分でセキュリティ含めて考えながらやるべき
その後フレームワークを使え 期間決めて考えながらプロトタイプを作ってみる事はアリだと思うけど、
それをそのまま本番で使ってしまわないか心配だ ろくなフレームワークすらなかったPHP4の時代から独学で身につけたけど
今からPHPやるならフレームワークから入るってのもありなのかね
※今からやるなら他の言語をやれというのは無しでw
色々と便利なものはたくさんできたが
昔はウェブアプリといえばperlかPHPって感じで選択肢はあまりなかったけど
今から始める人は、選択肢がたくさんありすぎて訳わかんなくなったりするんだろうな 最近は古い記事が検索にかかりにくくなっているから大分マシじゃないかな
昔は古い記事が普通に残っていたので本当に混乱してたわ でもPHP関係の質問を見てると
未だにDB処理にリペアドステートメント使ってないとか
酷いのになると mysql 関数をまだ使ってるとか
結構あるんだよなぁ
ああいうのは何を見てまねしてるんだろ
PHPならまずはこの本を読め!ってのが無いのも問題か
ひょっとしたら今は決定版みたいな本があるのかもしれないが
少なくとも俺はPHP関係の本を買った事が一度もないw mysql 関数はmysqli 関数に置き換えれば済む・・・そう思っていた時期が僕にもありました
古いwordpressは内部的にmysql関数使っててびびったゾ 別にmysqliでもいい
無理してPDOにする必要はない
公開するわけじゃないし
結局PDOで書いても対応DBは1つなんだから PHP使ってるならSQLiteを使わないのはもったいないと思うけどね
個人の趣味程度のサイトならSQLiteの方がよほど手っ取り早い
もし負荷的にSQLiteで問題が出てきたらMySQLに変える
なんて事が、PDO使ってたら一瞬でできる
MySQLでしか使えない関数ももちろんあるけどさ
基本的なSQLはほぼ完全互換だし(当たり前) まずAUTOINCREMENTとAUTO_INCREMENTとSEQUENCEで既に違うのが面倒い
複数DB対応するならSQLを抽象化したい >>349
>基本的なSQLは「ほぼ」完全互換
ライトユーザーはwordpressだし、その辺がねぇ >>350が全部言ってるけど
結局PDOじゃ修正が必要になるわけで
将来的に別DBへのアップデート考えてんなら
最初からORM使っとけよって話だし >>351
WordPressはSQLite使えるでしょ
ひょっとしたら今のバージョンは使えなくなってるのかもしれないけど
つまり、実際にMySQL⇔SQLiteを柔軟に切り替えられるものはあるってこと
ライトユーザーこそWordPressなんか使っちゃ駄目だと思うんだよなぁ
2018年末頃頃だけでもプラグインの致命的な脆弱性のニュースを
何回も見て笑ってしまったw
そりゃ乗っ取られもするわ ”個人の趣味程度”って話へドヤ顔でORMとか言われても…な
sqliteはたしかに楽だよな
ファイルがロックしちゃうのが弱点だが更新の少ないウェブアプリなら全然あり >353
どんなFWでも使えるし、プラグインなら更に楽に導入できる
問題はセキュリティ面やphp・SQL・apacheなどの低級なところで問題が見つかった場合
SQLliteはなんだかんだでマイナーなので、その辺を担保できる補償がない
てか、俺hは無理だ 俺はスマホアプリもやるんでSQLiteがマイナーとか言われちゃうとモヤっとしちゃう wordpressならUPDATEよりSELECTのが圧倒的に多いし
ユーザー詰め込んでるレンサバならmysqlよりsqliteのが速度が出るまである
googleが表示速度を重視するってかなり前から言ってるのに
あんなくそ遅いcmsよく使うよなあ
どうせチューニングする知識もないだろうに さおりゃそうだよ、やっぱり使いやすいrCMSが最古ウさ CDNとか使わないなら、よっぽどの馬鹿が作らない限りセキュリティ面は大丈夫だろ
CDNとか下手にキャッシュさせるとそこから漏洩が始まるが。 wordpressのプラグインにサイト乗っ取り余裕でしたレベルの脆弱性が立て続けに見つかってたのに
何言ってるんだこいつ >>360
よく分からんけど、便利なプラグイン導入>アップデートしたら乗っ取られたってこと?
それとも最初からプラグイン入れたら乗っ取られたってこと?
前者は分からんでもないけど、校舎はうくえないなあ このなかで一番美人なのって真ん中だよね?深キョンレベルだと思うのだが
ちなみに向かって右は目も鼻も整形してるって本人が公言してるけどそれ抜きにして誰が一番美人だと思う?
http://bigsta.net/media/1933567086757747003_3564907098 IPAやJVNの発表を全然見てないのか知らないが
なんかPHPerがバカにされる理由がよく分かるな…
PHPも結構好きだから悲しくなってくるわ なんだかんだPHPって結局まるごとフロントエンドみたいな分野だからな >>354
それをいうなら個人の趣味程度でDBのスケールアップが必要か?
PDOなら書き換えが楽っていってるから
そうでもないだろうっていう話をしてるわけで >>364
何でPHP使って自前で組むのに
WordPressの情報なんて見てると思うんだ?
↓これならプラグイン使うなよってだけの話じゃん
WordPress 用プラグイン「WP Job Manager」におけるアクセス制限不備の問題について(JVN#56787058)
https://www.ipa.go.jp/security/ciadr/vul/20170615-jvn.html WordPressなら静的書出しすれば無敵っしょ。
できないサイトもあるだろうけど。 ペチパーじゃないから知らんけど
wordpressてphpとなんかかんけーあるの? ありまくり。PHPの3割ぐらいはWordpress案件じゃないの IPAやJVNって別にWordPressだけ・PHPだけの話を扱ってるわけじゃないから
日頃からアンテナ張ってる人なら
WordPressの話も自然と目にするし知ってて当たり前
1件2件どころの話じゃないんだから尚更
実際、今年一年ほとんどPHP案件無かった俺ですら知ってるよ
とマジレスしてみた
その昔IPAが
セキュアなウェブアプリを作りたいなら
PHPなんか使うな(意訳)と公で書いて
散々叩かれてたけど
まあそう書きたくなる気持ちは分かるなw
PHPが悪いんじゃなくて使う人間の質の問題 そういう専門的なところ見てなくても知ってるのが普通じゃね?
あちこちでニュースになってたんだから知らない方がおかしいわ ペチパーはPHPが世界の中心だとでも勘違いしてそうだな
マイナー言語界隈のマイナーな話題などニュースとすら言えない >>375
現実と合ってない情報で貶めようとするのやめよう
韓国人じゃないんだから 世界の中心(笑)
あれだけしょっちゅうあちこちで取り上げられてたら嫌でも目にするから
さすがに知らないのはただの無知かと
今年1年だけでもWordPress絡みの脆弱性発表は10数件はあったんじゃないかってのが個人的な印象
PHP案件絡んでない俺ですらこれなんだから
実際はもっとあったんじゃない? 知り合いの鯖缶やってるのがWPに親殺された勢いでWPを嫌ってるけど
WPでブログやってアフィで稼ぐみたいな安易な輩が増えまくってるんだってな
IQ80以下じゃないのか?ってレベルのやつやHTNLも全くできないレベルのじじいが
サポートに連絡しまくってくるんだと HTNLとかありそうでないワード出されると不安になる >>377
wordpressなんか使ってねーつーの >>380
知的障害の指標として今でも普通に使われてるけどね
IQ70未満が知的障害
80だと疑い高めの境目ってとこだからバカの例えとしてはいい線ついてる 過去のcake資源引き継ぐとか理由ない限りLaravelでok >>383
ブログでアフィ自体は大昔からあったが
ここ最近流行?のパターンは、スキルの全くない人間が情報商材みたいなのに騙されて自分にもできると勘違いして手を出すんだとよ
だからサポートに来る問い合わせの内容が知的障害者レベルなんじゃね?
>>382
それな
プログラムやるやつにコミュ障が多いって言われる理由がよくわかるわ 問い合わせのサポート対応できる人は尊敬する
俺なら
んなもん人から教わるようなもんじゃねぇんだから
ググればすぐ分かる事を他人に聞いてる時点でセンスねぇよ
やめちまえ
とか言いそうw https://www.techempower.com/benchmarks/
ここのベンチ見るとphpのswooleとやらが
4位になってるがどういうこっちゃね WordPressなんてブログツールとしか思ってないし
使わないから全く興味ないから、ニュースになっててもスルーだわ JVNの脆弱性レポートが偏ってるのは
ベンダーが掲載を許可するという大前提があるからだ
掲載されてないだけでサイボウズやWPが特別多いわけじゃない Linux難しいぉ
リポジトリみたら5.4だったからしょうがないからソースからいれたんだけど
#!/usr/local/bin/phpとかよく見るしそこに狙ったつもりが
/usr/local/bin/php/bin/phpにインストールされてるw 狙ったところに直接インストールするんじゃなくて
バージョン管理しやすいところにインストールして
シンボリックリンクを張るんだよ
そうすればバージョンの切り替えも簡単だから
Apacheとかも一緒 ■ このスレッドは過去ログ倉庫に格納されています