PHP質問・雑談スレ【初心者お断り(ROM歓迎)】©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん 転載ダメ©2ch.net
2016/04/22(金) 08:58:11.47ID:???初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。
PHP未導入の方や、手取り足取りが必要な初心者の方はくだスレへどうぞ。
【PHP】下らねぇ質問はここに書き込みやがれ 4
http://echo.2ch.net/test/read.cgi/tech/1457792733/
その他リンク
・PHPマニュアル
https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
http://ideone.com/
・プログラミングのお題スレ Part8 (求PHPer参戦)
http://echo.2ch.net/test/read.cgi/tech/1444216746/
このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
(FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼
このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
(HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0103nobodyさん
2016/07/21(木) 20:02:33.39ID:???php7には??なんてのがあるけど
0105100
2016/07/22(金) 11:53:45.74ID:9kPL7vfaログファイルを出力するとき、ログファイル名は
機能ごとに分けてる? それとも起動ファイルごとにわけてる?
それとも全部ひとつに出力しちゃってる?
まあ必要に応じてマージやソートやグレップすればいいだけだけど
0106nobodyさん
2016/07/24(日) 22:34:50.55ID:???別個にやると、ログローテーションなど考えるのが、面倒
0107nobodyさん
2016/07/25(月) 13:46:02.16ID:???0108nobodyさん
2016/07/26(火) 08:23:29.20ID:???通常ログ、エラーログ、メモリログをそれぞれ日付ごとに分けて出力してる
エラーログにはIDがついてて、エラーが起きる度にIDを発行し、
画面に表示するエラーメッセージにそのIDをくっつけているので、
それを報告してもらえばスタックトレースが追えるようになってる。
ログを残す日時は定義ファイルで自由に設定できて、
その日数を超えると自動で削除される。
0109108
2016/07/26(火) 08:28:20.12ID:???エラーが起きる度に新しいログファイルを作っていて、
自動削除機能がないのですさまじい数のファイルがログディレクトリに溜まっていた。
スタックトレースは勿論だが、関わっていた様々なオブジェクトのダンプも併せて出力されていて、
顧客が入力した名前から住所からクレジットカード番号から何から何まで全て記録されていた。
本当にこいつ、頭おかしいなと思った。
0110nobodyさん
2016/07/26(火) 09:24:24.33ID:???>>109
>顧客が入力した名前から住所からクレジットカード番号から何から何まで全て記録されていた。
ログファイルってそういうものじゃあないの?
0111nobodyさん
2016/07/26(火) 09:53:57.01ID:???なわけないじゃん。
ログファイルは問題が起きた時に原因を調べるためのもので、
商売に関わる情報を記録するためのものじゃない。
暗号化もしてないただのテキストファイルに一切合切記録してます、
なんて店で買い物する気になるか?
全然知らないマイナーな店で買い物する時、
自前でクレジット決済してるようなとこでお前はクレジットカード情報入力してるの?
普通は決済代行サービス使ってなきゃ代引きとかにするんじゃないか?
0112nobodyさん
2016/07/26(火) 11:50:37.27ID:???> なわけないじゃん。
なわけないじゃん。
> ログファイルは問題が起きた時に原因を調べるため
なのだから、ユーザの入力データが元でエラーが発生したのなら、その内容を保存するしか
あとから検証することは不可能。
> 暗号化もしてないただのテキストファイルに一切合切記録してます、
読める人が限定されてるなら問題ないね。
> 全然知らないマイナーな店で買い物する時、
> 自前でクレジット決済してるようなとこでお前はクレジットカード情報入力してるの?
> 普通は決済代行サービス使ってなきゃ代引きとかにするんじゃないか?
話が変わってるな。
自システムの入力にクレジットカード番号があり、その入力データが元でエラーが発生したなら、
それを保存しておく必要がある。
0113nobodyさん
2016/07/26(火) 13:22:03.73ID:???0114nobodyさん
2016/07/26(火) 14:37:44.59ID:???0115nobodyさん
2016/07/26(火) 16:14:37.96ID:???で、秘密鍵は複雑なパスフレーズ
(そして、監視系でパースできなくなる)
0116nobodyさん
2016/07/26(火) 16:57:25.88ID:???0117nobodyさん
2016/07/26(火) 17:21:21.13ID:???0118nobodyさん
2016/07/26(火) 18:35:51.05ID:???0119112
2016/07/27(水) 15:45:47.15ID:???エラーの原因調べるのにいちいち複合して調べるのか、お前らは?
マトモな奴は >>117 だけだな。さすが2chだ。馬鹿しかいない。
0120nobodyさん
2016/07/27(水) 15:47:16.29ID:???0121nobodyさん
2016/07/27(水) 15:52:15.81ID:???ログにクレジットカード番号とか記録するなって言ってるのは、
「敵は外にいるとは限らない」からだぞ。
お前らみたいな馬鹿に見られたら、ベネッセみたいになりかねねぇだろ。
だからマトモなシステムでは、そんなとこに秘匿情報は記録しねぇよ。
0123nobodyさん
2016/07/27(水) 16:01:19.35ID:???まあログに個人情報を書くと個人情報保護法が面倒だから
おれはログには個人情報は書かないかな
プログラム内のデバッグ用の細かい情報は生でもりもり書くから
それみられるのも恥ずかしいので暗号化くらいはしてもいいと思う
0124nobodyさん
2016/07/27(水) 17:26:21.33ID:???> だからマトモなシステムでは、そんなとこに秘匿情報は記録しねぇよ。
そうでもないよ
>>123
> まあログに個人情報を書くと個人情報保護法が面倒だから
全然面倒じゃありませんが
てか、小間個人情報を扱うシステムに携わったことないだろ?
0125nobodyさん
2016/07/27(水) 17:31:27.04ID:???> もう一つ、分かってねーみたいだから言っとくけど、
> ログにクレジットカード番号とか記録するなって言ってるのは、
> 「敵は外にいるとは限らない」からだぞ。
エラーログの話なんだが
お前の所のエラーログには、秘匿情報が山盛りなのか?
そんな低品質なプロダクトを公開するんじゃねーよ
0126nobodyさん
2016/07/27(水) 18:55:05.35ID:???お前が関わってるプロジェクトがそうであるかどうかは俺のしったこっちゃない。
一般論の話だ。おまえがどんなゴミクズ触ってようと、知らない。
>>125
おまえ、日本語読めない人? 本当に馬鹿ばっかだな。
0129nobodyさん
2016/07/29(金) 08:02:10.25ID:???そういう会社の処理ログが、顧客の入力した値を記録しないで成り立つの?
0130nobodyさん
2016/07/29(金) 08:36:16.04ID:???0132nobodyさん
2016/08/01(月) 11:38:46.41ID:???0133nobodyさん
2016/08/01(月) 14:21:42.59ID:???0135nobodyさん
2016/08/02(火) 20:44:34.08ID:???0136nobodyさん
2016/08/03(水) 05:52:42.70ID:???0137nobodyさん
2016/08/03(水) 07:14:20.85ID:???見れちゃいけないオレが見放題になってるんだけどなw
お前らの「必要だ!」なんか信じてたらWEBで買い物なんかできねーよw
0138nobodyさん
2016/08/03(水) 14:04:49.45ID:???個人特定する情報ならユーザIDでいいし
決済エラーでどのクレカ番号が決済できなかったとかそんなもん管理者が知る必要はないし
どう考えても悪意以外でクレカ情報をエラーログに書き込む必要性を感じない
0139nobodyさん
2016/08/03(水) 17:04:25.17ID:???ログを暗号化する話とパスワードを平文で保存するかどうかの話には大きな隔たりがあるんだけど、なんで同列の話であるかのようなレスをしたの?
0140nobodyさん
2016/08/03(水) 18:14:54.51ID:???> どう考えても悪意以外でクレカ情報をエラーログに書き込む必要性を感じない
ユーザの入力間違いが原因かもしれんで
0141nobodyさん
2016/08/03(水) 18:19:45.35ID:???例えばさ、ユーザから「ちゃんとパスワードを入力してるのにログインできない」とか言われたとき、
パスワードをログに出力しておかないと、本当に正しく入力したのかどうかわからんでしょ
まぁそれを暗号化してログに出力するかどうかは別問題だが
0142nobodyさん
2016/08/03(水) 18:33:34.90ID:???そんなシステムみたことないけど。
0143nobodyさん
2016/08/03(水) 18:34:56.68ID:???全部ログに吐くようにするわな
普段は生でも問題ないレベルにしておくけど
0144nobodyさん
2016/08/03(水) 20:02:41.89ID:???エラーログってのはエラーの内容を特定するために必要なものであって
入力内容をエラーログに書き込むようなことしないでしょ
パスワードが本当に正しいかなんてのは
そんなのパスワードリマインダー使うなり変更して下さいで済む問題で
管理者が知る必要のない情報
0145nobodyさん
2016/08/03(水) 20:45:26.54ID:???0146nobodyさん
2016/08/04(木) 04:09:07.48ID:???二次元配列をテキストファイルに行列形式で出力したいです。
fwriteとかfput_outなどで通常の配列は出力していたのですが、二次元配列だと
それができないようで、何か便利な関数や方法があれば教えていただきたいと思います。
よろしくお願い致します。
0147nobodyさん
2016/08/04(木) 11:10:02.45ID:???> エラーログってのはエラーの内容を特定するために必要なものであって
> 入力内容をエラーログに書き込むようなことしないでしょ
だから、その入力内容が原因でエラーが発生したという場合もあるのだから、入力内容を
ログ出力しておかないと後で調査できないという話なんだが。
> パスワードが本当に正しいかなんてのは
> そんなのパスワードリマインダー使うなり変更して下さいで済む問題で
いや済まない。
まず、ユーザが正しい入力をしたという認識なのだから、原因を特定するのはこちらの責任。
そもそも、ユーザがどうやってパスワードを管理・入力しようが、こちらは関係ないし。
0148nobodyさん
2016/08/04(木) 11:11:19.67ID:???> それができないようで、
できない。
> 何か便利な関数や方法があれば
ない。
それくらい、自分でコード書け。
0149nobodyさん
2016/08/04(木) 12:10:21.37ID:???多分 デバッグログ のつもりで書いているんだと思う。
デバッグログには、そりゃあもう何でも書くよ! 何でもだ!
0150nobodyさん
2016/08/04(木) 13:17:48.14ID:???それがデータベースの値と異なるとき、
* 過去にそのユーザのログイン実績があるなら、今回はユーザの入力間違い
* 過去にそのユーザのログイン実績がないなら、パスワード登録時にミスったか、今回ミスったかのどちらか
* 微レ存でバグ
0151nobodyさん
2016/08/04(木) 17:14:33.17ID:???PHPのアップデートでハッシュ関数にバグが入り、極まれな特定の入力でハッシュ値が以前と合わなくなっていた、なんてケースに当たったらどうするよ
0153nobodyさん
2016/08/04(木) 18:20:22.43ID:???実際それは考慮しないといけないかもよ。
入力もロジックも間違ってないことの確証が得られなければ永遠に原因追求させられかねん。
ここには絶対に間違いが無いので別の要因ですと言える証拠は必要。
0154nobodyさん
2016/08/04(木) 18:33:56.52ID:???0155nobodyさん
2016/08/04(木) 19:59:39.18ID:???欠陥PHPer
0156nobodyさん
2016/08/04(木) 22:54:18.36ID:???0158nobodyさん
2016/08/05(金) 07:56:52.51ID:???もうほっといた方がいいよ。
馬鹿だからプライドが一番大事なんだから、そいういう奴は。
0159nobodyさん
2016/08/05(金) 10:55:34.15ID:???それをしない奴ってマゾか何かなのか
0160nobodyさん
2016/08/05(金) 10:57:27.14ID:???調査楽だし
0161nobodyさん
2016/08/05(金) 10:58:43.00ID:???> 秘匿情報もログに全部出すべきだって言っちゃって引っ込みつかなくなってるだけだから
俺は逆にログに「出すべきじゃない」って奴のほうが引っ込みつかなくなってるように見えるが
0162nobodyさん
2016/08/05(金) 11:30:43.27ID:???最近はパスワードをログに出すのは良くないっぽいよ
システムのログでもデフォじゃパスワードっぽいのは *** にされる
おかげで入力ミスかどうかを調査するとき難儀したわ
ログには生の情報出せよ・・・ といつも思うわ
ログレベルで出力絞るのはいいけど、加工すんなや
0163nobodyさん
2016/08/05(金) 14:09:14.63ID:???$_GET, $_POST, $_SESSION, $_COOKIE, backtrace
を毎回全部出してるから、ログイン処理で致命的エラーが発生したら、パスワードも出力されるよ。
(E_NOTICE, E_USER_NOTICEはエラーログ出力しないとかはあるけど)
まぁ、エラーログ見られなきゃいいんじゃねーの的な。
0164nobodyさん
2016/08/05(金) 14:11:38.28ID:???調査楽だという理由にしても秘匿情報そのまま出すとか基地外
0168nobodyさん
2016/08/05(金) 18:36:53.61ID:???0169nobodyさん
2016/08/05(金) 23:23:47.40ID:???みたいな連想配列からユニークなvalueの一覧を作成するのってどうするのが一般的でしょうか。
とりあえず思いついているのは以下の通りです。1で大丈夫か心配です。
1. foreach( $items as $item )
if ( ! in_array($item[‘value’], $uniques )
$uniques[] = $item[‘value’]
2. foreach( $items as $item )
if ( ! isset( $item[‘value’], $uniques ))
$uniques[‘$item[‘value’]] = 0; // 0はダミー
3. array_column して array_unique
4. array_flip
0172nobodyさん
2016/08/07(日) 01:59:22.71ID:???1でいいけど条件文いれんでも$uniques[$item['value']]+=1;とかにしてarray_keys()とかkey()で取ればいいんじゃねと思う
配列操作はたいていforeachが早いイメージだけど3のやり方も好き
0174nobodyさん
2016/08/07(日) 12:35:28.47ID:???重複してれば何個重複してるかわかるし0入れるよりはいいんじゃね。
0175nobodyさん
2016/08/07(日) 13:01:13.41ID:???2から条件文抜くだけならいいけど。
0176nobodyさん
2016/08/07(日) 13:59:05.52ID:???0177169
2016/08/07(日) 15:48:01.41ID:???1より2の方が速そうだけども、キーだけが重要な配列は違和感が強く心配だったので意見いただけて助かりました。
集計にもなるって見方はなかった・・・どこかで使わせてもらいます。
0180nobodyさん
2016/08/08(月) 14:54:28.09ID:???0181nobodyさん
2016/08/08(月) 15:54:57.80ID:???0182nobodyさん
2016/08/08(月) 16:53:05.12ID:???0184nobodyさん
2016/08/12(金) 15:36:43.59ID:???0185nobodyさん
2016/08/12(金) 17:14:20.68ID:???0186nobodyさん
2016/08/13(土) 00:20:42.61ID:???さすがにお前らつくり話がすぎるぞwww
0187nobodyさん
2016/08/13(土) 11:20:29.98ID:???0188nobodyさん
2016/08/13(土) 13:46:49.50ID:???0189nobodyさん
2016/08/13(土) 20:36:20.52ID:???0190nobodyさん
2016/08/14(日) 05:54:00.76ID:???あったあった
0191nobodyさん
2016/08/14(日) 13:52:21.17ID:???メンバ変数全てにゲッターとセッターを作ってそれ経由で値を出し入れしてるんだが、全メンバ変数 public。
プログラムの方もメチャクチャなんだが、そっちはもう、キチガイすぎて語りきれない。
0192nobodyさん
2016/08/14(日) 14:05:05.36ID:???0193nobodyさん
2016/08/14(日) 14:31:47.30ID:???だが、全部の変数用のgetter、setterを作るのは、間違いなく思考停止した馬鹿。
そういうのは昔のデバッガが貧弱だった時代に妥協策だっただけだ。
0194nobodyさん
2016/08/18(木) 13:52:33.66ID:???0195nobodyさん
2016/08/18(木) 14:05:59.58ID:???ユーザーIDは普通に保存するけど
いや普通はセッションIDだけか
あーでもユーザIDくらいならついでに置いとくか
0196nobodyさん
2016/08/18(木) 14:28:41.06ID:???いちいち再ログインのための仕組みをプログラマー側が用意する必要はないだろ
0197nobodyさん
2016/08/18(木) 17:42:27.41ID:???0198nobodyさん
2016/08/18(木) 19:50:44.85ID:???0199nobodyさん
2016/08/18(木) 22:40:16.06ID:???いくらクッキーが安全といってもそれを適切に管理できないと凶器でしかない
0200nobodyさん
2016/08/19(金) 00:15:57.40ID:???そんなとこにpasswordを入れるかどうか議論したい馬鹿がいるのか?
もっと言うと、自動再ログインにpassword利用する猿がいるのか?
0201nobodyさん
2016/08/19(金) 01:32:24.21ID:???それが漏れたら一緒でしょ
0202nobodyさん
2016/08/19(金) 01:54:04.00ID:???0203nobodyさん
2016/08/19(金) 02:02:30.14ID:???それが漏れたら一緒でしょ
■ このスレッドは過去ログ倉庫に格納されています