- 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
- 596 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 11:41:46.36 ID:zJMyBjWC0.net]
- >>595
これが各行ごとに良くわからないな >データの取得時間がかかるからです 何が原因で取得時間がかかるようになるのか 実測してそんなに差異が出たってコト? >データベースを使用しないことを前提としているので DBなんか使わなきゃいいんじゃない? >度々データを取得することになる 同一データを扱うならキャッシュすればいいんじゃない? PHPでだってアホに作れば度々データ取得しに行っちゃうと思うよ >現実的でありません 面倒くささ的にも自前でDOM構築する方が非現実的だよね
- 597 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 16:08:55.26 ID:Oj3crCHea.net]
- async awaitとfetch使ってデータ取得すれば良いじゃん
- 598 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 18:49:37.74 ID:r31gUBK2M.net]
- httpリクエストとスクレイピングでデータ取得の速度を比較する場合一般的にはhttpリクエストのほうが高速です。またわたしの想定では同一データではなく毎回違うクエリでリクエストすることが予想されます。
- 599 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 18:50:18.43 ID:r31gUBK2M.net]
- >>597
具体的にはどのような手順でそれらを使用しますか?
- 600 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 22:21:10.72 ID:LrQ+wv81M.net]
- 単純で簡単なjavascriptでレンダリングされているならいけたかもしれませんがフレームワークを使われていたら解析が困難ですね。やはり無理か
- 601 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 22:21:52.68 ID:LrQ+wv81M.net]
- そしてnodejsが使えないのでヘッドレスブラウザも無理と。
- 602 名前:デフォルトの名無しさん (アウアウアー Sa8b-Seme) mailto:sage [2023/06/13(火) 23:39:40.44 ID:Oj3crCHea.net]
- >>599
取得したいサイトのURLとその出力htmlの欲しい部分教えて
- 603 名前:デフォルトの名無しさん (テテンテンテン MMeb-mVGR) [2023/06/14(水) 02:57:47.74 ID:sJAdEXJGM.net]
- >>602
取得したいサイトは複数ありますがECナビになります。 https://ecnavi.jp/search/?word=%E6%88%91%E3%81%8C%E5%A4%A9%E4%B8%8B htmlの欲しい部分は表示される案件の部分です。 しかしフレームワークがhtmlをレンダリングされている可能性があり、おそらく解析は困難です。 ajaxからデータを取得するサイトもありましたがcros制限がかかっているため不可です。 ヘッドレスブラウザは環境が構築できないので選択肢には含みません。 わたしはhttpリクエストで動的なサイトのデータを取得するのは無理と判断しました。
- 604 名前:デフォルトの名無しさん (ワッチョイ 8bbb-hEWj) mailto:sage [2023/06/14(水) 04:20:42.50 ID:Jx0dk3g+0.net]
- 普通に利用規約違反じゃねぇかw
- 605 名前:デフォルトの名無しさん (アウアウウー Sadd-APG/) mailto:sage [2023/06/14(水) 05:35:16.83 ID:VFw5jfyla.net]
- >>582
WSL2, Ubuntu 20/22, VSCode, Windows Terminal, Docker Desktop VSCodeの拡張機能・Remote Development に、 3つの拡張機能・Remote Container/WSL/SSH が含まれている 日本人が作った、多言語バージョンマネージャーのanyenv。 同様のツールに、asdf もある Renv, crenv, denv, erlenv, exenv goenv, hsenv, jenv, jlenv, luaenv nodenv, phpenv, plenv, pyenv, rbenv sbtenv, scalaenv, swiftenv, tfenv 漏れは、Ruby on Rails をやっているけど、メモリは32〜64GB ほしい
- 606 名前:デフォルトの名無しさん (アウアウアー Sa8b-Seme) mailto:sage [2023/06/14(水) 06:54:43.13 ID:4pmBicBja.net]
- >>603
案件って「ポイントアップチャレンジ」の部分?
- 607 名前:デフォルトの名無しさん (テテンテンテン MMeb-+QT+) mailto:sage [2023/06/14(水) 07:38:40.54 ID:dOe183t+M.net]
- >>606
案件の部分はPCで閲覧していると表示されません。ゲームアプリ案件の場合はユーザーエージェントがモバイルOSである必要があります。
- 608 名前:デフォルトの名無しさん (ワッチョイ d1a7-Cr01) mailto:sage [2023/06/15(木) 15:12:03.05 ID:pNWnTG3Z0.net]
- たかだかバックエンドのWeb開発するだけなのに
メモリ32GBとか要求される異常な時代w
- 609 名前:デフォルトの名無しさん (スッップ Sd33-wNjT) mailto:sage [2023/06/15(木) 17:34:34.40 ID:oe0OZOrwd.net]
- WSL2で2GB
Chromeで2GB その他諸々で10GB
- 610 名前:デフォルトの名無しさん (ワッチョイ 8b63-2rqm) mailto:sage [2023/06/15(木) 17:37:28.87 ID:KtHE2I/00.net]
- 脳みそのメモリーが書き込み不可のエラーになってますし
- 611 名前:デフォルトの名無しさん (ワッチョイ d1a7-Cr01) mailto:sage [2023/06/15(木) 17:51:10.48 ID:pNWnTG3Z0.net]
- 各々アプリが肥大化しすぎてしまって…
minimal構成のも用意してくれればいいんだけどね XPとか32bitOSが主流だった時代は4GBで十分足りただろうに まあ今メモリ32GBで1万円ぐらいだから文句いうことでもないんだけど
- 612 名前:デフォルトの名無しさん (ワッチョイ 135c-2rqm) mailto:sage [2023/06/15(木) 18:17:52.09 ID:jjmsD4tb0.net]
- 32Gも要求されるって何開発してんの?
- 613 名前:デフォルトの名無しさん (ワッチョイ 8bbb-hEWj) mailto:sage [2023/06/15(木) 18:28:28.13 ID:W3FATu2P0.net]
- 616 じゃないけど、docker とブラウザ立ち上げてたら 16 GBをちょいちょい超えるから 32 GBに増設した
快適だぞ
- 614 名前:デフォルトの名無しさん (ワッチョイ 135c-2rqm) mailto:sage [2023/06/15(木) 20:46:52.21 ID:jjmsD4tb0.net]
- 快適な環境作りに必要って訳ね
- 615 名前:610 (アウアウウー Sadd-APG/) mailto:sage [2023/06/16(金) 00:02:25.90 ID:0+O5qEwBa.net]
- Windows/Linux(WSL2), ブラウザ、VSCode, Docker
さらに、Ruby on Rails では、複数データベースで並列テストもできるし
- 616 名前:デフォルトの名無しさん (ワッチョイ 8b63-2rqm) mailto:sage [2023/06/16(金) 00:06:26.73 ID:siRuxcGs0.net]
- Ruby厨は呼んでない、巣に帰れ
- 617 名前:デフォルトの名無しさん (ワッチョイ 8b10-JQtP) [2023/06/16(金) 13:32:48.84 ID:Y1bNR4pi0.net]
- TwitterOAuthに詳しい人がいたら教えてください。
DeveloperPortalでアプリ作成済み、 composer require abraham/twitteroauth でインストール済みとします。 $connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret); $content = $connection->get("account/verify_credentials"); ではTwitterアカウントの情報が取得できるのですが、 (※app_keyの部分は省いています) Twitter API v2に対応するために $connection->setApiVersion('2'); を追加すると取得できません。$contentがNULLになります。 これってTwitterアプリが v2に対応していないからでしょうか?
- 618 名前:デフォルトの名無しさん (ワッチョイ 8bbb-hEWj) mailto:sage [2023/06/16(金) 17:45:17.56 ID:TyNt7O690.net]
- >>617
API使うならドキュメントぐらい見ろよ エンドポイントがないだけだろ
- 619 名前:デフォルトの名無しさん (テテンテンテン MM96-DFMs) mailto:sage [2023/06/17(土) 09:44:22.27 ID:C4ey1Sw3M.net]
- addactionがfunctions.phpでは動作するのにカスタムテンプレートでは動作しない理由はなんですか?
- 620 名前:デフォルトの名無しさん (ワッチョイ 5e10-l8k0) mailto:sage [2023/06/18(日) 18:12:02.78 ID:h4u0ciKA0.net]
- >>618
$content = $connection->get("account/verify_credentials"); ここの指定に問題があるということが掴めました。 ご指摘ありがとうございました。
- 621 名前:デフォルトの名無しさん (ワッチョイ 23a9-gN4b) mailto:sage [2023/06/25(日) 18:20:15.50 ID:gM/PAKCH0.net]
- php初めてみたもののメンターとか先輩とかいないぼっちなんで無償版のchatGPT使うと
pdoを使ったDBの接続を含めたコードとか、SQLインジェクションの対応とか一瞬で出してくれてありがたい限り 有償版のGPT4ならコード生成は何かGPT3.5と変わるの?
- 622 名前:デフォルトの名無しさん (ワッチョイ 4b63-F8yx) mailto:sage [2023/06/25(日) 18:24:11.05 ID:PAO3/SeJ0.net]
- 寝ている間に君の仕事やってくれる
- 623 名前:デフォルトの名無しさん (ワッチョイ 23a9-gN4b) mailto:sage [2023/06/25(日) 18:40:58.90 ID:gM/PAKCH0.net]
- それが本当なら指示のプロンプトがすごいことになりそう
実際のところ、ファイルを分けたCRUDなんて1回のプロンプトで生成とかできるんだろうか どこまでならできるとか、ここはさすがにできないとか情報があるサイトがあれば教えていただければ嬉しいです
- 624 名前:デフォルトの名無しさん (ワッチョイ 955f-WUpn) mailto:sage [2023/06/25(日) 19:17:12.98 ID:XgY7oRFd0.net]
- 次のコードをクラスみたいに書いて?
→コンストラクタとメソッドに書き換えてくれる ありがてぇ、関数群も提示するとそれに合わせてチューニングしてくれる
- 625 名前:デフォルトの名無しさん (ワッチョイ 4bf8-cPIU) mailto:sage [2023/06/25(日) 19:21:55.03 ID:i7rMe9Iv0.net]
- 知ってるコードで書いて
これをphpに移植したいというだけでほぼできる
- 626 名前:デフォルトの名無しさん (ワッチョイ 4bbb-wJdI) mailto:sage [2023/06/25(日) 22:54:48.63 ID:lataiSU20.net]
- 君は今非常に危険なところにいます
phpのpdoは非常に厄介なんですが、それを理解してません 「SQLインジェクションの対応とか一瞬で」と言ってるけど、それは本当? たとえば、 $pdo = new PDO('mysql:dbname=test;host=localhost'); なんて提示されて採用した場合、脆弱な箇所ができる可能性があるの理解してる? ChatGPTの提示するコードは自分の理解できている範囲以外は危険だと思って検証しないと危ないよ
- 627 名前:デフォルトの名無しさん (ワッチョイ 23a9-gN4b) mailto:sage [2023/06/26(月) 02:27:13.68 ID:0+rAUtlj0.net]
- >>626
$pdo = new PDO('mysql:dbname=test;host=localhost'); クエリではなく、この時点で見た感じとしては正直わからんです chatGPTは $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_username, $db_password); binValueなども使ったものを提示していて、実際に動作しているのね。 pdoの引数に各変数があるぐらいで何かしらセキュリティに問題があるとは思わなかったんだけど、この例ではまずい点はあるの?
- 628 名前:デフォルトの名無しさん (ワッチョイ 4bbb-wJdI) mailto:sage [2023/06/26(月) 05:54:16.49 ID:xls0AJJa0.net]
- PDO を使用する際、アプリケーションとしての文字コードを指定できる箇所は new PDO() 内のみです
ここで正しくアプリケーションの文字列を指定していない場合、アプリケーションとDBの間で文字コードに差異が出る可能性が高く、それ起因の脆弱性が発生する可能性があります よく知られた例としては 5c 問題があり、例えば上記と "SET NAMES sjis"、動的プレースホルダのセットで、プレースホルダをすり抜ける脆弱性が発生します
- 629 名前:デフォルトの名無しさん (ワッチョイ 23a9-gN4b) mailto:sage [2023/06/26(月) 06:12:00.13 ID:0+rAUtlj0.net]
- >>628
ありがとう、そういうことがあるのね。 自分がchatGPTに依頼した10回に1回ぐらいの割合で $dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4"; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ]; try { $pdo = new PDO($dsn, $user, $password, $options); があったので、これからはcharsetを明示するか意識しておきます。 知らないことを伝えられて動いたら全面的に信頼してしまうのも良く無いので、完全では無いことを意識しておきます
- 630 名前:デフォルトの名無しさん (ワッチョイ b502-1El8) mailto:sage [2023/06/26(月) 10:06:12.93 ID:kBW+dErx0.net]
- どうしてそんなにChatGPTにこだわるんだ
- 631 名前:デフォルトの名無しさん (ワッチョイ 1be7-F8yx) mailto:sage [2023/06/26(月) 14:10:10.33 ID:RpzhtkjJ0.net]
- 流行りだからね
- 632 名前:デフォルトの名無しさん (ワッチョイ 955f-WUpn) mailto:sage [2023/06/27(火) 01:40:25.23 ID:BUGmgo620.net]
- RHELの件でこのスレ的に問題になりそうなことはありますか?
https://www.redhat.com/en/blog/furthering-evolution-centos-stream?sc_cid=701f2000000tyBjAAI > CentOS Stream will now be the sole repository for public RHEL-related source code releases.
- 633 名前:デフォルトの名無しさん (ワッチョイ 8da7-0Dh1) mailto:sage [2023/06/29(木) 01:16:30.55 ID:IOgTB2mJ0.net]
- コミュニティ無視したことやって分裂すると
その系譜はもう長らくは信用されないので CentOSが死んだ時点で大方はUbuntuに移ったのでは このスレ的に必要なのは長期サポートだしね
- 634 名前:デフォルトの名無しさん (ワッチョイ d3db-fXPZ) mailto:sage [2023/07/01(土) 23:56:45.93 ID:qg8w7WVg0.net]
- PHPを始めたばかりのものなのですが
- 635 名前:デフォルトの名無しさん (ワッチョイ d3db-fXPZ) mailto:sage [2023/07/01(土) 23:58:14.54 ID:qg8w7WVg0.net]
- 間違えて書ききる前に投稿してしまいました
PHPが無料サービスの範疇で動かせれるレンタルサーバーってあるのでしょうか? HTMLは過去に使った事があったレベルでHTML自体久しぶりなので今どういうサービスがよいものかもわかっていません
- 636 名前:デフォルトの名無しさん (ワッチョイ 06f8-1X2b) mailto:sage [2023/07/02(日) 19:31:28.47 ID:gdoAp3Jw0.net]
- むしろ殆どphp動くだろ
rubyならともかく
- 637 名前:デフォルトの名無しさん (ワッチョイ 4f5f-+5O0) mailto:sage [2023/07/02(日) 20:33:28.61 ID:QFPeETi70.net]
- レンタルサーバーは基本的にMySQLとPHP動かせるようにしてるから
WordPress入れられるように
- 638 名前:デフォルトの名無しさん (ブーイモ MM8e-D/Rs) [2023/07/05(水) 12:23:56.04 ID:BSe/7cdeM.net]
- >>628
15年近く脆弱性関連のバグが放置されてるのは凄いね しかもそのライブラリが未だに広く使われてとかどう考えても頭おかしい
- 639 名前:デフォルトの名無しさん (ワッチョイ 86bb-p0MK) mailto:sage [2023/07/05(水) 17:36:49.07 ID:FFK7TFKZ0.net]
- >>638
調べりゃわかるけど、バグじゃない charsetの設定が効かなかったバージョンがあるからそれはバグとみなしても良いかもしれないけど、PHP5.3.7以下とか随分前の話 文字列の連結使って SQL 文作っちゃダメとかと同じ知ってないとダメなセキュリティ知識だよ
- 640 名前:デフォルトの名無しさん (ブーイモ MM5b-D/Rs) [2023/07/05(水) 18:51:56.66 ID:VuPZbF0BM.net]
- >>639
デフォルトでなんちゃってprepared statementが使われる時点でセキュリティ的にはバグなんだよね PDO特有の問題を一般的なセキュリティ知識と同列に語ったらダメだよ 文字列連結だって適切にエスケープ出来れば問題はないわけだけどデフォルトでそんな脆弱な処理をするライブラリがあったら頭おかしいと思うでしょ
- 641 名前:デフォルトの名無しさん (ワッチョイ 86bb-p0MK) mailto:sage [2023/07/05(水) 19:39:41.44 ID:FFK7TFKZ0.net]
- >>640
なんか、無茶苦茶だねぇ まず、 > 15年近く脆弱性関連のバグが放置されてるのは凄いね これが全く認識違いだったってことは理解できた? 現在のphpではcharsetをPDOコンストラクタ内のDSNで設定してあげることで、アプリとDBの間の文字コードにずれが発生することがなくなり、意図した通りの動作をさせることができる > デフォルトでなんちゃってprepared statementが使われる時点でセキュリティ的にはバグなんだよね 全然話が変わってるけど、なんでこんな話が出てきたの? 動的プレースホルダをデフォルトとして採用することをバグと呼ぶ人は見たこと無いけど、たしかにセキュリティ屋から見ると好ましくはない ただ、ネットワークレイテンシを考えると非常に合理的なので、それほど悪い選択ではないと思う 顕在化した脆弱性があるわけでもないし現在においてはアプリとDBをutf-8で統一することも容易なので、正しくアプリケーションの性格に合わせて選択すればよいだけの話だよ
- 642 名前:デフォルトの名無しさん (ワッチョイ 0ee7-hRAP) mailto:sage [2023/07/06(木) 11:41:34.33 ID:us421T2z0.net]
- 面倒な人が絡んできてるね・・・
仕様バグだろうとバグはバグよ
- 643 名前:デフォルトの名無しさん (ワッチョイ 0663-hRAP) mailto:sage [2023/07/06(木) 11:46:42.56 ID:5cWvOTk60.net]
- 脆弱性は、設計上のバグ
知ってないとダメというのは、バグ回避のテクニック
- 644 名前:デフォルトの名無しさん (ワッチョイ 86bb-p0MK) mailto:sage [2023/07/06(木) 12:43:03.10 ID:KqeQuq1k0.net]
- >>642-643
charsetの設定に未だバグが有るって言いたいの? それともデフォルトが動的プレースホルダになったことをバグと言いたいの? 何を脆弱性/バグって言いたいのかわからん
- 645 名前:デフォルトの名無しさん (スップ Sd22-+5O0) mailto:sage [2023/07/06(木) 18:00:41.52 ID:hqQEAg+3d.net]
- 個人的にはメール送信関係でヘッダー7ビット文字に変えるのがなんかもやもやする
昔のソフトだと7ビットじゃないとダメってのはわかるんだけどUTF-8でもいいじゃねーかってなる
- 646 名前:デフォルトの名無しさん (ワッチョイ 7f7b-gGH9) mailto:sage [2023/07/06(木) 22:27:39.58 ID:CUYn8xPf0.net]
- >>642
勘違いしているのはお前で、一般的にはそれはバグとは言わない。 同様の件なら踏切や横断歩道もバグになる。勿論高架や歩道橋にするべきではあるが。 昨年の観光バス横転事故(フェード現象らしい)もバグではなくブレーキの仕様だ。仕様バグでもない。 ホームドアもそれなりに普及して、 あらゆる物がある程度デタラメな操作(=ホームの端を歩く)しても安全になっては来ているが、 素人がどんなデタラメをやっても安全とはなってないし、ならない。 プログラミングに関しては今後とも「正しい操作をした場合に正しく動く」でしかないだろうよ。 不親切なのはその通りだし、改善はしていくだろうけども。 >>645 公式見る限りPHPからは気にする必要なさそうだが違うのか? なおutf-8も8bit使ってるから駄目だと思うぞ。 今更8bitが通らない環境なんてないし、有ったとしてもそんなところにメール出してないのも事実だが。 IPv6みたいに誰かが音頭取って更新を促さない限り無理だが、今のところ聞いたこと無いね。
- 647 名前:デフォルトの名無しさん (ワッチョイ 0663-hRAP) mailto:sage [2023/07/06(木) 22:53:42.84 ID:5cWvOTk60.net]
- 素人が脆弱性を突いてくる説
- 648 名前:デフォルトの名無しさん (アウアウウー Sabb-JtsX) mailto:sage [2023/07/07(金) 02:29:15.80 ID:u6t7w3p4a.net]
- Java は、ログ機能にセキュリティーホールがあって、
Edge から、パスワードを抜かれますと報告が来た セキュリティー更新せず、ほったらかしのサイトが山ほどある
- 649 名前:デフォルトの名無しさん (ワッチョイ 86bb-p0MK) mailto:sage [2023/07/07(金) 07:55:50.16 ID:84NzU0uw0.net]
- >>643
>>647 結局何を脆弱性って言ってんだよ… 素人が脆弱性って言いたかっただけってこと?
- 650 名前:デフォルトの名無しさん (ワッチョイ 86bb-p0MK) mailto:sage [2023/07/07(金) 23:44:08.79 ID:84NzU0uw0.net]
- >>645
なんかちょっと勘違いしてる気がする 昔のブックマークから拾い上げてみたんで読んでみて https://blog.tmtms.net/entry/2014/12/06/postfix-8bit
- 651 名前:デフォルトの名無しさん (ワッチョイ ce8b-/jfo) [2023/07/17(月) 13:54:48.52 ID:pZjB1XDE0.net]
- テスト
- 652 名前:デフォルトの名無しさん (ワッチョイ 9b5f-5LlG) [2023/07/18(火) 14:26:46.55 ID:2j+5uZca0.net]
- ネットで見つけた掲示板のサンプルがクソでした
更新ボタン押すと同じ書き込みが繰り返されてしまうのです どうすれば解決しますか? ほんとプログラミングはクソ記事多くて困りますね え?クソはおまえだ? ごもっとも
- 653 名前:デフォルトの名無しさん (アウアウウー Sab5-5LlG) mailto:sage [2023/07/19(水) 05:05:41.80 ID:mXhymdyPa.net]
- jQuery なら、
<button id="btn_1"> <span class="show-when-enabled">送信</span> <span class="show-when-disabled">送信中...</span> </button> <button id="btn_2">送信ボタンをenable にする</button> <style> button .show-when-enabled { display: initial; } button[disabled] .show-when-enabled { display: none; } button .show-when-disabled { display: none; } button[disabled] .show-when-disabled { display: initial; } </style> <scr@ipt> $( function ( ) { $( '#btn_1' ).on( 'click', function ( event ) { $( this ).prop( 'disabled', true ); // disable にする } ); $( '#btn_2' ).on( 'click', function ( event ) { $( '#btn_1' ).prop( 'disabled', false ); // enable にする } ); } ); </scr@ipt>
- 654 名前:デフォルトの名無しさん (オッペケ Sr39-4jI1) mailto:sage [2023/07/19(水) 08:14:40.70 ID:sz/H8H6wr.net]
- Ruby病(その割に技術は中の下レベル)の人は
jquery推しでもあるのか Railsとvueやreactを同時に使う例は幾つかあるな phpだとlaravelはvueとの相性抜群だがreactは今一つ CakePHPだとどっちも簡単ではないか CakePHPはJquery使った例が多いなあ Pythonのdjangoはvueもreactも実装例豊富 Javaのtomcatはvueは何とかなるがreactだとやることも限られてる?というレポートがある Goは何と相性いいかな
- 655 名前:デフォルトの名無しさん (ワッチョイ 9b5f-5LlG) mailto:sage [2023/07/20(木) 13:07:15.80 ID:qnO4Vavr0.net]
- printとechoの違いがわかりません
ぐぐっても説明が下手な文章ばかりで理解できません 理数系の人間は文章の書き方も少しは勉強したほうがいいのではないでしょうか? え?勉強しろはおまえだ? ごもっとも
- 656 名前:デフォルトの名無しさん (ワッチョイ b6e7-/jfo) [2023/07/20(木) 15:39:21.26 ID:x9stnx4l0.net]
- >>655
PHPは公式マニュアルが信じられないくらい丁寧でわかりやすくまとまっているから なにをさておいても公式マニュアルを読め わかるわからないを言い出すのはかならずマニュアルを読んだあとにしろ
- 657 名前:デフォルトの名無しさん (ワッチョイ 7349-9/0y) mailto:sage [2023/07/20(木) 16:19:17.66 ID:hZ7hjedN0.net]
- もちろん、お手伝いします!
PHPにおける`print`と`echo`の違いについて要約して説明しますね。 - `print`: `print`は関数ではなく、言語構造です。値を出力するために使用されます。 値を出力した後、1を返します。また、引数を一つしか受け付けないという制約があります。例:`print "Hello, world!";` - `echo`: `echo`は言語構造または関数として使用できます。値を出力するためにも使用されますが、`print`とは異なり、返り値を持ちません。 カンマを使って複数の引数を受け取ることができます。例:`echo "Hello", " ", "world!";` どちらも基本的には同じように動作しますが、`echo`がやや効率的で多くの引数を出力する場合にわずかに速い場合があります。 理解に役立てば幸いです!もし他に質問があればどうぞお知らせください。
- 658 名前:デフォルトの名無しさん (ワッチョイ 30a9-hELD) mailto:sage [2023/07/20(木) 16:56:18.77 ID:gjufsyfM0.net]
- 横だがGPT-4に小学生にでもわかるよう聞いてみた
--- それらの違いを小学生にも分かるように説明すると、 「printとechoは友達と話す方法だと考えてみてください。 print君は一度に一つのことしか話せないけど、その後に自分がちゃんと話したかどうか(つまり1という値)を教えてくれます。 一方、echo君は一度にたくさんのことを話すことができますが、自分がちゃんと話したかどうかは教えてくれません。 だから、それぞれの友達(つまり命令)は自分が何をしたいかによって選ぶといいです。」
- 659 名前:printとechoの違い (ワッチョイ 9b5f-5LlG) mailto:sage [2023/07/20(木) 18:33:40.90 ID:qnO4Vavr0.net]
- なるほどよくわかりました
サイト記事書く人は専門用語ばかり使って、初心者につたわらない文章しか書けないので ここの解説はとてもわかりやすいです ググって検索に出てくる邪魔な解説は消えてなくなれですね え?おまえが消えてなくなれって? ごもっとも
- 660 名前:デフォルトの名無しさん (スップ Sd94-5Rmv) mailto:sage [2023/07/20(木) 21:59:07.70 ID:WRqu6H4qd.net]
- printが1を返してくれるとしても、それが役立つ場面がわからない
どんな場面で役立つのだろうか
- 661 名前:デフォルトの名無しさん (ワッチョイ e75f-Nw73) mailto:sage [2023/07/20(木) 23:11:22.17 ID:zS5YoEfg0.net]
- >>655
アホみたいな文章書いてる暇あったら公式リファレンス読んどけ、多分一番しっかり書かれてるから
- 662 名前:デフォルトの名無しさん (ワッチョイ 9b5f-5LlG) [2023/07/21(金) 23:03:50.96 ID:hNucA2BH0.net]
- >>661
読んでも全然わからない 公式が一番わかりにくい
- 663 名前:デフォルトの名無しさん (ワッチョイ 6cac-tCaK) mailto:sage [2023/07/21(金) 23:58:06.25 ID:GYeyeRXL0.net]
- 専門のことしてるのに専門用語を理解しようとしないのはどうかと思うぞ
噛み砕いて教えるのは、相手が専門外のお客様(生徒含む)のときくらいだろ
- 664 名前:デフォルトの名無しさん (ワッチョイ a77b-XNrL) [2023/07/22(土) 00:30:59.57 ID:HIe68VRv0.net]
- >>662
みんなが分かりやすいと言ってる公式を読んでも分からないのは、お前の知能の問題。 現時点でPHPerの中でも最底辺確定だし、向いてないから止めとけ。
- 665 名前:デフォルトの名無しさん (アウアウウー Sa2b-/4N/) mailto:sage [2023/07/22(土) 01:45:53.25 ID:fDI/VGosa.net]
- print は言語構造だとか、こんな訳の分からない言語をやっても無駄。
特に初心者は、情弱ビジネスに引っ掛かった。 素人に、PHPを勧める香具師が一杯いる YouTube で有名な雑食系エンジニア・KENTA は、 PHP, Scala をオワコン認定して、 初心者のキャリアパスは、Rails → Go だけと言ってる ガーシーのサロンで使っていたMastodon は、 PHPから、Ruby on Rails 6 に変わった 米国年収でもRubyは、Go/Rust/Elixir の3大言語を超えた。 PHP, Dart は生活保護レベル Ruby, Elixir : 9.3 万ドル Go : 8.9 Rust : 8.7 多くの言語 : 6.5〜7 PHP : 5 Dart : 4.4 100人の言う事よりも、KENTAの言う事の方が、間違いなく正しい! なぜかというと、100人よりも研究しているから
- 666 名前:デフォルトの名無しさん (ワッチョイ e7a7-rRCM) mailto:sage [2023/07/22(土) 02:11:03.31 ID:tE4RMivO0.net]
- Rubyistが金持ちだかなんだか知らないけど
こんなとこでキチガイみたいなレス続けてるお前の年収なんかたかがしれてんだから 人の心配なんてしないで自分の心配しとけな
- 667 名前:デフォルトの名無しさん (ワッチョイ bf5f-onGn) [2023/07/22(土) 15:06:33.58 ID:UxG3EoFv0.net]
- >>662
本当に「読んだ」のか? お前はただ「見た」「眺めた」だけじゃあないのか? わからないならわかるまで読め。 わからない単語はすべて検索しろ。 100回読め 中学高校で嫌になるほど勉強の仕方を勉強してきてるんだから、そのくらいはやれ
- 668 名前:デフォルトの名無しさん (スップ Sd8a-VFKZ) mailto:sage [2023/08/03(木) 13:33:47.77 ID:7OoRnNP6d.net]
- 格納するDBのカラムの型がintの場合に、POSTデータの初期化処理は
次のどちらが良いのでしょうか? $value = isset($_POST['value']) ? $_POST['value'] : '';//空文字 $value = isset($_POST['value']) ? $_POST['value'] : 0;//整数0 前者は、ポストデータは文字列なので空文字で初期化しています 後者は、DBのカラムがintなので整数0で初期化しています どちらもその後にデータチェック及びサニタイズはします
- 669 名前:デフォルトの名無しさん (スップ Sd8a-VFKZ) mailto:sage [2023/08/03(木) 13:55:32.28 ID:7OoRnNP6d.net]
- 補足です
$_POST['value']には、整数が入力されることを想定しています よろしくお願いします
- 670 名前:デフォルトの名無しさん (ワッチョイ 0ba7-IjPS) mailto:sage [2023/08/03(木) 15:48:42.48 ID:zTGCMZ+m0.net]
- 格納するDBのカラムにデフォルト値がセットされていればデフォルト値に合わせるか何も入れない
セットされていないなら入力がmustってことなので とりあえず格納が可能になるよう0にしてしまうとかいう発想がおかしいので入力しろとエラーを返すべき
- 671 名前:デフォルトの名無しさん (ワッチョイ 0ba7-IjPS) mailto:sage [2023/08/03(木) 15:50:08.52 ID:zTGCMZ+m0.net]
- not null制約かどうかは書いてなかったね
まあそのカラムの性質によるとしか
- 672 名前:デフォルトの名無しさん (スップ Sd8a-VFKZ) mailto:sage [2023/08/03(木) 16:23:03.22 ID:7OoRnNP6d.net]
- >>670
ありがとうございます >>デフォルト値に合わせるか「何も入れない」 >>格納が可能になるよう0にしてしまうとかいう発想がおかしいので「入力しろとエラーを返すべき」 この2点を考慮すると、空文字で初期化するのが正しいようですね POSTデータが空なのだから、空文字で初期化して、データチェックで 空の場合をエラーとして弾くのが正解な気がしてきました
- 673 名前:デフォルトの名無しさん (スップ Sd8a-kJnY) mailto:sage [2023/08/03(木) 19:00:43.99 ID:boco8q6Md.net]
- POSTの必須チェックはemptyで十分(暴論)
- 674 名前:デフォルトの名無しさん (スップ Sd8a-VFKZ) mailto:sage [2023/08/03(木) 20:11:24.13 ID:7OoRnNP6d.net]
- $value = $_POST['value'];
これだと値がセットされていない場合にNoticeエラーが出るんですよね それで、emptyやissetが使わていたように思います もっとも最近では、filter_inputが推奨されているようで すでにfilter_inputが主流になっているのでしょうか
- 675 名前:デフォルトの名無しさん (ワッチョイ be63-1j9t) mailto:sage [2023/08/03(木) 20:29:00.58 ID:K+C7K/360.net]
- どうやるかは色々流儀があると思うけれど
何故そうするのかを知っておくことは大事だと思う
- 676 名前:デフォルトの名無しさん (ワッチョイ 2a01-58Wo) mailto:sage [2023/08/03(木) 21:42:47.27 ID:NRjs0yDQ0.net]
- フォームの項目が動的に変化するタイプとかで
そもそもクライアントから送信されてない項目を参照しようとしてるんじゃないの?
- 677 名前:デフォルトの名無しさん [2023/08/08(火) 08:38:58.74 ID:GtqdAqIbF]
- タ゛サヰ夕マ県民は住民の生命と財産を破壞する世界最悪の殺人テ囗組織公明党に推薦され、カによる―方的な現状変更によってタ゛サイ夕マまで
数珠つなき゛て゛鉄道の3Ο倍以上もの莫大な温室効果ガスまき散らすクソ航空機を倍増させて気侯変動させて海水温上昇させて、かつてない量の 水蒸気を日本列島に供給させて越谷や川越など、あちこち水没させられながら強盗殺人の首魁齋藤鉄夫と共謀して私利私欲を追求し続ける大野 元裕人殺し知事を落選させてタ゛サイタマの汚名を払拭しよう!熊谷どころかタ゛サヰタマ全域を灼熱地獄にして熱中症で殺害,クソ航空騷音に よって知的産業根絶やしどころか,ストレスやらで救急搬送されたり.耐えられす゛引っ越しを余儀なくさせられた住民まで発生させて、憲法 1з条25条29条と公然と無視して住民の私権を根底から奪い取ることで私腹を肥やし続ける知事を続けさせて殺されないて゛済むと思うなよ 庁舍が住民に破壊される民主主義國フランスに対して日本は絢爛豪華な庁舎で冷房カ゛ンカ゛ン,クソの役にも立たないと゛ころか住民の権利を強奪 して私腹を肥やすこと以外に何ひとつ考えることのないクソ公務員を放置することこそか゛,お前らの生活と国家の存亡の危機だと理解しよう!
創価学會員は.何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を 池田センセーか゛口をきけて容認するとか本気で思ってるとしたら侮辱にもほと゛があるそ゛! hTΤΡs://i、imgur,com/hnli1ga.jpeg
- 678 名前:デフォルトの名無しさん (ワッチョイ aba7-SCbl) mailto:sage [2023/08/07(月) 17:05:23.27 ID:g4YHb1dg0.net]
- >すでにfilter_inputが主流になっているのでしょうか
PHP5.3あたりではまだissetが当たり前だったけど PHP5.4あたりからfilter_inputの記事が多くなった気がしたな PHP7になってからはnull合体演算子(??)もissetの代替であげられるけど filter_inputがよく使われてる気がする 高精度ではないけどそれでいいなら用意されてるフィルタである程度バリデーションできるし なんならコールバックのユーザ定義関数でもフィルタリングできるし あまりごちゃごちゃ書かないですむメリットもある
- 679 名前:デフォルトの名無しさん (ワッチョイ df10-D1BR) mailto:sage [2023/08/08(火) 16:45:09.01 ID:P3IKMInR0.net]
- でも、AIに質問するとissetの例を出してくるよ
- 680 名前:デフォルトの名無しさん (スップ Sdd7-a4kh) mailto:sage [2023/08/08(火) 21:06:35.11 ID:InM7lKihd.net]
- >>678
ありがとうございます。とても参考になりました 公式サイトをしっかり読めばいいのだけど、個々の文法の解説がメインで 流れのあるチュートリアルとしては弱いんだよね もちろん公式サイトの充実ぶりにはとても感謝しています PHP8に準拠したお手本となるようなPHP本が出るといいなぁ
- 681 名前:デフォルトの名無しさん (ワッチョイ 915f-OkRc) mailto:sage [2023/08/10(木) 16:13:43.00 ID:+eZjCzx+0.net]
- それぞれのメリットを教えてくれ
AI: filter_inputとissetを使用したバリデーションには、それぞれ異なる目的とメリットがあります。以下にそれぞれの関数の特徴とメリットを挙げてみます。 1. filter_input: 目的: filter_inputは、入力データ(例:POSTやGETからのデータ)をバリデーションおよびサニタイズするための関数です。 メリット: サニタイズ: さまざまなフィルタを使って、データをクリーンにすることができます。例えば、文字列としてのメールアドレスを取得することができます。 バリデーション: 予期しないデータや危険なデータを防ぐための具体的なルールを適用することができます。 セキュリティ: filter_inputは、セキュリティ上の理由から直接的なスーパーグローバル変数($_POSTや$_GET)へのアクセスを回避します。 2. isset: 目的: issetは、変数がセットされているかどうかをチェックするための関数です。変数がセットされており、NULLでない場合にTRUEを返します。 メリット: シンプル: コードの意図が明確で、変数が存在するかどうかを簡単にチェックできます。 パフォーマンス: issetは非常に高速で、ほとんどの場面でのオーバーヘッドがありません。 NULLチェック: 変数がNULLかどうかも同時にチェックします。 結論: issetは変数の存在をチェックする場面で主に使用され、filter_inputは変数の値を検証・サニタイズする場面で使用されます。 セキュリティや入力のバリデーションが関わる場面では、filter_inputの使用が推奨されます。一方、単純に変数の存在を確認したい場合や、パフォーマンスが重要な場面では、issetの使用が適しています。 状況やニーズに応じて、適切な関数や方法を選択することが大切です。
- 682 名前:デフォルトの名無しさん (ワッチョイ 9aa9-i0IF) mailto:sage [2023/08/18(金) 05:27:16.73 ID:+mar7LqR0.net]
- チェックボックスでレコードに関するフラグをmariadbに登録する時は
php内ではtrue, falseと、1,0で条件分岐どっちがいい? mariadbはtrue, falseのboolで保存できないので、結局取り出すときは1と0の文字列になるけど どういう管理というかルールにしたら良いか迷ってます
- 683 名前:デフォルトの名無しさん (ワッチョイ 76e7-eQmn) mailto:sage [2023/08/18(金) 11:22:44.15 ID:MbvK7wD/0.net]
- >>682
0か1の数値にすると良いでしょう。 文字列はやめましょう。
- 684 名前:デフォルトの名無しさん (スップ Sdba-ORuG) mailto:sage [2023/08/18(金) 19:35:38.53 ID:2Xzv42cCd.net]
- >>682
0か1の整数型だね INSERTをする前に値をintvalする SELECTをした後に値をintvalする PHPの内部ではint型として扱い、厳密な比較をする ただしPOSTされた時点では文字列なので、バリデーションは文字列として扱う もっともチェックボックスだとチェックがないと、たぶん値が何も来ない
- 685 名前:デフォルトの名無しさん (ワッチョイ 93a9-6Nwt) mailto:sage [2023/08/19(土) 20:10:29.17 ID:28+RhaxH0.net]
- >>683-684
ありがとうございます。 初学者なのでtrueとかfalseとか憧れてそれで作っていましたが、db周りの出し入れをしているうちに キャストに統一性が無い感じがモヤモヤしていました。 フラグのチェックボックスは filter_input(INPUT_POST, 'hoge', FILTER_VALIDATE_BOOLEAN) を使っていました。 チェックボックスにチェックが無い場合はデータベースに入れる前に三項演算子で isset($_SESSION['hoge']) ? 1 : 0; isset($_SESSION['hoge']) ? 1 : 0; フラグのありなしをつけてinsert, updateしていますが、確かに整数に揃えたほうが良かったですね。
- 686 名前:デフォルトの名無しさん (ワッチョイ 317b-vj3y) [2023/08/19(土) 23:28:02.55 ID:2LFpxJcr0.net]
- >>685
おい、一応言っておくが、>>683-684は間違ってるぞ。 PHP内はtrue/falseで作るのが正しい。 つかちょっと考えれば分かるだろ。 お前はDBを変更した際に、そのDBがtrue/false使えたら全部書き直すつもりなのか? DB依存事項はDB側に押し込むのが基本。mariaはPDOには無いようだが、 理想的にはそういったDBアクセスラッパに押し込んでしまって、 PHP側はDB依存無し、つまりtrue/falseで書いてしまうのが正しい。 それでラッパ内で自動的にtrueを"1"、falseを"0"に変換させる。 逆に読み出しの場合、"1"をtrueに、"0"をfalseにするわけだが、 型あり言語の場合はこの辺、文字列の"1~"0"とは型で区別出来るが、 PHPの場合に実際どうするのかはよく知らん。 が、ともかく、DBアクセスラッパ内で逆変換してしまうのが正しい。 というかそうしないとDB変えただけで全部書き換えが必要になるだろ。 てなことは今のお前でも考えれば分かるはず。お前らは考えなさすぎ。 つっても俺の意見はプログラミングの一般論であって、 PHPなりのなんか変なノウハウがあって数字の方がいいのかどうかは分からん。
- 687 名前:デフォルトの名無しさん (ブーイモ MM4b-Wgo7) [2023/08/20(日) 04:33:24.24 ID:fG8Y/bhcM.net]
- ワイ独学自称中級者
一連のやりとりを見て自信を無くして震える (((( ;゚Д゚)))ガクガクブルブル
- 688 名前:デフォルトの名無しさん (ワッチョイ 5b5f-hPrW) mailto:sage [2023/08/20(日) 12:55:06.37 ID:4PrSYObq0.net]
- >>686
>そのDBがtrue/false使えたら全部書き直すつもりなのか? そういうDB依存、言語依存をしないために、そもそもDBに1,0をかきこむんじゃ true/falseなんて多言語で一番共通の無い概念じゃけえの
- 689 名前:デフォルトの名無しさん (ワッチョイ 317b-vj3y) mailto:sage [2023/08/20(日) 13:35:51.35 ID:Vn08TQPe0.net]
- >>688
> 言語依存 > 多言語で いや今はPHPでどうするかの話だろ。 そしてmariaは知らんが686の通りなら文字型しかないDBなんだろ。 そういうDBが有ってもおかしくない。DBではないがJSのlocalStorageとかそうだし。
- 690 名前:デフォルトの名無しさん (ワッチョイ 317b-vj3y) mailto:sage [2023/08/20(日) 13:59:49.50 ID:Vn08TQPe0.net]
- >>682
てか調べてみたらmariaにbooleanあるんですが? https://mariadb.com/kb/ja/data-types/
- 691 名前:デフォルトの名無しさん (ワッチョイ 1301-/Wom) mailto:sage [2023/08/20(日) 14:18:19.62 ID:HzS5SUnX0.net]
- Synonym for TINYINT(1)と書いてあるだろう
- 692 名前:デフォルトの名無しさん (スップ Sdb3-qQSq) mailto:sage [2023/08/20(日) 15:08:55.86 ID:6IMFV5dJd.net]
- フラグとして変数を定義するとき、ブーリアン型を用いることがほとんどである。
ブーリアン型は「真」(フラグが立っている)および「偽」(フラグが立っていない)のみを値として受けつけ、 都合が良いからである。 https://ja.wikipedia.org/wiki/フラグ_(コンピュータ) 「1|0」でなく「true|false」を使うことに有用性はありますか? https://teratail.com/questions/307035
- 693 名前:デフォルトの名無しさん (ワッチョイ 2b63-/QKx) mailto:sage [2023/08/20(日) 15:10:00.51 ID:GxzweHHZ0.net]
- TINYINTには、0と1以外の値も入る
- 694 名前:デフォルトの名無しさん (スップ Sdf3-CvT1) mailto:sage [2023/08/20(日) 16:20:48.91 ID:ssGBE3vxd.net]
- MySQLのtinyint(1)って1ビットってことだから0か1になるんじゃ?
登録するまでに型変換だのなんだのするの個人的には嫌だからtrue falseで良いと思うけど
- 695 名前:686 (ワッチョイ 93a9-6Nwt) mailto:sage [2023/08/20(日) 17:51:30.99 ID:fCXPEraA0.net]
- すいません、間違えていました
>mariadbはtrue, falseのboolで保存できないので、結局取り出すときは 誤:1と0の文字列になるけど 正:結局取り出すときは1と0の数値になるけど です。tinyint(1)なので数字の1と0です。 最悪なところ書き間違えていました・・・ phpしか使わないので チェックボックスのvalue=1をintvalにしてdbに入れる 確認画面とかで評価するときは===1で厳密に評価するのが初学者向きなのかな? mariadbに入れるまではtrue,falseがdbに入れられないことに気付かなかったです。
- 696 名前:デフォルトの名無しさん (ワッチョイ 1301-/Wom) mailto:sage [2023/08/20(日) 18:02:22.04 ID:HzS5SUnX0.net]
- >>694
tinyintは1バイト tinyint(10)としても1バイト >>695 DB側では数値の1と0でもドライバや設定によっては PHP側では文字列の”1”と”0”で取得されたりするので気をつけて PHP特有の落とし穴
|

|