トップページphp
1002コメント362KB

PHP質問・雑談スレ【初心者お断り(ROM歓迎)】©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん 転載ダメ©2ch.net2016/04/22(金) 08:58:11.47ID:???
PHP関する質問や雑談をするスレです。
初心者お断り(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の改造
0055nobodyさん2016/04/30(土) 16:45:00.93ID:???
>>54
これも初心者でしょう。>>1 は何をやっているのか
0056nobodyさん2016/05/02(月) 16:06:53.55ID:???
>>54
ブラウザから情報貰えばもちろんサーバ側で処理の分岐はできるが、
PHPだからできる/できないという話ではない
0057nobodyさん2016/05/02(月) 16:16:17.97ID:???
>>56
いや、PHPではできないよ
0058nobodyさん2016/05/02(月) 17:12:11.72ID:???
ド素人ばっかじゃねーかw
0059nobodyさん2016/05/03(火) 15:51:39.24ID:???
玄人さんちーっす
0060nobodyさん2016/05/03(火) 17:36:59.96ID:???
>>1がまじめにスレを管理してればこうはならなかった。
立て逃げするとたいていこうなるもんだ。
0061nobodyさん2016/05/04(水) 22:22:25.80ID:???
お前が悪い
人のせいにすんなクズ
0062nobodyさん2016/05/05(木) 03:09:23.48ID:???
いやいや、このスレできるまでの流れを見てそんなこと言えるってすごいな。
0063nobodyさん2016/05/05(木) 10:27:02.73ID:???
おれはすごい
0064nobodyさん2016/05/07(土) 20:09:13.75ID:???
PHP7の話でもしようぜ
0065nobodyさん2016/05/07(土) 22:51:52.05ID:???
なにそれ?w
0066nobodyさん2016/05/08(日) 11:09:22.46ID:???
PHP7の高速化って三菱みたいなよかった計測結果を中央値のように公表してるな
まぁパフォーマンスが向上してるのは確かだけども正直期待ハズレ
HHのほうがだいぶパフォーマンスは上だな
0067nobodyさん2016/05/08(日) 11:22:56.94ID:???
HHVMはES6やTypeScriptに良い所を飲み込まれて消えゆくCoffeeScript、という立ち位置
そもそも静的解析や速度が重要ならPHPが選択肢に上がる訳がない
適当に書けて適当に動けばいいって人間が使うんだから
0068nobodyさん2016/05/08(日) 12:53:48.77ID:???
LLの中じゃ頭1つ抜けてるだけPHPの速度で十分だろ
問題はセキュリティとスケーラビリティだな
後者はある程度克服出来るにしても
PHPだけの問題ではなくWebのセキュリティはスカスカな傾向にあるし
しっかり作りこまれて穴があればプッシュ通知で即座に自動更新されるようなFWがあれば最高なんだが
Webでそこまでやるのはまだ難しい
0069nobodyさん2016/05/09(月) 11:07:30.24ID:???
>>67
> そもそも静的解析や速度が重要ならPHPが選択肢に上がる訳がない
その論法でいくと、世のhogeコンパイラのほとんどが意味の無いものということになるが
0070nobodyさん2016/05/20(金) 09:08:45.44ID:???
いま一番簡単なフレームワークって何ですか?
パスワードでログインしたら、ほぼ静的なコンテンツを表示する
という簡単なサイトを構築したいのです
動的な部分はログインだけなので出来るだけ簡単なのがいいです
0071nobodyさん2016/05/20(金) 10:17:30.10ID:???
>>70
BASIC認証にしたら?
0072nobodyさん2016/05/20(金) 10:56:50.01ID:???
BASIC認証には殺意を覚える
0073nobodyさん2016/05/24(火) 05:56:46.42ID:???
簡単さは処理速度に比例すると思っていいよ
処理速度が遅いものほどお世話がすぎるので簡単に出来るし
処理速度が早いものほどコードを多く書かないといけないので面倒といえる
0074nobodyさん2016/05/25(水) 11:44:53.96ID:???
php.ini を直接編集できない環境

出力の文字コードの自動的な変換は
mb_http_output("SJIS");
ob_start("mb_output_handler");
で出来るけど、入力の自動的な変換は どうやってやればいいの?

mb_http_input("SJIS");
ini_set("mbstring.encoding_translation","on");
としてみたけどダメだった
0075nobodyさん2016/05/26(木) 15:26:25.65ID:???
> 関数リファレンスが正しく読める方用のスレです。
0076nobodyさん2016/05/28(土) 19:22:23.17ID:???
PHP上級試験を取得したら転職に有利かな?
0077nobodyさん2016/05/29(日) 16:41:08.97ID:???
PHPの変態仕様を理解するテストなんて受けても敬遠されるで
0078nobodyさん2016/06/03(金) 18:47:32.56ID:???
・・・と初級落ちたカスが申しております。
0079nobodyさん2016/06/10(金) 20:21:24.34ID:???
あんな試験受けちゃう恥ずかしいやついたのかw
0080nobodyさん2016/06/13(月) 12:30:02.52ID:???
落ちたこともあるよ
0081nobodyさん2016/06/28(火) 14:48:22.91ID:???
session_register()って最近じゃ使わないみたいだけど
みんなどうやってセッションしてるの?
$_SESSION に直接ぶっこんでるの?
0082nobodyさん2016/06/29(水) 14:28:16.85ID:???
session_register 5.4で削除
$HTTP_SESSION_VARS 非推奨
これ見て$_SESSION以外を使うという選択肢にたどりついたなら
初心者からやり直しだなぁ
0083nobodyさん2016/06/29(水) 15:47:56.59ID:???
>>82
ほんとこれな
PHPerってひとこと余計なこと多いよな
マウンティング大好き種族
0084nobodyさん2016/06/29(水) 16:29:27.37ID:???
>>1ぐらい読めよ
雑魚はム板でシコシコやってろ
0085nobodyさん2016/06/29(水) 22:55:19.98ID:???
PHPDocの質問だけど
ある関数で入力を書くとき
明確にパラメータがあるときは @param でいいけど
グローバル変数($_SESSIONなど) を使ってるときに
それをうまいこと明示する方法はありますか?
0086nobodyさん2016/06/30(木) 13:20:30.40ID:???
>>85
引数で貰うようにすれば問題ない
0087nobodyさん2016/06/30(木) 14:40:14.41ID:???
>>86
前提条件を覆すなよ低能
0088nobodyさん2016/06/30(木) 15:10:55.49ID:???
>>87
関数内で$_SESSIONを使うようなゴミよりましですが
0089nobodyさん2016/06/30(木) 17:08:54.44ID:???
聞いたことには答えず、聞いてないことばかり答えやがって
ほんとゴミ共にはうんざりさせられるわ
0090nobodyさん2016/06/30(木) 18:46:37.08ID:???
マニュアルを探すこともできないのか
https://www.phpdoc.org/docs/latest/index.html
0091852016/06/30(木) 18:51:18.49ID:???
>>90
ありがとう
@uses を使えばいいの?
0092nobodyさん2016/07/01(金) 03:22:15.95ID:???
>関数内で$_SESSION
オブジェクト指向でやれ
0093nobodyさん2016/07/01(金) 12:21:33.28ID:???
>>92
クラス内で$_SESSION参照するようにしました
0094nobodyさん2016/07/01(金) 13:00:43.01ID:???
コンストラクタの引数にしろよw
0095nobodyさん2016/07/12(火) 18:59:38.75ID:fbJA+QlH
Parse error: syntax error, unexpected '['
上記のエラーが出ます。
該当行は下記です。すみませんが解決方法を教えていただけませんか。

$statuses = $toa->get('statuses/home_timeline', ['count' => '20']);
0096nobodyさん2016/07/12(火) 19:01:10.31ID:fbJA+QlH
95です、すみません、スレ違いでした。失礼しました。
0097nobodyさん2016/07/21(木) 00:56:54.84ID:xr3YoYIn
最新のRaspbianでApache2+php5環境を作ったつもりなんですが、うまく動きません。
phpは一応有効で例えばphpinfo();なんかは正しく動いているようです。
そして行頭の<?phpから他の行頭の?>までのブロックの中は正しく動いているみたいなんですが、

普通のhtmlの中に<?php>print($var);?>と書いた部分が正しく動かなくて、
print($var);?>がそのまま表示されます。
何がいけないんでしょうか?教えて下さい
0098972016/07/21(木) 01:28:11.46ID:???
short_open_tag = On でOKでした。
0099nobodyさん2016/07/21(木) 19:00:00.44ID:???
変数が存在したら代入
$unko = isset($a) ? $a : $unko;
をなんかかっこよく書く方法あったよね?
0100nobodyさん2016/07/21(木) 19:10:26.34ID:eZpumwmi
ほんとくだらない質問なんだけど

$json という変数があったとき、第一印象で中身は何だと思う?

・JSON文字列
・JSON文字列をデコードして出てきたオブジェクト
・JSON文字列を格納してあるファイル名
・JavaScript有効フラグ
0101nobodyさん2016/07/21(木) 19:18:56.23ID:???
>>99
if(isset($a)) $unko=$a;

でなけりゃエルビス演算子
0102nobodyさん2016/07/21(木) 20:00:49.19ID:???
かっこ良くってこれのこといってんか?
>(expr1) ? (expr2) : (expr3) という式は、式1 が TRUE の場合に 式2 を、 式1 が FALSE の場合に 式3 を値とします。
>PHP 5.3 以降では、三項演算子のまんなかの部分をなくすこともできるようになりました。 式 expr1 ?: expr3 の結果は、expr1 が TRUE と同等の場合は expr1、 それ以外の場合は expr3 となります。
0103nobodyさん2016/07/21(木) 20:02:33.39ID:???
102がエルビスな
php7には??なんてのがあるけど
0104nobodyさん2016/07/21(木) 20:49:17.27ID:???
>>101-103
ありがとう
エルビスかっこいいよね
01051002016/07/22(金) 11:53:45.74ID:9kPL7vfa
ほんとくだらない質問なんだけど

ログファイルを出力するとき、ログファイル名は
機能ごとに分けてる? それとも起動ファイルごとにわけてる?
それとも全部ひとつに出力しちゃってる?

まあ必要に応じてマージやソートやグレップすればいいだけだけど
0106nobodyさん2016/07/24(日) 22:34:50.55ID:???
OSのロガーを使えば、良いのでは?

別個にやると、ログローテーションなど考えるのが、面倒
0107nobodyさん2016/07/25(月) 13:46:02.16ID:???
monologでも使えば?
0108nobodyさん2016/07/26(火) 08:23:29.20ID:???
>>105
通常ログ、エラーログ、メモリログをそれぞれ日付ごとに分けて出力してる

エラーログにはIDがついてて、エラーが起きる度にIDを発行し、
画面に表示するエラーメッセージにそのIDをくっつけているので、
それを報告してもらえばスタックトレースが追えるようになってる。

ログを残す日時は定義ファイルで自由に設定できて、
その日数を超えると自動で削除される。
01091082016/07/26(火) 08:28:20.12ID:???
関係ないけど、前にやったプロマネがつくったログは
エラーが起きる度に新しいログファイルを作っていて、
自動削除機能がないのですさまじい数のファイルがログディレクトリに溜まっていた。

スタックトレースは勿論だが、関わっていた様々なオブジェクトのダンプも併せて出力されていて、
顧客が入力した名前から住所からクレジットカード番号から何から何まで全て記録されていた。

本当にこいつ、頭おかしいなと思った。
0110nobodyさん2016/07/26(火) 09:24:24.33ID:???
>>109
>>109
>顧客が入力した名前から住所からクレジットカード番号から何から何まで全て記録されていた。

ログファイルってそういうものじゃあないの?
0111nobodyさん2016/07/26(火) 09:53:57.01ID:???
>>110
なわけないじゃん。

ログファイルは問題が起きた時に原因を調べるためのもので、
商売に関わる情報を記録するためのものじゃない。

暗号化もしてないただのテキストファイルに一切合切記録してます、
なんて店で買い物する気になるか?

全然知らないマイナーな店で買い物する時、
自前でクレジット決済してるようなとこでお前はクレジットカード情報入力してるの?
普通は決済代行サービス使ってなきゃ代引きとかにするんじゃないか?
0112nobodyさん2016/07/26(火) 11:50:37.27ID:???
>>111
> なわけないじゃん。
なわけないじゃん。

> ログファイルは問題が起きた時に原因を調べるため
なのだから、ユーザの入力データが元でエラーが発生したのなら、その内容を保存するしか
あとから検証することは不可能。

> 暗号化もしてないただのテキストファイルに一切合切記録してます、
読める人が限定されてるなら問題ないね。

> 全然知らないマイナーな店で買い物する時、
> 自前でクレジット決済してるようなとこでお前はクレジットカード情報入力してるの?
> 普通は決済代行サービス使ってなきゃ代引きとかにするんじゃないか?
話が変わってるな。
自システムの入力にクレジットカード番号があり、その入力データが元でエラーが発生したなら、
それを保存しておく必要がある。
0113nobodyさん2016/07/26(火) 13:22:03.73ID:???
エラーログを暗号化すれば?
0114nobodyさん2016/07/26(火) 14:37:44.59ID:???
ログを盗まれる状況なら鍵も盗まれるだろ
0115nobodyさん2016/07/26(火) 16:14:37.96ID:???
public_key.public_encrypt(log)とかすれば?
で、秘密鍵は複雑なパスフレーズ
(そして、監視系でパースできなくなる)
0116nobodyさん2016/07/26(火) 16:57:25.88ID:???
公開鍵暗号は重いからログ出力に直接使うのは適さないと思う。
0117nobodyさん2016/07/26(火) 17:21:21.13ID:???
エラーログの話
0118nobodyさん2016/07/26(火) 18:35:51.05ID:???
ログを盗まれる状況なら公開鍵も差し替えられる
01191122016/07/27(水) 15:45:47.15ID:???
あのさ、なんか脳みそ腐ってる人が多いみたいだけど、
エラーの原因調べるのにいちいち複合して調べるのか、お前らは?

マトモな奴は >>117 だけだな。さすが2chだ。馬鹿しかいない。
0120nobodyさん2016/07/27(水) 15:47:16.29ID:???
復号 の間違いだけど、お前らには誤字で十分だな。
0121nobodyさん2016/07/27(水) 15:52:15.81ID:???
もう一つ、分かってねーみたいだから言っとくけど、
ログにクレジットカード番号とか記録するなって言ってるのは、
「敵は外にいるとは限らない」からだぞ。

お前らみたいな馬鹿に見られたら、ベネッセみたいになりかねねぇだろ。
だからマトモなシステムでは、そんなとこに秘匿情報は記録しねぇよ。
0122nobodyさん2016/07/27(水) 15:58:50.74ID:???
>>119
古いログは圧縮されてるからzlessで見たりするけど
その延長のノリでならイエスかなぁ
0123nobodyさん2016/07/27(水) 16:01:19.35ID:???
>>121
まあログに個人情報を書くと個人情報保護法が面倒だから
おれはログには個人情報は書かないかな

プログラム内のデバッグ用の細かい情報は生でもりもり書くから
それみられるのも恥ずかしいので暗号化くらいはしてもいいと思う
0124nobodyさん2016/07/27(水) 17:26:21.33ID:???
>>121
> だからマトモなシステムでは、そんなとこに秘匿情報は記録しねぇよ。
そうでもないよ

>>123
> まあログに個人情報を書くと個人情報保護法が面倒だから
全然面倒じゃありませんが
てか、小間個人情報を扱うシステムに携わったことないだろ?
0125nobodyさん2016/07/27(水) 17:31:27.04ID:???
>>121
> もう一つ、分かってねーみたいだから言っとくけど、
> ログにクレジットカード番号とか記録するなって言ってるのは、
> 「敵は外にいるとは限らない」からだぞ。
エラーログの話なんだが

お前の所のエラーログには、秘匿情報が山盛りなのか?
そんな低品質なプロダクトを公開するんじゃねーよ
0126nobodyさん2016/07/27(水) 18:55:05.35ID:???
>>124

お前が関わってるプロジェクトがそうであるかどうかは俺のしったこっちゃない。
一般論の話だ。おまえがどんなゴミクズ触ってようと、知らない。

>>125

おまえ、日本語読めない人? 本当に馬鹿ばっかだな。
0127nobodyさん2016/07/27(水) 18:56:58.55ID:???
とりあえず、>>125 みたいな馬鹿だけは発言出来ないようにしてくんねぇかな?

話が前に進まない。
0128nobodyさん2016/07/28(木) 08:32:23.41ID:???
>>124
あなたみたいなのがパスワード平文でDBに突っ込むんだな
0129nobodyさん2016/07/29(金) 08:02:10.25ID:???
クレジットカード番号保存って、決済代行会社のシステムだよな。
そういう会社の処理ログが、顧客の入力した値を記録しないで成り立つの?
0130nobodyさん2016/07/29(金) 08:36:16.04ID:???
amazonにバッチリクレカ情報のこるで
0131nobodyさん2016/07/29(金) 09:47:50.67ID:???
文盲の >>129 が現れました。仲間にしますか?
0132nobodyさん2016/08/01(月) 11:38:46.41ID:???
エラーログを暗号化するという人は、鍵管理はどうやってるの?
0133nobodyさん2016/08/01(月) 14:21:42.59ID:???
エラーログ暗号化とかどんな機密情報がはいってrんw
0134nobodyさん2016/08/01(月) 16:47:30.92ID:???
>>133
クレジットカード番号とか暗号化してるみたいだよ。
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:???
>>128
ログを暗号化する話とパスワードを平文で保存するかどうかの話には大きな隔たりがあるんだけど、なんで同列の話であるかのようなレスをしたの?
0140nobodyさん2016/08/03(水) 18:14:54.51ID:???
>>138
> どう考えても悪意以外でクレカ情報をエラーログに書き込む必要性を感じない
ユーザの入力間違いが原因かもしれんで
0141nobodyさん2016/08/03(水) 18:19:45.35ID:???
>>138
例えばさ、ユーザから「ちゃんとパスワードを入力してるのにログインできない」とか言われたとき、
パスワードをログに出力しておかないと、本当に正しく入力したのかどうかわからんでしょ

まぁそれを暗号化してログに出力するかどうかは別問題だが
0142nobodyさん2016/08/03(水) 18:33:34.90ID:???
そもそも、決済時に決済と同じトランザクションでクレカ番号を受け取るようなシステムって存在するのか?
そんなシステムみたことないけど。
0143nobodyさん2016/08/03(水) 18:34:56.68ID:???
ログレベルをマックスまで上げたなら パスワードだろうが住所だろうが
全部ログに吐くようにするわな
普段は生でも問題ないレベルにしておくけど
0144nobodyさん2016/08/03(水) 20:02:41.89ID:???
>>140-141
エラーログってのはエラーの内容を特定するために必要なものであって
入力内容をエラーログに書き込むようなことしないでしょ
パスワードが本当に正しいかなんてのは
そんなのパスワードリマインダー使うなり変更して下さいで済む問題で
管理者が知る必要のない情報
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:???
>>144
> エラーログってのはエラーの内容を特定するために必要なものであって
> 入力内容をエラーログに書き込むようなことしないでしょ
だから、その入力内容が原因でエラーが発生したという場合もあるのだから、入力内容を
ログ出力しておかないと後で調査できないという話なんだが。

> パスワードが本当に正しいかなんてのは
> そんなのパスワードリマインダー使うなり変更して下さいで済む問題で
いや済まない。
まず、ユーザが正しい入力をしたという認識なのだから、原因を特定するのはこちらの責任。
そもそも、ユーザがどうやってパスワードを管理・入力しようが、こちらは関係ないし。
0148nobodyさん2016/08/04(木) 11:11:19.67ID:???
>>146
> それができないようで、
できない。

> 何か便利な関数や方法があれば
ない。

それくらい、自分でコード書け。
0149nobodyさん2016/08/04(木) 12:10:21.37ID:???
>>144
多分 デバッグログ のつもりで書いているんだと思う。

デバッグログには、そりゃあもう何でも書くよ! 何でもだ!
0150nobodyさん2016/08/04(木) 13:17:48.14ID:???
パスワードに関して言えば、データベースに保存するときと同じロジックで変換した結果をログ出力すればいい
それがデータベースの値と異なるとき、
* 過去にそのユーザのログイン実績があるなら、今回はユーザの入力間違い
* 過去にそのユーザのログイン実績がないなら、パスワード登録時にミスったか、今回ミスったかのどちらか
* 微レ存でバグ
0151nobodyさん2016/08/04(木) 17:14:33.17ID:???
>>150
PHPのアップデートでハッシュ関数にバグが入り、極まれな特定の入力でハッシュ値が以前と合わなくなっていた、なんてケースに当たったらどうするよ
0152nobodyさん2016/08/04(木) 17:55:18.33ID:???
>>151
CPUに宇宙線があたって計算ミスが発生することも考えないとね
0153nobodyさん2016/08/04(木) 18:20:22.43ID:???
>>152
実際それは考慮しないといけないかもよ。
入力もロジックも間違ってないことの確証が得られなければ永遠に原因追求させられかねん。
ここには絶対に間違いが無いので別の要因ですと言える証拠は必要。
0154nobodyさん2016/08/04(木) 18:33:56.52ID:???
パスワードを生で出力しとけばOK
0155nobodyさん2016/08/04(木) 19:59:39.18ID:???
>その入力内容が原因でエラーが発生したという場合もあるのだから
欠陥PHPer
■ このスレッドは過去ログ倉庫に格納されています