1 名前:デフォルトの名無しさん [2022/09/20(火) 16:46:23.39 ID:Sb2Kpzh+0.net] !extend::vvvvv:1000:512 !extend::vvvvv:1000:512 ★スレ立て時 ↑ が3行以上になるようコピペ PHPに関する質問スレです 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 13 https://mevius.5ch.net/test/read.cgi/tech/1631147923/ 次スレは>>980 以降 VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
820 名前:デフォルトの名無しさん [2024/03/10(日) 12:02:36.25 ID:L6LWs13j0.net] 環境ってフレームワークや言語ごとにvmwareでわけたらいいのか、それともdockerがよいのか、 先輩方教えてください
821 名前:デフォルトの名無しさん mailto:sage [2024/03/12(火) 01:50:45.53 ID:TnUWR0Du0.net] 動作しているコードでVSCodeで赤く表示されるところを直そうと思い $row[\"id\"]} とエスケープしようとするとエラーと出ます。 赤く表示されるのはvscodeが何か勘違いしているということでしょうか? https://i.imgur.com/RdSJ8HS.png
822 名前:デフォルトの名無しさん mailto:sage [2024/03/12(火) 02:57:29.14 ID:oTlhluwZ0.net] {$row['id']}にしてみ
823 名前:デフォルトの名無しさん (ワッチョイ 2930-n0E3) mailto:sage [2024/03/12(火) 10:50:36.47 ID:meXeXcdC0.net] >821 >822のように波括弧で括るか、ダブルクォーテーションをシングルクオーテーションにしてみ
824 名前:デフォルトの名無しさん mailto:sage [2024/03/12(火) 17:55:50.35 ID:TnUWR0Du0.net] >>822-823 ぉぉ・・・すごい、うまくいきました。 確かに変数展開する必要が無いならシングルクォートで良いですよね ダブルクォートを使うことしか考えていませんでした
825 名前:デフォルトの名無しさん mailto:sage [2024/03/13(水) 01:02:40.75 ID:GqTsKoAX0.net] >824 実際の開発現場ではコーディングのルール決まってるからシングルクオーテーションやダブルクオーテーションを混ぜて使ったりしては駄目だから気を付けてねー
826 名前:デフォルトの名無しさん mailto:sage [2024/04/01(月) 23:48:30.99 ID:VotzuRBw0.net] postするデータってなんでもかんだもCSRF検証するものですか?
827 名前:デフォルトの名無しさん mailto:sage [2024/04/01(月) 23:53:33.26 ID:VotzuRBw0.net] SPA作ったんですがCSRF検証してません ポストするデータはゲームのステージデータです 仮にCSRF攻撃されたとしてもステージデータが増えるだけなんですがこういうケースでもCSRF検証はすべきでしょうか?
828 名前:デフォルトの名無しさん mailto:sage [2024/04/02(火) 00:37:08.09 ID:Y1y4I8En0.net] 本人の意図しないところでステージデータがポコポコ増えたら困るでしょ?
829 名前:デフォルトの名無しさん mailto:sage [2024/04/02(火) 09:20:13.00 ID:MCcZjXUK0.net] このケースでは検証すべき、こっちではしなくて良い、とかやってるとそのうちその振り分けでやらかしそうだから 如何なる場合でもPOSTデータは検証すべき
830 名前:デフォルトの名無しさん (ワッチョイ 5dbb-B4RS) mailto:sage [2024/04/02(火) 16:50:28.30 ID:4sW3pgf50.net] そうですか ありがとうございました
831 名前:デフォルトの名無しさん mailto:sage [2024/04/03(水) 03:58:04.60 ID:EpnIAvlv0.net] CSRFの実装しました 難しいかと思ったら割と簡単でした 案ずるより産むが易しキヨシってやつですね
832 名前:デフォルトの名無しさん mailto:sage [2024/04/03(水) 16:08:59.39 ID:sHoarvhc0.net] nonceもCSRF対策の一種?
833 名前:デフォルトの名無しさん mailto:sage [2024/04/05(金) 11:14:06.54 ID:ZTISEuLN0.net] 管理画面や、限定的にしか見れないページ(社内のみとか)はサボる時あるけどねw 理由は、そもそも管理画面自体に入られたらパスワードが漏洩しているという意味で全て終わりだから。 サボるのはpostするデータをバリデーションするか、とかサニタイズするか、とか。 性善説に基づいて作るとめちゃくちゃ楽よ( ;´Д`)
834 名前:デフォルトの名無しさん mailto:sage [2024/04/05(金) 17:24:40.42 ID:ed+JNEgF0.net] >>833 管理画面にログイン済みのユーザーにPOSTするリンクをクリックさせて管理者にしかできない操作をさせるみたいなのがCSRFだと思うんだが・・・ CookieをSame Siteにすれば防げるケースが大半だろうけど多段防御しといた方が安牌だと思う
835 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 00:42:24.17 ID:4xUg8EFL0.net] >834 vpn接続して使用してる管理画面だから、誰か入ってくる事は無いし、そもそも誰か入って来た時点で即、死を意味してるのでプログラム云々というよりネットワークのセキュリティの話になってくる、というね。 話逸れたけど、個人的にはこれくらい内々で使うサービスなら良いけど、逆に言えばそれ以外はPOSTデータの取り扱いは100%対策しないとダメだよ、って話
836 名前:デフォルトの名無しさん (ワッチョイ d576-VD0S) mailto:sage [2024/04/06(土) 02:02:19.01 ID:0VY5CEth0.net] 100%
837 名前:デフォルトの名無しさん (ワッチョイ 6b01-KWHl) mailto:sage [2024/04/06(土) 02:12:00.29 ID:Jz+yuHp90.net] >>835 VPN接続してるかどうかとか全然関係ないよ そもそもCSRFって内部ネットワークに誰か入ってくるとかじゃないから
838 名前:デフォルトの名無しさん mailto:sage [2024/04/08(月) 16:50:29.21 ID:wyxCOIbr0.net] intval(080)が0になるのはなんで?
839 名前:デフォルトの名無しさん mailto:sega [2024/04/08(月) 19:16:57.61 ID:0Leau+zw0.net] >>838 不正な8進数だからだろ
840 名前:デフォルトの名無しさん mailto:sage [2024/04/10(水) 11:28:55.93 ID:NX4cvx9u0.net] Closure::bindやbindToがnullを返すのはどんな場合ですか? 公式ページには"失敗するとnullを返す"としか説明がなく 具体的な失敗パターンが知りたいです
841 名前:デフォルトの名無しさん (ワッチョイ bf5f-/8Es) mailto:sage [2024/04/14(日) 23:11:55.65 ID:zqSEJi8N0.net] >>840 基本的にバグのときしか無いよ 見れない関数見てるとかそもそも関数じゃないとか
842 名前:844 mailto:sage [2024/04/15(月) 20:58:30.82 ID:ykbkL8b10.net] >>841 ありがとうございます
843 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 01:54:25.90 ID:J00dMuyV0.net] PHPってなんでこんなに速いんですか? 他のインタプリタ言語よりかなり速いですよね
844 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 04:36:49.17 ID:j7JGuKK50.net] 利用者が多いと高速化モジュールを作ってくれる人がそのうち出て来る でもphpよりperlの方が速いって言う人もいる
845 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 10:35:03.69 ID:6qmOkfsb0.net] 今やpythonのほうが高速だから残念ながらphpのアドバンテージは下がってしまった
846 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 11:14:04.07 ID:kYFjszay0.net] fastAPIってどのくらい速いんかね?
847 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 11:23:09.48 ID:MMZJeoHC0.net] メンテしやすい方が楽で良い
848 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 20:06:50.70 ID:uAswjotn0.net] Laravelとかも最近のopcache使ったときやたら速くて感心したな
849 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 23:44:05.47 ID:dnnaoba60.net] いくらphpが速くてもpythonはcかc++並になってしまったからもう追いつけない
850 名前: mailto:sage [2024/04/17(水) 00:07:31.24 ID:I8L23udN0.net] 追いつけないかどうかはやろうとする処理次第 Eコマースで商品一覧をDBから取得し画面に出力するとなれば 処理の大部分はDBの処理時間
851 名前:デフォルトの名無しさん mailto:sage [2024/04/17(水) 01:28:51.06 ID:c72vfF8y0.net] 誰もDBの話はしとらんが?
852 名前:デフォルトの名無しさん mailto:sage [2024/04/17(水) 01:34:48.91 ID:ze0TvR6C0.net] >850 そりゃそうだろw今はそんな話はしてないし、自分の土俵に持っていく為に話題のすり替えになってるぞ
853 名前:デフォルトの名無しさん (ワッチョイ 7f3a-/8Es) mailto:sage [2024/04/17(水) 07:51:37.15 ID:xZLw0gTi0.net] なでしこ3はPythonより6.5倍速い
854 名前:デフォルトの名無しさん mailto:sage [2024/04/17(水) 09:34:48.22 ID:CzOcQm8R0.net] PythonよりPHPやRubyのほうが速い ざっくり3〜5倍 さらにPHPやRubyよりJavaScriptのほうが速い それもざっくり3〜5倍 PerlはPythonと似たり寄ったり PythonだけJITがないから置いてきぼり 今年のQ4に出る3.13で導入予定らしいけど最適化に時間がかかるから今のレベルに追いつけるのは5年くらい先 Pythonで性能を出したければシェルスクリプトと同じようにできるだけPython内でループを回さずC/C++で書かれたライブラリに一括で処理を委譲する Webアプリだとなかなかそうもいかないけど
855 名前:デフォルトの名無しさん mailto:sage [2024/04/17(水) 11:15:26.47 ID:hNUrcL2F0.net] フルスタックとしてPHP8.2は速いよね バックエンドだと言語による差は無いか
856 名前: 警備員[Lv.1][新芽] (ワッチョイ df94-R43V) mailto:sage [2024/05/01(水) 22:35:49.91 ID:Jo6lQIiP0.net] php8でJITが導入されていてそれを利用することで現状だと単純な計算速度ではphpの方がpythonより速いと思う ただpythonもJIT導入予定と聞いている
857 名前:デフォルトの名無しさん (ワッチョイ bf5f-b946) mailto:sage [2024/05/03(金) 19:58:28.18 ID:+USmG/sP0.net] node.jsってそんなに速いの? 知らなかった
858 名前:デフォルトの名無しさん (ワッチョイ 277b-z+LQ) mailto:sage [2024/05/03(金) 20:16:52.06 ID:+XAyZCIw0.net] >>857 Rustと比較対象にされるくらいは速いよ https://deepu.tech/concurrency-in-modern-languages-final/ というかね、PHP/Python/Rubyが論外に遅すぎて、これらの言語使った時点で速度は度外視前提だから、 これらについては速度比較すらまともにされて無いでしょ
859 名前:デフォルトの名無しさん (ワッチョイ 277b-z+LQ) mailto:sage [2024/05/03(金) 20:57:10.70 ID:+XAyZCIw0.net] こっちの方がよかったかも? https://www.techempower.com/benchmarks/#hw=ph&test=composite§ion=data-r22
860 名前:デフォルトの名無しさん (ワッチョイ 7f63-Ufki) mailto:sage [2024/05/03(金) 20:59:44.77 ID:9ebiuCIb0.net] この人はどんな利益を得ているんだろう
861 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 00:40:36.66 ID:TbdOZmgm0.net] 個人でPHPとJS(ブラウザ)とPythonの速度比較したら JS, PHP, Pythonの順で早かった JSはGoogleのエンジニアがV8組んでるだけあってインタプリタの中じゃ最速だな
862 名前:デフォルトの名無しさん (ワッチョイ a744-u6uN) mailto:sage [2024/05/04(土) 09:25:16.85 ID:hhjXOeVD0.net] ゆうてサーバ側でjs使うのはawait promise地獄になりがちで見た目がね
863 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 11:46:29.84 ID:7p9CFEdI0.net] >>862 いやasyncは見た目も地獄にはならんやろ お前大幅に勘違いして無いか?
864 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 12:25:25.54 ID:qT6RngEw0.net] でもあと数年でC = python > js >>>> phpになる
865 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 14:20:07.47 ID:0cPYdG0t0.net] 数年も経ったら、全く新しい別の何かになってる
866 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 14:54:41.55 ID:ur5HC8pk0.net] 昔から「PHPは遅くて使い物にならなくなる:と言われてたが 結局シェア見ると落ちないしなぁ PHP5時代と比べてPHP8の早いこと
867 名前:デフォルトの名無しさん (ワッチョイ a744-u6uN) mailto:sage [2024/05/04(土) 21:20:04.52 ID:hhjXOeVD0.net] >>863 jsとphpで同じ動作の同期的なコードを書いてみ async不要で同期でかける方がキレイなのは当然やろ そらあんま複雑な処理が無けりゃ変わらんやろけど
868 名前:デフォルトの名無しさん (ワッチョイ 437b-GrxP) mailto:sage [2024/05/05(日) 00:06:00.25 ID:VpuIuth60.net] >>867 いやawaitが付いてるだけで同じだぞ JSは全部の関数にクロージャ付きだから変数も同様にアクセスできる点がphpとは違う まあここはphpのスレなのでもういいが、気になるなら以下見てみ > async function sequentialStart() { > console.log("==SEQUENTIAL START=="); > > // 1. これは即時実行される > const slow = await resolveAfter2Seconds(); > console.log(slow); // 2. これは 1. の 2 秒後に実行される > > const fast = await resolveAfter1Second(); > console.log(fast); // 3. これは 1. の 3 秒後に実行される > } > https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/async_function
869 名前:デフォルトの名無しさん mailto:sage [2024/05/05(日) 00:22:56.43 ID:VpuIuth60.net] と思ったが、もしかしてJSって子関数はnew Promiseしないと駄目な感じか? 俺はてっきりC#のと同じと思ってたから勘違いしてたかも? まあこの辺はこちらで確認する。 ちなみにcallback地獄はJSの連中が馬鹿だらけだから正当化してるだけで、 実はちゃんと抽象化して組めばcallback地獄にはならない。 そしてサポートの関係もあり、俺はasync/await使ってきて無いから勘違いしてるかもしれん。 さらに言うとPromiseもゴミだと思ってるよ。あれは不要な仕様だ。JSの連中はこれも正当化してるが。 というわけで、JSも色々ゴミだが、全体見るならphpの方がゴミだと思うぜ。
870 名前:デフォルトの名無しさん mailto:sage [2024/05/08(水) 01:04:50.50 ID:Aq7zVlUM0.net] そんなPHPもpythonに比べたら10倍マシなわけで 世の中ままならないもんだよな
871 名前:デフォルトの名無しさん (ワッチョイ 6fe7-M17B) [2024/06/13(木) 08:47:33.24 ID:8kjXK8h10.net] POSIXメッセージキューをサポートしてる拡張モジュール でおすすめをおしえて
872 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 06:05:03.56 ID:jdN7cEyp0.net] ニコニコ動画のランサムウェアって、phpの最近のやつと関係あるのかな ttps://innovatopia.jp/cyber-security/cyber-security-news/31048/
873 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 09:17:52.21 ID:nM9V99Q80.net] ハイパーバイザーの管理権限まで盗られたって話だから 個々のランサムウェアがどれなのかなんて些末な問題だろうな
874 名前:デフォルトの名無しさん [2024/06/19(水) 19:07:59.04 ID:rcHRA2+h0.net] FuelPHPの代替ってどんなのがあるの?
875 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 02:13:33.44 ID:GIlSg4MN0.net] Laravel一択
876 名前:デフォルトの名無しさん (ワッチョイ cfbb-muU0) mailto:sage [2024/06/23(日) 00:56:02.55 ID:/fMztCCi0.net] なんかわけあって形態素解析ライブラリを作ろうかと思うんだけど辞書はMecabの辞書を使うとしてどうやって解析しようかな 最長一致で比較してマッチしたら抜き出すって方法を考えてるけど皆ならどう作る?
877 名前:デフォルトの名無しさん (ワッチョイ 3f4d-tL4z) mailto:sage [2024/06/23(日) 11:04:07.30 ID:BYEVr0N80.net] 作らない 断る
878 名前:デフォルトの名無しさん (ワッチョイ 7f63-uW6V) mailto:sage [2024/06/23(日) 11:07:53.98 ID:8Dr+KSC80.net] 宿題か?自分でやる方が良いぞ
879 名前:デフォルトの名無しさん mailto:sage [2024/08/31(土) 14:07:37.82 ID:o+gAgvj50.net] >>874 flight
880 名前:デフォルトの名無しさん mailto:sage [2024/09/06(金) 14:19:31.11 ID:J9Dx+vkX0.net] PHP v8.0.30で $LDC=0; $LDC=ldap_connect($ldhost) ldap_set_option($LDC,'LDAP_OPT_PROTOCOL_VERSION', 3); のldap_set_option()行でmust be of type int,string given in~のエラーが出たんだけど3がint値として読めないって言われてるのかな
881 名前:デフォルトの名無しさん mailto:sage [2024/09/06(金) 16:44:39.99 ID:QtgCCsYf0.net] 引数の、どれかだろ
882 名前:デフォルトの名無しさん mailto:sage [2024/09/06(金) 16:50:09.62 ID:xfC3DfZt0.net] LDAP_OPT_PROTOCOL_VERSIONは定数なんだからクォートで囲っちゃだめでしょ
883 名前:デフォルトの名無しさん mailto:sage [2024/09/09(月) 18:23:38.31 ID:8AzXAdmE0.net] >>882 言われた通りだったわ ありがとー
884 名前:デフォルトの名無しさん [2024/09/23(月) 08:24:39.70 ID:TOpTpz460.net] 連想配列のarray_merge全然うまくいかんやん ほんとなんなのこの言語、まじイラつく
885 名前:デフォルトの名無しさん [2024/09/23(月) 08:30:38.84 ID:TOpTpz460.net] できてるけどvar_dumpで表示されてないだけか? 要素数23ってなってるのに15しか表示されん まじでよーわからん
886 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 09:07:14.03 ID:dfCQ5A4R0.net] まず再現コード貼れよ、話はそれからだ
887 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 09:28:56.66 ID:h2Aoyerx0.net] 再現コード貼れ しか言わない奴は大抵は 十分に与えられた情報を見ても解決できない 無能隠しの時間稼ぎなんだよね
888 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 09:40:34.39 ID:dfCQ5A4R0.net] >>887 は超絶無能だとは断定出来るね 891がスーパーエスパーなら891の時点で答えを貼るべき 自分では出来ない癖に他人をやたら貶すのは超絶無能な奴の特徴 そもそも本件は、再現コードも数行で済み、それがあれば誰でも回答出来るレベルなので、 本件で「無能隠し」とか言い出す時点で、何が簡単で難しいか判断すら出来ない大馬鹿
889 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 10:16:17.79 ID:nGCd//e20.net] 十分に与えられているとは思わないけどな エスパーならできるかもしれんが、普通の人には無理
890 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 11:44:05.43 ID:kXVPwjR50.net] まあそうこうしてる間に本人は解決してるだろうよ、こんくらいなら コードなきゃ>>885 もイミフだしな
891 名前:デフォルトの名無しさん mailto:sage [2024/09/26(木) 20:00:35.39 ID:hH68uGfdp.net] >884-885 エスパーだから答えてあげる。恐らく下のうちのいずれかが原因。つまりPHPは間違えてなくて君が間違えている 1、null値が要素の中に入ってる。nullが入ってる場合は対象の要素を詰めてマージされるよ 2、配列のキーが文字列で指定されていて、配列Aと配列Bで同様の文字列キーを使用している。配列の文字列キーが同じ内容だと後列の文字列キーの配列要素で上書きされるよ。以下は例 $arr1 = ['key' => 'value1']; $arr2 = ['key' => 'value2']; $result = array_merge($arr1, $arr2); // 結果: ['key' => 'value2'] 3、配列ではない値を引数に入れてる。array_merge()に配列以外の引数を渡すと警告が発生して予期しない結果になる可能性があるよ。 1と2の合わせ技の可能性もあるな。なんにしてもドキュメント読む癖付けた方がいいぞ。
892 名前:デフォルトの名無しさん mailto:sage [2024/09/26(木) 20:33:58.69 ID:RCBNwTlp0.net] >>891 いやエスパーすべきは、 > var_dumpで > 要素数23ってなってるのに15しか表示されん の部分だと思うが。 そして俺がエスパーするなら、多分初心者用 『教材』 としてどこかの馬鹿が作った、 実用性皆無だが、PHPなりの型変換等で見た目奇妙な動作をする何かを与えられ、 動きを理解しなさい、或いはどうしてそうなるかを説明しなさい、みたいな 『練習問題』 をやらされてるのではないかと。 正直この手の 『クソ課題』 は無視でいいよ、他言語である程度組める実力があるのなら尚更。 array_mergeなんて普通に使ってる分には名前通りの直感的な仕様だし、ハマる所ではない。 PHPはクソだが、クソ糞言うのなら他言語使えばいい話であって、 PHP使うと決めた/決まっているのならクソであろうが使うしかないし、糞な所ばかり気にしてても始まらない。 そしてPHPが糞だと思うのはプログラミング言語と捉えるからであって、Web専用シェルと考えればすごく有用だと気づく。
893 名前:デフォルトの名無しさん mailto:sage [2024/09/26(木) 22:38:14.36 ID:y4Her8JE0.net] >892へ >891の私がエスパーなりの解釈させてもらうw >できてるけどvar_dumpで表示されてないだけか? >要素数23ってなってるのに15しか表示されん 「できてるけど」=array_mergeは機能してるけど、 「var_dumpで表示されてないだけか?」=var_dumpして23あった要素が15に減ってるのは表示されてないだけか? 「要素数23ってなってるのに」=あ、ごめん主語無かったねぐへへへwつまり配列を直接var_dumpでデバッグした時は要素数23ってなってるのに 「15しか表示されん」=array_merge の結果をvar_dumpすると15しか表示されん 繋げると array_mergeは機能してるけど、var_dumpして23あった要素が15に減ってるのは表示されてないだけか?あ、ごめん主語無かったねぐへへへwつまり配列を直接var_dumpでデバッグした時は要素数23ってなってるのにarray_merge の結果をvar_dumpすると15しか表示されん いずれにしても>884-885のように話し言葉と書き言葉を一緒くたにしてしまう人や、脳みそと口または手が直結してしまって伝える内容を並び替えできない人とは本気で仕事したくないw
894 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 00:37:53.28 ID:793m8l+c0.net] こんなことに数分でも時間つかうのがもったいないw
895 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 01:03:15.09 ID:xb00usC10.net] そのコメント書くのに何分かかった?
896 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 10:54:14.55 ID:+POBWt7L0.net] エスパーしてる連中がキモすぎる
897 名前:デフォルトの名無しさん (ワッチョイ dee7-rNKn) mailto:sage [2024/09/27(金) 16:27:53.83 ID:wGbKsk4o0.net] $a = ["a"=>0, "b"=>1]; $b = ["b"=>1, "c"=>2]; $c = array_merge($a,$b); var_dump($c); 俺が>>885 ならまず最初にこれを疑うかな
898 名前:デフォルトの名無しさん (ワッチョイ 6f68-2Kaa) mailto:sage [2024/10/03(木) 19:40:44.30 ID:/z7xIJX+0.net] netbeans使ってるんですが、こいつが出す警告(モジュールは20行以内にしろ、$_POST使うなとか、クラスは1ファイル1クラスにして名前を揃えろとか)には従っておくほうがいいんでしょうか? $_POSTなんて入門サイトとか入門書だと未だに主流だし、今の相場がどんなものか知りたいです
899 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 20:14:27.24 ID:+g5yChSt0.net] netbeansってのは使った事ないから分からないけど「$_POST使うな」は無茶だと思うけどね あとモジュールも20行以上になる事なんか当たり前にあるよ 実際にソース貼って、その上でどんな警告出てるかも貼った方がより正確に回答出来る気がする コードの文脈を考えた時に必要無い処理である可能性もあって警告出してくれてるかもしれんからね(知らんけど)
900 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 20:35:40.28 ID:SHWJQkyV0.net] この辺ではなかろうか 「スーパーグローバル$_POST配列に直接アクセスしないでください」
901 名前:902 mailto:sage [2024/10/03(木) 20:53:20.38 ID:/z7xIJX+0.net] >>899 >>900 実際のとこ、filterinputを使ったりモジュールは分割したりで回避できてるのですが、もしかしてこんなことやってるの俺だけ?って不安になったので
902 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 20:59:42.10 ID:tAJvCxJt0.net] >>900 netbeans使ってるけどそれだぞ ちなみに表示は、以下 ================================ スーパーグローバル$_POST配列に直接アクセスしないでください。 かわりにフィルタリング関数(例: filter_input()、is_*()関数を使用した条件など)を使用してください。 ---- ([Alt]+[Enter]キーを押すとヒントが表示されます) ================================ >>898 分からないのなら従うのが常道(=自分で自信持って不要と判断出来ないのなら従え) 入門サイトとか入門書がゴミなだけ、マジで参考にするのは全部php,netとlaravelにしろ 掲示板なんて簡単ですよ!とか言いつつgetで書き込みとか、死ねな入門サイトはいくらでもある Qiitaの方がまだだいぶマシ、あいつらは自分でやった事を書いてるだけなので > モジュールは20行以内にしろ 普通に経験があれば自分で判断出来る、出来ないのなら従え > $_POST使うな 上記の通り、filter_input使え馬鹿、と出るはず > クラスは1ファイル1クラスにして Javaの文化で、つまり慣れの問題 > 名前を揃えろとか 意味不明(必要ないのではなく、何が言いたいのか分からんので判断付かない)
903 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 08:58:20.60 ID:/JNwl4gJ0.net] >902 俺は>899だが$_POSTに関して、配列に直接アクセスしてゴニョゴニョすんなよってことね、理解した >898 ちなみにfilter_inputをバリデーションとかサニタイズで使おうとすると期待してた動作通りに行かないこともままあるから気を付けてね。例としてhtmlタグ取り除きたい時とかは正規表現使って自分で関数作った方が良かったりする。いずれにしてもphpの組み込み関数使う時は必ずphpの公式リファレンス読むようにした方が良いよ
904 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 10:07:59.19 ID:5cV2iGMA0.net] >>903 > 例としてhtmlタグ取り除きたい時とかは正規表現使って自分で関数作った方が良かったりする。 気持ちは分かるが特定のタグを除去したいときは公式DOM使った方がよいかと 単純な末端ノードならいいが、階層作られたらだいたい無理なので なおボロカス言われてるDOMだが、俺はJSでもjQuery不要派なのでさほど不満はなかった
905 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 11:52:16.55 ID:/JNwl4gJ0.net] >904 フロント側でタグを取っちゃうって認識で合ってるかな?自分が基本バックエンドの人間なのでフロント殆ど触らんのよね…w でも提案有難う
906 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 12:00:04.09 ID:b7vgemF30.net] ちゃんとしたものを作ろうとすると、本格的ブラウザ作る並に大変笑
907 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 12:14:58.84 ID:M8Xyx2No0.net] phpの話なのにフロントでタグ取り除くとかバックエンドで正規表現使ってタグ取り除くとか意味わからん フロントでやるならJSの仕事だしバックエンドのPHPなら自分でhtml組み立ててるんだから正規表現使ってhtmlタグを取り除く必要とかそもそもない
908 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 12:48:49.83 ID:5cV2iGMA0.net] >>905 htmlタグを取り除く=PHPでスクレイプ、或いは掲示板等で許可してないタグを投稿されたときに、PHPでタグを除去する場合を考えている PHPのDOMはゴミ扱いされてるが、ほぼ生JSと同じなので個人的には問題なかった 正規表現は階層/入れ子を考慮されてないので、正規表現でhtmlをパースするのは死ねるし変な物を食わされたらだいたいバグる とはいえDOM構築はそれなりに遅くなるので、スクレイプ先のhtml構造が単純かつ固定的なときは正規表現で除去するのもあり フロント側に不要タグ含めて垂れ流すのもありだが、DBやネットワークの帯域を無駄に消費するだけなので、 可能であれば上流=PHP側で除去した方がいいのは事実
909 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 13:33:27.23 ID:swUgCMz+0.net] filter_input使え って警告、PhpStormでは見たことないな 運良く推奨されるパターンでも踏んでるのかな
910 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 14:14:38.35 ID:5cV2iGMA0.net] >>909 IDE内部のリンターなので、直接関係ないのと、 あったとしても普通に切れる
911 名前:デフォルトの名無しさん (ワッチョイ 3f72-Ligk) mailto:sage [2024/10/04(金) 16:00:15.82 ID:M8Xyx2No0.net] >>908 PHPでスクレイプ時に特定のhtmlタグを取り除くってレアリティ高いな そっちはいいとしてユーザー入力に許可されてないタグがあるならエラー返した方がいいと思うが除去するにしてもstrip_tagsやHTMLPurifierみたいな出来上がったものを使った方がいいのでは? あとフロントでタグ除去するのはユーザーアクションに応じてhtmlを変更するためで不要タグを垂れ流してるわけではない
912 名前:デフォルトの名無しさん (ワッチョイ 037b-jS/a) mailto:sage [2024/10/04(金) 19:01:50.57 ID:5cV2iGMA0.net] >>911 > strip_tagsやHTMLPurifierみたいな出来上がったものを使った方がいいのでは? これらはいいね 言及出来なかったのは俺が単に知らなかったからで、タグ単位の除去にはこれらを使うべきだろう > レアリティ高いな そうでもないから上記の関数/ライブラリが整備されてるわけだ ただPHPはこの手の、あると便利だが的な関数が無駄に多く、把握しきれてなかったのは上記の通り > ユーザー入力に許可されてないタグがあるならエラー返した方がいいと思うが 相手がまともな人間の場合はそうだが、 攻撃目的で掲示板にタグを書き込んでくる場合、晒しの意味でも黙って落としてそのまま表示させるのもあり 瞬時にエラーを返してしまうと、何がどこまで駄目なのかすぐばれてしまう 何だかんだで無駄に時間をかけさせるのは地味に有効 > あとフロントでタグ除去するのはユーザーアクションに応じてhtmlを変更するためで不要タグを垂れ流してるわけではない それは俺に言わせれば、(使う可能性のあるタグなので)仕様上サーバー側では落とせない、となる サーバー側で落としておくべきなのは、どうやっても不要なタグ、具体的に言うとscriptとか、 或いは公式strip_tagsの警告に書かれてるとおり、onXXXX属性 ただstyle属性まで落とすと、タグを許可した意味が無くなってくるので、判断は難しいところ opacityとかだけは許可しない等、属性も精査する気だと、結局DOM使う事になるとは思うが…HTMLPurifierでも出来るらしい まあこの辺は要調査だな
913 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 19:47:14.07 ID:eshA0leg0.net] >907 どう言うこと?w PHPでデータベース扱ってる現場ならバックエンドにデータ飛んでくる前にタグ取り除くでしょ 俺の場合はPHPのユーザー定義関数で正規表現使ってタグ取り除く関数を作ったらhtmlのフォーム内でバリデーションとサニタイズ行なってるけど >自分でhtml組み立てるんだから 分業してる現場なのでJSはフロントの子がやってるのよ だからフロントは殆ど触らないし関数作ったらフロントの子に渡してる
914 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 19:48:47.53 ID:eshA0leg0.net] >913 × htmlのフォーム内でバリデーションとサニタイズ行なってるけど ⚪︎ htmlのフォーム内に適宜関数を挿してバリデーションとサニタイズ行なってるけど
915 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 20:30:24.85 ID:5cV2iGMA0.net] >>913 俺宛ではないが、>>907 の使い方はまあ普通、というか9割以上の局面ではそうなる > バックエンドにデータ飛んでくる前にタグ取り除く そもそもDBへのアップデータでタグを許可してない/する必要ないのがほぼ全部 例えばここ5ch、安価は最終的に<a>として表示されるが、ユーザーの投稿段階ではただのテキスト それをDB登録段階で<a>にしてしまうか、JSで<a>にするかは実装によるが、PHPでタグ除去なんてする必要がない > PHPのユーザー定義関数で正規表現使ってタグ取り除く関数を作ったら > htmlのフォーム内に適宜関数を挿してバリデーションとサニタイズ行なってる > だからフロントは殆ど触らないし関数作ったらフロントの子に渡してる もしかしてEmscriptenかWebAssenbly使ってPHPのコードをクライアントサイドで動かしてる? それはすさまじくレアだと思うのだけども
916 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 21:11:39.79 ID:eshA0leg0.net] >915 >PHPでタグ除去なんてする必要がない これは自分の言葉足らずでしたわ。謝ります ユーザーからのhtmlタグの投稿を一切許可していない現場なのよ、だからタグはDB到達前に全部サニタイズしてる >もしかしてEmscriptenかWebAssenbly使ってPHPのコードをクライアントサイドで動かしてる? いや、素のPHP(Laravelとかのフレームワーク使わず)でコード書いてて、ライブラリ含めて全てフルスクラッチで作成してる現場だよ
917 名前:デフォルトの名無しさん mailto:sage [2024/10/16(水) 16:44:48.13 ID:tW0ztwU3d.net] 先生!PHP独学したいのですが 独習PHP 第4版 山田 祥寛 (著) これでいいですか? C# Java VBA JavaScript 経験者です
918 名前:デフォルトの名無しさん mailto:sage [2024/10/16(水) 22:44:42.10 ID:XSPkOsBG0.net] >>917 php.netを頭から全部読めばそれで十分 多分SQLも必須、というかPHPは自身の変数等を保持する機構が言語にないのでどうせDBを使うことになる
919 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 00:25:58.27 ID:exPg1AY+0.net] >>918 本物のワルなのでセッション使っちゃうぜ
920 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 00:33:42.25 ID:13fsix/Td.net] >>918 先生!ぼくおじさんなので本にカキカキメモしながらじゃないと勉強できません 後出しですがSQLも基本的なところはできます 独習PHP 第4版が古すぎるとかいうのでなければよいのですが