X



PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】 [無断転載禁止]©2ch.net

レス数が900を超えています。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の改造
0818nobodyさん
垢版 |
2018/09/05(水) 18:02:18.87ID:???
え?なんだって?
0819nobodyさん
垢版 |
2018/09/05(水) 18:07:56.14ID:???
DevOpsってさあ…
昔やってた開発と運用のいっしょくたに戻しただけだよね。
理想は違うんだろうが現実は(笑)
10年後はまた分業とか言ってんだぜ、どうせ…
0820nobodyさん
垢版 |
2018/09/05(水) 18:13:01.00ID:???
10年後には地球がなくなってるよ
絶対だよ
0822nobodyさん
垢版 |
2018/09/05(水) 22:49:42.31ID:???
なんかPHPって覚えるスキルRubyやPythonよりおおくね?
0824nobodyさん
垢版 |
2018/09/06(木) 07:11:57.58ID:???
バッドノウハウと関数がね
0825nobodyさん
垢版 |
2018/09/06(木) 12:33:18.54ID:???
PHPはWebProg言語としては登場時期は早かったが
いかんせん類友なのか開発陣が無能なもんでいつもどこかの後追い
PHPerだからといって覚えることが特に多いわけではなく
他言語にはあるがPHPにはないから作ろう
そんな車輪の再発明まがいのことを続けてきた結果であって
一言で言えばご苦労なだけなのである
0826nobodyさん
垢版 |
2018/09/06(木) 13:44:51.41ID:???
別に先陣切って何かを実装してくれとは思わないからいいよ。
それに、他はできるのにPHPはできないってのも良くないだろw
0827nobodyさん
垢版 |
2018/09/06(木) 15:12:11.31ID:???
俺はもうDockerが無いと生きていけない体にされてしまった

必要なプログラムが全て入ったイメージが作れるので
実際に本番環境にアップロードしたら動かなかったけど、
ローカルの開発環境では動いたんだよ!
みたいな事が起こるリスクを下げる

各開発者の開発環境の構築も簡単
docker-composeのファイルとか配ればいい
0828nobodyさん
垢版 |
2018/09/06(木) 15:57:43.54ID:???
そんでもってテスト用のまま間違って本番稼働させるんだろう?
知ってるよ
0829nobodyさん
垢版 |
2018/09/06(木) 17:52:35.05ID:???
仮想化は楽だろうしDockerはGoogleのハードな使い方にも耐えてるほど
耐久性も信頼性も高いのだろうけど
やっぱり専用サーバで環境作るのが俺は好きなんだよ!
0830nobodyさん
垢版 |
2018/09/06(木) 18:26:07.22ID:???
手段と目的を間違えて無ければ何でもいいよ。
Dockerはもちろん良い物だけど必須ではない。
0831nobodyさん
垢版 |
2018/09/07(金) 16:08:31.23ID:???
PHPで動画編集できるライブラリ無いかな?画像編集できるGDみたいなさ

既存動画のカットと動画連結、字幕が付けれて、それをmp4に出力で来て、
youtubeでアップロードできれば最高なんだけど

コマンドラインで別のプログラム実行するとかじゃなくてね
まぁ無理かな…
0832nobodyさん
垢版 |
2018/09/07(金) 16:58:28.42ID:???
PHPの場合, ライブラリでやるとなるとピュアPHPになるが動画編集はそれじゃあ重過ぎるだろう
他の言語だとネイティブに近いレイヤのライブラリをラップしてバインディングすると思うけどPHPには実行時にネイティブ拡張をロードする機能がない
0833nobodyさん
垢版 |
2018/09/07(金) 17:15:32.51ID:YySmCjy1
http://phpopencv.org
これ使って何とかならんの?
0834nobodyさん
垢版 |
2018/09/07(金) 19:18:12.39ID:???
文章が臭いなと思ったが

>既存動画のカットと動画連結、字幕が付けれて、それをmp4に出力で来て、

なんかやることが量産クソyoutubeアフィっぽい
0835nobodyさん
垢版 |
2018/09/07(金) 20:20:39.44ID:???
動画編集をブラウザでやるってのが無理ありすぎ
重い 遅い 面倒なのは容易に想像でき
あきらかにプラットフォームに向いてない
0836nobodyさん
垢版 |
2018/09/07(金) 21:02:34.48ID:???
そのぐらいのオンラインサービスなら既にありそうだけどね。
0837nobodyさん
垢版 |
2018/09/07(金) 21:24:58.65ID:???
WebGL使えば何でも出来る
動画をテクスチャにすればどんなエフェクトも実現出来る

ブラウザ上ではプレビューだけで
エンコードは強力なサーバーのCPUとGPUをぶん回す

PHPとかもう関係ねえか
0839nobodyさん
垢版 |
2018/09/08(土) 00:15:30.05ID:???
gif動画くらいならまだわからんでもないがmp4ってご職業をたずねたくなる
0840nobodyさん
垢版 |
2018/09/08(土) 00:59:50.88ID:???
>エンコードは強力なサーバーのCPUとGPUをぶん回す
サービス化するとなると結構きついよそれ
JSで各クライアントにやらせたほういいね
そうすると専用ソフトでやったほうがいいってとこに帰結する
0841nobodyさん
垢版 |
2018/09/08(土) 01:05:23.39ID:???
jsで動画エンコードってさ、こうなりそう

利用者=負荷がかかるとわかってる
→鯖管理者=coinhiveみたいなminerを仕込んでおく
→鯖管理者=広告と採掘で両得、サーバ負荷なし
0842nobodyさん
垢版 |
2018/09/08(土) 07:30:59.70ID:???
ffmpegをEmscriptenで動かすような方式なら
オーバーヘッドでかいしシングルスレッドだが動く

SharedArrayBuffer使えば
マルチスレッド出来るらしいがSpetre、Meltdownのせいでしばらくは復活しない
0843nobodyさん
垢版 |
2018/09/11(火) 17:07:25.22ID:???
CRON起動すると多重で起動されたりするのって当たり前?
0844nobodyさん
垢版 |
2018/09/11(火) 17:31:28.03ID:???
いいえ
処理時間が長すぎて、前回の処理と重複してんじゃないですかね?
0846nobodyさん
垢版 |
2018/09/15(土) 11:31:27.49ID:???
* * * * * /path/to/unko.php
のういうの見ると、daemonにしてよとか思う。
0848nobodyさん
垢版 |
2018/09/15(土) 11:57:01.30ID:???
そんなクソなコードなの…?
まあでも、起動時に一応ulimitしたり落ちたら再起動とかフォローはするけど。
0849nobodyさん
垢版 |
2018/09/15(土) 13:00:39.79ID:AkqW0gAt
Drupalはメモリの内容を使い回すphp-pmではメモリリークして安定動作しないらしい
php-pmにも一定数のリクエストを処理すると再起動する機能があるが、リークの程度が大きいとそれでも問題になる

Drupalのコードはメモリの内容をリクエスト後に破棄する前提で
あちこちでキャッシュしまくってんのかな?
0850nobodyさん
垢版 |
2018/09/15(土) 14:19:19.63ID:???
>>846
なんで?落ちたら再起動させるようにするとかよっぽど手間じゃないか
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
なにがおかしい?そのままその通りだが
レス数が900を超えています。1000を超えると表示できなくなるよ。

ニューススポーツなんでも実況