X



PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
垢版 |
2017/06/28(水) 21:34:09.26ID:???
PHPに関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
http://mevius.2ch.net/tech/ (【PHP】で板内を検索)

前スレ
http://medaka.2ch.net/test/read.cgi/php/1486956982/

その他リンク
・PHPマニュアル
 https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
 http://ideone.com/
・プログラミングのお題スレ (求PHPer参戦)
 http://mevius.2ch.net/test/read.cgi/tech/1480579110/

このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
 (FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼

このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
 (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0851nobodyさん
垢版 |
2018/09/15(土) 14:36:06.00ID:???
今まで見て来た範囲で大半は、
リアルタイムにしたいのに技術力がなくてできなくて、
そんでもって処理も下手で起動が遅かったり
多重動作したりしてたから。

daemonにしたらそういうことはなくなる。
そもそも落ちるなんて稀な品質で作るし、
落ちたら条件付きで自動再起動するのは
他のサービスでもやるからね。

毎分起動ですぐに処理が終わって、
リアルタイム性を要求されてないならOKだよ。
でもそんなの少ない。
0852nobodyさん
垢版 |
2018/09/15(土) 14:38:21.89ID:g0abHATJ
コンテナオーケストレーターのAmazon ECS使うわ

プロセスが仮に落ちても自動で再起動してくれる
使用するメモリーも制限できる

cronのような定期実行も一応出来る
0853nobodyさん
垢版 |
2018/09/15(土) 14:50:10.75ID:???
>>851
>リアルタイムにしたい
それバッチでやることじゃないのにバッチを使ってる、っていう転用事例だよな後出しじゃん

>そんでもって処理も下手で起動が遅かったり
>多重動作したりしてたから
バッチ利用が悪くてdaemonなら良い、っていう問題じゃないよなコレ。ただの技術力の低さ

>毎分起動ですぐに処理が終わって、
>リアルタイム性を要求されてないならOKだよ。
>でもそんなの少ない。

後の2行はdaemon利用であるかどうかと無関係
むしろ上述の前提のとおり技術力がないならdaemonでもトラブル多発する

>毎分起動ですぐに処理が終わって、
>リアルタイム性を要求されてないならOKだよ。
>でもそんなの少ない。

オレオレ常識を前提にして語らないでくれます?
0854nobodyさん
垢版 |
2018/09/15(土) 14:53:20.31ID:???
なんかカス知識しかない営業や広報が「ファイルなんてあり得ないDBなら問題ゼロなのに」と言ってる感じ
0855nobodyさん
垢版 |
2018/09/15(土) 14:54:04.17ID:???
すまん広報は上のオレオレ常識だな忘れてくれ
0856nobodyさん
垢版 |
2018/09/15(土) 14:59:44.14ID:???
>>853
何だよ、連投して噛み付きたいだけか。若いな…
ごめんね。
自分で作った訳じゃないから技術力は俺のせいじゃないしw
お客さんか、その場開発元に言って。
0857>>854-855
垢版 |
2018/09/15(土) 15:00:39.55ID:???
なんかすまんな営業君
0858nobodyさん
垢版 |
2018/09/15(土) 15:09:30.71ID:???
>>856
後出し、論点すり替え、に追加で人格攻撃に責任転嫁
倍満ってとこかな?
まあ大方ステマの類だろうけど
0859nobodyさん
垢版 |
2018/09/15(土) 20:11:41.06ID:???
完全論破( ー`дー´)キリッ
0860nobodyさん
垢版 |
2018/09/15(土) 20:16:27.14ID:???
リアルタイムと言うけど
一体全体どんな処理を想定しているんだ
手段として常駐化が使えてかつ常駐化が効率的であるケースはそう多くない
というかぶっちゃけかなり少ないように思われるんだけど
0861nobodyさん
垢版 |
2018/09/15(土) 20:57:38.10ID:???
どちらかといえば実装ではなく設計もしくはその上流の問題かな
オンデマンドでもなく毎分起動、しかもphp実装
ポート開けて待ち構えるでもない

問題があるとすればその所在はdeamon云々ではなく別のところ
0862nobodyさん
垢版 |
2018/09/16(日) 22:52:24.26ID:???
>>109
みやえらってYouTubeでも他のアフィリエイターの名前を利用して集客してるよね。
それで散々否定した上で、自分のサロンみたいなものに誘導してる。
一番、卑怯なタイプですよね。
0863nobodyさん
垢版 |
2018/09/17(月) 11:09:15.41ID:pOFnQ2V0
phpって
クラスのフィールドに代入する時
クラスで定義してない名前のフィールドにも代入出来る?

何でこの辺ゆるゆるなんだ
0864nobodyさん
垢版 |
2018/09/17(月) 15:16:51.62ID:4qZo9f4+
CSRF対策で質問です。フォームで別の画面にトークンを渡す場合

hoge1.php

<form action="hoge2.php">
<input type="hidden" name="token" value="生成した値">
<input type="submit" value="OK">
</form>

hoge2.php
if(!isset($_POST["token"]) || $_POST["token"] !== 値 ){エラー表示}

のようにしてますが(おおまか)
<form action="hoge1.php">
と自分自身に渡す場合エラーになってしまいます。
どうすべき、どうしてますか?
0865nobodyさん
垢版 |
2018/09/17(月) 15:29:30.63ID:???
if(!isset($_POST["token"]) || $_POST["token"] !== 値 ){エラー表示}

のところの「値」が数値型になってないか?
0866nobodyさん
垢版 |
2018/09/17(月) 17:02:21.91ID:???
ifの中身が予想に反する結果になるんだったらまずvar_dumpして原因探れよ
0867nobodyさん
垢版 |
2018/09/17(月) 21:53:00.13ID:???
>>865
文字型です。
別画面へ移動ならエラーにならないのでそこは問題ありません。

>>866
予想通りの結果です。
CSRF対策で、ページが最初に読み込まれたときの処理をどうしてますか?
0868nobodyさん
垢版 |
2018/09/17(月) 22:03:36.74ID:???
>>867
hoge1.phpとhoge2.phpの内容を
(おおまか)
などと言って省略しないで全部出せ

それか、再現可能な最小のコードを書け
0869nobodyさん
垢版 |
2018/09/17(月) 22:27:37.65ID:???
質問者の意図がわからずブチ切れ
ほぼ間違いなくCSRF対策の意味がわかってない
0870nobodyさん
垢版 |
2018/09/17(月) 22:37:31.33ID:???
配列長が500、[0]から[99]までは値が1、[100]から[499]までは値が0、という配列を作るのってどうすればいいですか?
やはり面倒でもforでまわすのが確実でわかりやすいでしょうか
0871nobodyさん
垢版 |
2018/09/17(月) 22:50:49.71ID:v4ZYnSR8
<form action="hoge2.php">
methodが抜けてる時点で、お話にならない。
0873nobodyさん
垢版 |
2018/09/17(月) 23:02:38.57ID:???
>>872
配列長100で全要素の値が1の配列Aに、配列長500で全要素の値が0の配列Bをmargeするということでしょうか
0874nobodyさん
垢版 |
2018/09/17(月) 23:06:54.07ID:???
連投すいません

array_mergeの動作を勘違いしていました
array_merge( array_fill(0, 100, 1), array_fill(100, 400, 0) )
これだけで重複させずに生成できるんですね
ありがとうございました
0875nobodyさん
垢版 |
2018/09/17(月) 23:14:38.03ID:???
>>871
質問に余分な箇所は削るという感じでしたので省略しました。
そこ必要でしたか?ちなみにPOSTです。
0876nobodyさん
垢版 |
2018/09/17(月) 23:18:31.41ID:???
>>871
methodが何であれ対策に根本的には関係ない
すでに書かれてるのにあえてまた書くがエラーが出て困ってるのではないとわかってる?
0877nobodyさん
垢版 |
2018/09/17(月) 23:20:48.74ID:???
>>871は頭悪いのか?なくても予想できるだろ
>別画面へ移動ならエラーにならない
0880nobodyさん
垢版 |
2018/09/18(火) 06:05:33.23ID:???
低レベルな喧嘩は初心者スレでやってくれる?
0881nobodyさん
垢版 |
2018/09/18(火) 19:59:18.63ID:???
問題点が見えていない2人(か1人か)のために書くと

$_POST['token']には何かしら値が入っているはず
入ってなければ不正アクセス等(で強制終了可)

ところが自分呼び出しでは最初は値が入っていない
だからエラー処理してるとそれになる
不正アクセス等の区別をどうするかということだな

エラー処理せずスルーするか
0882nobodyさん
垢版 |
2018/09/18(火) 20:26:37.82ID:UTbc9qbB
sessionが空
postが空
sessionとpostが一致しない
 => でてけ!
0883nobodyさん
垢版 |
2018/09/18(火) 21:16:13.02ID:???
>>868
(おおまか)は !is_string($_POST['token']) など質問に全く関係ないバリデなどです。
他スレではどこも関係ない部分は消せと言われますがここは全部書いた方がいいのでしょうか?
>>864は100%再現します。
0884nobodyさん
垢版 |
2018/09/18(火) 21:19:41.01ID:???
$_POST['token']以外に何も判断材料がないのかね
0885nobodyさん
垢版 |
2018/09/18(火) 21:22:12.02ID:???
method記述がないコードでhoge2.phpに投げるとなぜか$_POST['token']に値が入ります!再現します!
0886nobodyさん
垢版 |
2018/09/18(火) 21:55:49.75ID:???
>>884
判断材料とはなんでしょうか?>>881の通りです。

フラグに初回で値入れるか変えて
それ以降受け渡して使い回しすれば判定できますがそれはちょっと。
みなさんはどう判定してるのでしょうか?
0888nobodyさん
垢版 |
2018/09/19(水) 15:07:37.46ID:vkVFY1/A
そもそもスーパーグローバルとか使うなや
0889nobodyさん
垢版 |
2018/09/19(水) 19:30:11.00ID:???
SESSIONならいいんじゃね
0890nobodyさん
垢版 |
2018/09/19(水) 20:44:33.16ID:???
別に使っても構わんだろ
0891nobodyさん
垢版 |
2018/09/19(水) 22:12:38.81ID:???
filter_input覚えたからってスーパーグローバルだから使うなって理屈はおかしい
スーパーグローバルがいじれてしまっても意図したことなのでなんの不都合もない
0892nobodyさん
垢版 |
2018/09/19(水) 22:42:03.69ID:AG3DKNyH
そもそもPHP使うなや
0894nobodyさん
垢版 |
2018/09/20(木) 04:30:30.01ID:???
バリデーションが貧弱でFILTER_CALLBACK使いまくりの
汚らしいコードになるのがfilter_input
すっきりでもなんでもねえや
0895nobodyさん
垢版 |
2018/09/20(木) 07:47:03.15ID:RWskJfDy
なんでPHPのフレームワーク使わないの?
0896nobodyさん
垢版 |
2018/09/20(木) 08:22:15.22ID:???
ageてるやつはちょっと頭悪すぎてこのスレに不要なんで消えてくれるかな
0897nobodyさん
垢版 |
2018/09/20(木) 15:04:04.76ID:r6jO1NK4
スーパーグローバルなんて使ったらテスト出来ないじゃん
禄にテストしないとgoto failを誤記述してセキュリティに大穴空けたiOSみたいになるぞ
0899nobodyさん
垢版 |
2018/09/20(木) 19:08:24.84ID:???
自己呼び出しはそんな特別なことでもないのにな
皆対策してないのか
0900nobodyさん
垢版 |
2018/09/20(木) 20:58:49.72ID:???
CSRF対策とはなんぞや、から説明し出す人を待ってるのかな
0901nobodyさん
垢版 |
2018/09/20(木) 21:56:25.03ID:???
OAuth2のstateは?

リンクを踏ませて攻撃者のアカウントにログインさせられるのを防ぐらしい

図解:OAuth 2.0に潜む「5つの脆弱性」と解決法 (2/4)
http://www.atmarkit.co.jp/ait/articles/1710/24/news011_2.html

しかし、ユーザーのアカウントを盗むのではなく
騙して攻撃者のアカウントにログインさせるのって
何に使えるんだ?
0902nobodyさん
垢版 |
2018/09/20(木) 23:15:09.43ID:???
>>900
そんな説明はいらんし、上見た感じ質問者以外説明できるのここにはいないだろ
0903nobodyさん
垢版 |
2018/09/21(金) 00:22:36.65ID:???
なんぞやを引き出そうとは読めんしな。

>>901
読んでないがカウンターじゃね。
0904nobodyさん
垢版 |
2018/09/21(金) 02:45:20.98ID:???
$_POST["token"] !== 値

!==だから「$_POST["token"]」と「値」では型が違うんじゃね?くらいしかわからん
値をどうやって作ってるのか見ないと何とも言えない
0905nobodyさん
垢版 |
2018/09/21(金) 09:29:51.47ID:???
CSRFなんてXSSと並んで初歩中の初歩なんだが
0906nobodyさん
垢版 |
2018/09/21(金) 17:04:25.95ID:???
知っておくべきことやっておくべきことではあるが、初歩ではないぞ
0907nobodyさん
垢版 |
2018/09/21(金) 22:40:04.68ID:???
初歩的な知識ではあるが技術的にはかなりしんどい
単純なシステムならいいが、複ログインや古いシステムが絡まると手がつけられなくなる
0908nobodyさん
垢版 |
2018/09/21(金) 22:55:58.39ID:???
初心者お断りスレの対象じゃないということで
0909nobodyさん
垢版 |
2018/09/21(金) 23:23:26.53ID:???
>>904
いやだから同じページでなければそこは正常動作してるんだって
初期表示と不正侵入の区別
これは理論上無理だからページ構成変えるとか
例えばお問い合わせフォームなら次ページ次ページと行けるから自然と値は入る
0911nobodyさん
垢版 |
2018/09/22(土) 02:15:22.08ID:???
CakePHPとか何かフレームワーク入れりゃそれがXSS対策・CSRF対策をしてくれるからな
特段なんか対策用の仕組みを考えたりとかしてないだろ?
0912nobodyさん
垢版 |
2018/09/22(土) 05:13:29.59ID:???
新手のオラつき方だな
0913nobodyさん
垢版 |
2018/09/22(土) 06:03:21.81ID:???
CSRFとその他をごっちゃにしすぎ
まずはCSRFだけに注目して考える
それでどういう対策が有効かを考え
その対策をしたときに生まれる新たな問題がないかを検討
そうやって問題がないところまで考えることができればミジンコ卒業
0914nobodyさん
垢版 |
2018/09/22(土) 08:04:21.67ID:???
FW使えば問答無用で対策がされるわけないだろ
FWのルールに従い FWの機能を使っているうちはそうではあるが
もともと備わってるそういう機能やルールがあるのを知らず
一歩踏み外して自前でコードを書き出せば常に危険は伴う
ただしいリスクに対する対策ができればそういったケースでも安全
FWにも学習コストがかかるわけで
方言のようなFWの流儀覚えるからセキュリティなんて考慮しないではなく
標準語としてピュアPHPなコードで学習しないとFWに頼りきってると痛い目見る
0915nobodyさん
垢版 |
2018/09/22(土) 14:55:29.83ID:???
>>913
CSRF以外話には出てないが?
君がごっちゃにしてるだけだろ
0916nobodyさん
垢版 |
2018/09/22(土) 14:57:31.34ID:???
まあまずは頭の中を整理しよな
0917nobodyさん
垢版 |
2018/09/22(土) 16:06:23.64ID:???
>>914
同感
壁にぶつかってそれを対策するためだけにFW使えとは本末転倒
FW使うにしろ基本に取り組むことは正しいし後々役に立つこともある

>>916
>>880
0918nobodyさん
垢版 |
2018/09/22(土) 21:20:14.76ID:???
>>910
なにがおかしい?そのままその通りだが
0919nobodyさん
垢版 |
2018/09/22(土) 21:59:52.93ID:???
>>905
なら答えようか、初回のエラー対策。
はいどうぞ↓
0920nobodyさん
垢版 |
2018/09/22(土) 22:03:57.01ID:???
>>919
丸一日半も経ってからその程度しかレスできないの?
君、生きてる価値ないw
0922nobodyさん
垢版 |
2018/09/22(土) 23:47:56.96ID:???
>>920
丸一日?誰と勘違いしてんだ。
ようは答えられないのだな。
0923nobodyさん
垢版 |
2018/09/23(日) 00:29:13.67ID:???
ここは答えられない人がいちゃもんつけるスレです
0924nobodyさん
垢版 |
2018/09/23(日) 06:27:52.89ID:???
ぼくはまちちゃんも知らない新参が増えてきてんだな
0925nobodyさん
垢版 |
2018/09/23(日) 07:57:41.92ID:???
よそのサイトがよそのサイトにリクエスト送って
それを受理してしまうとまずい状況なのがCSRFな
別にまずくないなら仕様で片付けられる問題
0926nobodyさん
垢版 |
2018/09/23(日) 09:00:09.80ID:???
>>911
間違いなくCakePHPだと今回のような同一ページでも対策してくれる?
他に同一ページで対策するものはある?
0927nobodyさん
垢版 |
2018/09/23(日) 09:21:26.76ID:???
もう1週間近くになるのにまだできてないの
0928nobodyさん
垢版 |
2018/09/23(日) 09:47:44.59ID:???
もう1週間近くになるのにまだ答えられてないの
0929nobodyさん
垢版 |
2018/09/23(日) 10:47:41.49ID:???
そもそも質問した人と断定してることが痛い
0930nobodyさん
垢版 |
2018/09/23(日) 11:04:50.91ID:???
ほんと初心者スレでやってくんないかな
ここ過疎スレなんでねえ
下らないレスで流さないでほしいんだわ
0931nobodyさん
垢版 |
2018/09/23(日) 14:16:22.72ID:???
>>930
雑談スレでもあるから話自体はOK
892, 920のような不毛なレスが余計なだけ
0932nobodyさん
垢版 |
2018/09/23(日) 19:01:10.04ID:???
>>927
とうにできてます。
速度など別の理由で>>909に近い感じにしつつ自分自身に渡すようにしました。
元々お問い合わせフォームの流れなら全く問題なかったので。
0933nobodyさん
垢版 |
2018/09/23(日) 23:50:42.36ID:???
指摘できるならここぞとばかり反論してきたであろう>>910
結局何も言えずに終わったな
これへの返しもwだけだろ
0935nobodyさん
垢版 |
2018/09/24(月) 12:45:34.83ID:???
釣られてやんのw
0936nobodyさん
垢版 |
2018/09/26(水) 19:14:49.36ID:???
>>926
そもそも>>864だけでは再現性が無い
>>871指摘、>>875の通り、method="post"と書けば動作する
問題のコードが端折られているから何が問題なのか分からん
0937nobodyさん
垢版 |
2018/09/26(水) 19:46:53.24ID:???
初心者スレでないからといって
エラーがなにかを書かないとエスパーじゃないと答えられん
0938nobodyさん
垢版 |
2018/09/26(水) 20:47:45.23ID:???
くどい、まだ言ってるのか

>何が問題なのか分からん
読解力が問題
0939nobodyさん
垢版 |
2018/09/26(水) 21:52:45.49ID:???
Windows10でXAMPP使ってる人に
ProでなくHomeで使ってる人いる?
0940nobodyさん
垢版 |
2018/09/26(水) 21:58:12.55ID:???
>939
xamppとwindowsのhome/proは関係ないと思うけど、何を聞きたいの
結局hostsw書き換えるだけだよ
0941nobodyさん
垢版 |
2018/09/26(水) 23:15:25.06ID:???
>>940
肝心なこと書いてなくてすまん
windowsの更新で問題点や面倒さなど違いあるかなと
みんな自動更新抑制ツールなど入れてるだろうから同じことかな
0942nobodyさん
垢版 |
2018/09/26(水) 23:22:34.52ID:???
>>941
特にない
強いて言えば、仮想環境を作る時にPROの方が多少パフォーマンスが優遇されてた気がする
0943nobodyさん
垢版 |
2018/09/26(水) 23:27:14.94ID:???
ProだとHyper-Vが使える
そもそもXAMPP使わないけど
0944nobodyさん
垢版 |
2018/09/27(木) 08:42:18.63ID:???
10 homeでxampp使ってるぞ
もともと7 homeからたけどな
phpの動作確認なんてこれで十分や
0945nobodyさん
垢版 |
2018/09/27(木) 19:59:39.18ID:???
みんなありがとう、よく参考になった
0946nobodyさん
垢版 |
2018/09/27(木) 20:31:30.36ID:???
本件から逸れて申し訳ないけど, XAMPPって中途半端じゃない?
手元での動作確認ならビルトインサーバでいいしテスト用環境ならコンテナなり仮想なりで動かすし
実際にApacheで動かせるって言っても今はphp-fpmの方もかなりあるし
何れにしてもビルトインサーバよりXAMPPのほうがいい状況が分からない(MariaDBも一緒に入ってくることくらい?)
0947nobodyさん
垢版 |
2018/09/27(木) 20:49:57.19ID:???
>>936
答えてもいいがもうくどいしそういう流れでもないからヒントだけ書く

自分で実際にやってみなさい
値は乱数でもsessionでも極端に定数でも何であれ関係ない
0948nobodyさん
垢版 |
2018/09/28(金) 02:52:40.17ID:???
ビルトインでは何か挙動が違うことがない?
ディレクトリ設定というか、エイリアス処理をしてる場合とか。
本番環境ならhoge/であのスクリプトにアクセスするのにビルトインだと違うみたいな

コンテナなり仮想環境なりは実行まで手間が掛かったりしない?
仮想環境起動に6秒くらい掛かったり、配備が手間だったり。
0949nobodyさん
垢版 |
2018/09/28(金) 08:00:49.46ID:???
ビルトインこそ中途半端だわ
アプリケーション毎に仮想環境を用意するのも自分はあんま理解できんな
XAMPPで作ったやつが動かんことあっても5分で修正出来るレベルの内容だろう
0950nobodyさん
垢版 |
2018/09/28(金) 08:08:40.57ID:???
OSやバージョン無視したコード書かないのが大前提でね
初心者じゃないしマニュアル見ながらそんくらい把握できるじゃろ
0951nobodyさん
垢版 |
2018/09/28(金) 08:09:11.73ID:???
結局どうやってもサーバーと色々差異があるので、dev.example.〜にしてるわ
コピーして終わり
よぽど特殊なサイトはxampp
レス数が950を超えています。1000を超えると書き込みができなくなります。