!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
【PHP】下らねぇ質問はここに書き込みやがれ 14
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f97-W3aP)
2022/09/20(火) 16:46:23.39ID:Sb2Kpzh+0605デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 22:21:10.72ID:LrQ+wv81M 単純で簡単なjavascriptでレンダリングされているならいけたかもしれませんがフレームワークを使われていたら解析が困難ですね。やはり無理か
606デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 22:21:52.68ID:LrQ+wv81M そしてnodejsが使えないのでヘッドレスブラウザも無理と。
607デフォルトの名無しさん (アウアウアー Sa8b-Seme)
2023/06/13(火) 23:39:40.44ID:Oj3crCHea >>604
取得したいサイトのURLとその出力htmlの欲しい部分教えて
取得したいサイトのURLとその出力htmlの欲しい部分教えて
608デフォルトの名無しさん (テテンテンテン MMeb-mVGR)
2023/06/14(水) 02:57:47.74ID:sJAdEXJGM >>607
取得したいサイトは複数ありますがECナビになります。
https://ecnavi.jp/search/?word=%E6%88%91%E3%81%8C%E5%A4%A9%E4%B8%8B
htmlの欲しい部分は表示される案件の部分です。
しかしフレームワークがhtmlをレンダリングされている可能性があり、おそらく解析は困難です。
ajaxからデータを取得するサイトもありましたがcros制限がかかっているため不可です。
ヘッドレスブラウザは環境が構築できないので選択肢には含みません。
わたしはhttpリクエストで動的なサイトのデータを取得するのは無理と判断しました。
取得したいサイトは複数ありますがECナビになります。
https://ecnavi.jp/search/?word=%E6%88%91%E3%81%8C%E5%A4%A9%E4%B8%8B
htmlの欲しい部分は表示される案件の部分です。
しかしフレームワークがhtmlをレンダリングされている可能性があり、おそらく解析は困難です。
ajaxからデータを取得するサイトもありましたがcros制限がかかっているため不可です。
ヘッドレスブラウザは環境が構築できないので選択肢には含みません。
わたしはhttpリクエストで動的なサイトのデータを取得するのは無理と判断しました。
609デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/14(水) 04:20:42.50ID:Jx0dk3g+0 普通に利用規約違反じゃねぇかw
610デフォルトの名無しさん (アウアウウー Sadd-APG/)
2023/06/14(水) 05:35:16.83ID:VFw5jfyla >>587
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 ほしい
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 ほしい
611デフォルトの名無しさん (アウアウアー Sa8b-Seme)
2023/06/14(水) 06:54:43.13ID:4pmBicBja >>608
案件って「ポイントアップチャレンジ」の部分?
案件って「ポイントアップチャレンジ」の部分?
612デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/14(水) 07:38:40.54ID:dOe183t+M >>611
案件の部分はPCで閲覧していると表示されません。ゲームアプリ案件の場合はユーザーエージェントがモバイルOSである必要があります。
案件の部分はPCで閲覧していると表示されません。ゲームアプリ案件の場合はユーザーエージェントがモバイルOSである必要があります。
613デフォルトの名無しさん (ワッチョイ d1a7-Cr01)
2023/06/15(木) 15:12:03.05ID:pNWnTG3Z0 たかだかバックエンドのWeb開発するだけなのに
メモリ32GBとか要求される異常な時代w
メモリ32GBとか要求される異常な時代w
614デフォルトの名無しさん (スッップ Sd33-wNjT)
2023/06/15(木) 17:34:34.40ID:oe0OZOrwd WSL2で2GB
Chromeで2GB
その他諸々で10GB
Chromeで2GB
その他諸々で10GB
615デフォルトの名無しさん (ワッチョイ 8b63-2rqm)
2023/06/15(木) 17:37:28.87ID:KtHE2I/00 脳みそのメモリーが書き込み不可のエラーになってますし
616デフォルトの名無しさん (ワッチョイ d1a7-Cr01)
2023/06/15(木) 17:51:10.48ID:pNWnTG3Z0 各々アプリが肥大化しすぎてしまって…
minimal構成のも用意してくれればいいんだけどね
XPとか32bitOSが主流だった時代は4GBで十分足りただろうに
まあ今メモリ32GBで1万円ぐらいだから文句いうことでもないんだけど
minimal構成のも用意してくれればいいんだけどね
XPとか32bitOSが主流だった時代は4GBで十分足りただろうに
まあ今メモリ32GBで1万円ぐらいだから文句いうことでもないんだけど
617デフォルトの名無しさん (ワッチョイ 135c-2rqm)
2023/06/15(木) 18:17:52.09ID:jjmsD4tb0 32Gも要求されるって何開発してんの?
618デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/15(木) 18:28:28.13ID:W3FATu2P0 616 じゃないけど、docker とブラウザ立ち上げてたら 16 GBをちょいちょい超えるから 32 GBに増設した
快適だぞ
快適だぞ
619デフォルトの名無しさん (ワッチョイ 135c-2rqm)
2023/06/15(木) 20:46:52.21ID:jjmsD4tb0 快適な環境作りに必要って訳ね
620610 (アウアウウー Sadd-APG/)
2023/06/16(金) 00:02:25.90ID:0+O5qEwBa Windows/Linux(WSL2), ブラウザ、VSCode, Docker
さらに、Ruby on Rails では、複数データベースで並列テストもできるし
さらに、Ruby on Rails では、複数データベースで並列テストもできるし
621デフォルトの名無しさん (ワッチョイ 8b63-2rqm)
2023/06/16(金) 00:06:26.73ID:siRuxcGs0 Ruby厨は呼んでない、巣に帰れ
622デフォルトの名無しさん (ワッチョイ 8b10-JQtP)
2023/06/16(金) 13:32:48.84ID:Y1bNR4pi0 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に対応していないからでしょうか?
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に対応していないからでしょうか?
623デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/16(金) 17:45:17.56ID:TyNt7O690624デフォルトの名無しさん (テテンテンテン MM96-DFMs)
2023/06/17(土) 09:44:22.27ID:C4ey1Sw3M addactionがfunctions.phpでは動作するのにカスタムテンプレートでは動作しない理由はなんですか?
625デフォルトの名無しさん (ワッチョイ 5e10-l8k0)
2023/06/18(日) 18:12:02.78ID:h4u0ciKA0 >>623
$content = $connection->get("account/verify_credentials");
ここの指定に問題があるということが掴めました。
ご指摘ありがとうございました。
$content = $connection->get("account/verify_credentials");
ここの指定に問題があるということが掴めました。
ご指摘ありがとうございました。
626デフォルトの名無しさん (ワッチョイ 23a9-gN4b)
2023/06/25(日) 18:20:15.50ID:gM/PAKCH0 php初めてみたもののメンターとか先輩とかいないぼっちなんで無償版のchatGPT使うと
pdoを使ったDBの接続を含めたコードとか、SQLインジェクションの対応とか一瞬で出してくれてありがたい限り
有償版のGPT4ならコード生成は何かGPT3.5と変わるの?
pdoを使ったDBの接続を含めたコードとか、SQLインジェクションの対応とか一瞬で出してくれてありがたい限り
有償版のGPT4ならコード生成は何かGPT3.5と変わるの?
627デフォルトの名無しさん (ワッチョイ 4b63-F8yx)
2023/06/25(日) 18:24:11.05ID:PAO3/SeJ0 寝ている間に君の仕事やってくれる
628デフォルトの名無しさん (ワッチョイ 23a9-gN4b)
2023/06/25(日) 18:40:58.90ID:gM/PAKCH0 それが本当なら指示のプロンプトがすごいことになりそう
実際のところ、ファイルを分けたCRUDなんて1回のプロンプトで生成とかできるんだろうか
どこまでならできるとか、ここはさすがにできないとか情報があるサイトがあれば教えていただければ嬉しいです
実際のところ、ファイルを分けたCRUDなんて1回のプロンプトで生成とかできるんだろうか
どこまでならできるとか、ここはさすがにできないとか情報があるサイトがあれば教えていただければ嬉しいです
629デフォルトの名無しさん (ワッチョイ 955f-WUpn)
2023/06/25(日) 19:17:12.98ID:XgY7oRFd0 次のコードをクラスみたいに書いて?
→コンストラクタとメソッドに書き換えてくれる
ありがてぇ、関数群も提示するとそれに合わせてチューニングしてくれる
→コンストラクタとメソッドに書き換えてくれる
ありがてぇ、関数群も提示するとそれに合わせてチューニングしてくれる
630デフォルトの名無しさん (ワッチョイ 4bf8-cPIU)
2023/06/25(日) 19:21:55.03ID:i7rMe9Iv0 知ってるコードで書いて
これをphpに移植したいというだけでほぼできる
これをphpに移植したいというだけでほぼできる
631デフォルトの名無しさん (ワッチョイ 4bbb-wJdI)
2023/06/25(日) 22:54:48.63ID:lataiSU20 君は今非常に危険なところにいます
phpのpdoは非常に厄介なんですが、それを理解してません
「SQLインジェクションの対応とか一瞬で」と言ってるけど、それは本当?
たとえば、
$pdo = new PDO('mysql:dbname=test;host=localhost');
なんて提示されて採用した場合、脆弱な箇所ができる可能性があるの理解してる?
ChatGPTの提示するコードは自分の理解できている範囲以外は危険だと思って検証しないと危ないよ
phpのpdoは非常に厄介なんですが、それを理解してません
「SQLインジェクションの対応とか一瞬で」と言ってるけど、それは本当?
たとえば、
$pdo = new PDO('mysql:dbname=test;host=localhost');
なんて提示されて採用した場合、脆弱な箇所ができる可能性があるの理解してる?
ChatGPTの提示するコードは自分の理解できている範囲以外は危険だと思って検証しないと危ないよ
632デフォルトの名無しさん (ワッチョイ 23a9-gN4b)
2023/06/26(月) 02:27:13.68ID:0+rAUtlj0 >>631
$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の引数に各変数があるぐらいで何かしらセキュリティに問題があるとは思わなかったんだけど、この例ではまずい点はあるの?
$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の引数に各変数があるぐらいで何かしらセキュリティに問題があるとは思わなかったんだけど、この例ではまずい点はあるの?
633デフォルトの名無しさん (ワッチョイ 4bbb-wJdI)
2023/06/26(月) 05:54:16.49ID:xls0AJJa0 PDO を使用する際、アプリケーションとしての文字コードを指定できる箇所は new PDO() 内のみです
ここで正しくアプリケーションの文字列を指定していない場合、アプリケーションとDBの間で文字コードに差異が出る可能性が高く、それ起因の脆弱性が発生する可能性があります
よく知られた例としては 5c 問題があり、例えば上記と "SET NAMES sjis"、動的プレースホルダのセットで、プレースホルダをすり抜ける脆弱性が発生します
ここで正しくアプリケーションの文字列を指定していない場合、アプリケーションとDBの間で文字コードに差異が出る可能性が高く、それ起因の脆弱性が発生する可能性があります
よく知られた例としては 5c 問題があり、例えば上記と "SET NAMES sjis"、動的プレースホルダのセットで、プレースホルダをすり抜ける脆弱性が発生します
634デフォルトの名無しさん (ワッチョイ 23a9-gN4b)
2023/06/26(月) 06:12:00.13ID:0+rAUtlj0 >>633
ありがとう、そういうことがあるのね。
自分が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を明示するか意識しておきます。
知らないことを伝えられて動いたら全面的に信頼してしまうのも良く無いので、完全では無いことを意識しておきます
ありがとう、そういうことがあるのね。
自分が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を明示するか意識しておきます。
知らないことを伝えられて動いたら全面的に信頼してしまうのも良く無いので、完全では無いことを意識しておきます
635デフォルトの名無しさん (ワッチョイ b502-1El8)
2023/06/26(月) 10:06:12.93ID:kBW+dErx0 どうしてそんなにChatGPTにこだわるんだ
636デフォルトの名無しさん (ワッチョイ 1be7-F8yx)
2023/06/26(月) 14:10:10.33ID:RpzhtkjJ0 流行りだからね
637デフォルトの名無しさん (ワッチョイ 955f-WUpn)
2023/06/27(火) 01:40:25.23ID:BUGmgo620 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.
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.
638デフォルトの名無しさん (ワッチョイ 8da7-0Dh1)
2023/06/29(木) 01:16:30.55ID:IOgTB2mJ0 コミュニティ無視したことやって分裂すると
その系譜はもう長らくは信用されないので
CentOSが死んだ時点で大方はUbuntuに移ったのでは
このスレ的に必要なのは長期サポートだしね
その系譜はもう長らくは信用されないので
CentOSが死んだ時点で大方はUbuntuに移ったのでは
このスレ的に必要なのは長期サポートだしね
639デフォルトの名無しさん (ワッチョイ d3db-fXPZ)
2023/07/01(土) 23:56:45.93ID:qg8w7WVg0 PHPを始めたばかりのものなのですが
640デフォルトの名無しさん (ワッチョイ d3db-fXPZ)
2023/07/01(土) 23:58:14.54ID:qg8w7WVg0 間違えて書ききる前に投稿してしまいました
PHPが無料サービスの範疇で動かせれるレンタルサーバーってあるのでしょうか?
HTMLは過去に使った事があったレベルでHTML自体久しぶりなので今どういうサービスがよいものかもわかっていません
PHPが無料サービスの範疇で動かせれるレンタルサーバーってあるのでしょうか?
HTMLは過去に使った事があったレベルでHTML自体久しぶりなので今どういうサービスがよいものかもわかっていません
641デフォルトの名無しさん (ワッチョイ 06f8-1X2b)
2023/07/02(日) 19:31:28.47ID:gdoAp3Jw0 むしろ殆どphp動くだろ
rubyならともかく
rubyならともかく
642デフォルトの名無しさん (ワッチョイ 4f5f-+5O0)
2023/07/02(日) 20:33:28.61ID:QFPeETi70 レンタルサーバーは基本的にMySQLとPHP動かせるようにしてるから
WordPress入れられるように
WordPress入れられるように
643デフォルトの名無しさん (ブーイモ MM8e-D/Rs)
2023/07/05(水) 12:23:56.04ID:BSe/7cdeM644デフォルトの名無しさん (ワッチョイ 86bb-p0MK)
2023/07/05(水) 17:36:49.07ID:FFK7TFKZ0 >>643
調べりゃわかるけど、バグじゃない
charsetの設定が効かなかったバージョンがあるからそれはバグとみなしても良いかもしれないけど、PHP5.3.7以下とか随分前の話
文字列の連結使って SQL 文作っちゃダメとかと同じ知ってないとダメなセキュリティ知識だよ
調べりゃわかるけど、バグじゃない
charsetの設定が効かなかったバージョンがあるからそれはバグとみなしても良いかもしれないけど、PHP5.3.7以下とか随分前の話
文字列の連結使って SQL 文作っちゃダメとかと同じ知ってないとダメなセキュリティ知識だよ
645デフォルトの名無しさん (ブーイモ MM5b-D/Rs)
2023/07/05(水) 18:51:56.66ID:VuPZbF0BM >>644
デフォルトでなんちゃってprepared statementが使われる時点でセキュリティ的にはバグなんだよね
PDO特有の問題を一般的なセキュリティ知識と同列に語ったらダメだよ
文字列連結だって適切にエスケープ出来れば問題はないわけだけどデフォルトでそんな脆弱な処理をするライブラリがあったら頭おかしいと思うでしょ
デフォルトでなんちゃってprepared statementが使われる時点でセキュリティ的にはバグなんだよね
PDO特有の問題を一般的なセキュリティ知識と同列に語ったらダメだよ
文字列連結だって適切にエスケープ出来れば問題はないわけだけどデフォルトでそんな脆弱な処理をするライブラリがあったら頭おかしいと思うでしょ
646デフォルトの名無しさん (ワッチョイ 86bb-p0MK)
2023/07/05(水) 19:39:41.44ID:FFK7TFKZ0 >>645
なんか、無茶苦茶だねぇ
まず、
> 15年近く脆弱性関連のバグが放置されてるのは凄いね
これが全く認識違いだったってことは理解できた?
現在のphpではcharsetをPDOコンストラクタ内のDSNで設定してあげることで、アプリとDBの間の文字コードにずれが発生することがなくなり、意図した通りの動作をさせることができる
> デフォルトでなんちゃってprepared statementが使われる時点でセキュリティ的にはバグなんだよね
全然話が変わってるけど、なんでこんな話が出てきたの?
動的プレースホルダをデフォルトとして採用することをバグと呼ぶ人は見たこと無いけど、たしかにセキュリティ屋から見ると好ましくはない
ただ、ネットワークレイテンシを考えると非常に合理的なので、それほど悪い選択ではないと思う
顕在化した脆弱性があるわけでもないし現在においてはアプリとDBをutf-8で統一することも容易なので、正しくアプリケーションの性格に合わせて選択すればよいだけの話だよ
なんか、無茶苦茶だねぇ
まず、
> 15年近く脆弱性関連のバグが放置されてるのは凄いね
これが全く認識違いだったってことは理解できた?
現在のphpではcharsetをPDOコンストラクタ内のDSNで設定してあげることで、アプリとDBの間の文字コードにずれが発生することがなくなり、意図した通りの動作をさせることができる
> デフォルトでなんちゃってprepared statementが使われる時点でセキュリティ的にはバグなんだよね
全然話が変わってるけど、なんでこんな話が出てきたの?
動的プレースホルダをデフォルトとして採用することをバグと呼ぶ人は見たこと無いけど、たしかにセキュリティ屋から見ると好ましくはない
ただ、ネットワークレイテンシを考えると非常に合理的なので、それほど悪い選択ではないと思う
顕在化した脆弱性があるわけでもないし現在においてはアプリとDBをutf-8で統一することも容易なので、正しくアプリケーションの性格に合わせて選択すればよいだけの話だよ
647デフォルトの名無しさん (ワッチョイ 0ee7-hRAP)
2023/07/06(木) 11:41:34.33ID:us421T2z0 面倒な人が絡んできてるね・・・
仕様バグだろうとバグはバグよ
仕様バグだろうとバグはバグよ
648デフォルトの名無しさん (ワッチョイ 0663-hRAP)
2023/07/06(木) 11:46:42.56ID:5cWvOTk60 脆弱性は、設計上のバグ
知ってないとダメというのは、バグ回避のテクニック
知ってないとダメというのは、バグ回避のテクニック
649デフォルトの名無しさん (ワッチョイ 86bb-p0MK)
2023/07/06(木) 12:43:03.10ID:KqeQuq1k0650デフォルトの名無しさん (スップ Sd22-+5O0)
2023/07/06(木) 18:00:41.52ID:hqQEAg+3d 個人的にはメール送信関係でヘッダー7ビット文字に変えるのがなんかもやもやする
昔のソフトだと7ビットじゃないとダメってのはわかるんだけどUTF-8でもいいじゃねーかってなる
昔のソフトだと7ビットじゃないとダメってのはわかるんだけどUTF-8でもいいじゃねーかってなる
651デフォルトの名無しさん (ワッチョイ 7f7b-gGH9)
2023/07/06(木) 22:27:39.58ID:CUYn8xPf0 >>647
勘違いしているのはお前で、一般的にはそれはバグとは言わない。
同様の件なら踏切や横断歩道もバグになる。勿論高架や歩道橋にするべきではあるが。
昨年の観光バス横転事故(フェード現象らしい)もバグではなくブレーキの仕様だ。仕様バグでもない。
ホームドアもそれなりに普及して、
あらゆる物がある程度デタラメな操作(=ホームの端を歩く)しても安全になっては来ているが、
素人がどんなデタラメをやっても安全とはなってないし、ならない。
プログラミングに関しては今後とも「正しい操作をした場合に正しく動く」でしかないだろうよ。
不親切なのはその通りだし、改善はしていくだろうけども。
>>650
公式見る限りPHPからは気にする必要なさそうだが違うのか?
なおutf-8も8bit使ってるから駄目だと思うぞ。
今更8bitが通らない環境なんてないし、有ったとしてもそんなところにメール出してないのも事実だが。
IPv6みたいに誰かが音頭取って更新を促さない限り無理だが、今のところ聞いたこと無いね。
勘違いしているのはお前で、一般的にはそれはバグとは言わない。
同様の件なら踏切や横断歩道もバグになる。勿論高架や歩道橋にするべきではあるが。
昨年の観光バス横転事故(フェード現象らしい)もバグではなくブレーキの仕様だ。仕様バグでもない。
ホームドアもそれなりに普及して、
あらゆる物がある程度デタラメな操作(=ホームの端を歩く)しても安全になっては来ているが、
素人がどんなデタラメをやっても安全とはなってないし、ならない。
プログラミングに関しては今後とも「正しい操作をした場合に正しく動く」でしかないだろうよ。
不親切なのはその通りだし、改善はしていくだろうけども。
>>650
公式見る限りPHPからは気にする必要なさそうだが違うのか?
なおutf-8も8bit使ってるから駄目だと思うぞ。
今更8bitが通らない環境なんてないし、有ったとしてもそんなところにメール出してないのも事実だが。
IPv6みたいに誰かが音頭取って更新を促さない限り無理だが、今のところ聞いたこと無いね。
652デフォルトの名無しさん (ワッチョイ 0663-hRAP)
2023/07/06(木) 22:53:42.84ID:5cWvOTk60 素人が脆弱性を突いてくる説
653デフォルトの名無しさん (アウアウウー Sabb-JtsX)
2023/07/07(金) 02:29:15.80ID:u6t7w3p4a Java は、ログ機能にセキュリティーホールがあって、
Edge から、パスワードを抜かれますと報告が来た
セキュリティー更新せず、ほったらかしのサイトが山ほどある
Edge から、パスワードを抜かれますと報告が来た
セキュリティー更新せず、ほったらかしのサイトが山ほどある
654デフォルトの名無しさん (ワッチョイ 86bb-p0MK)
2023/07/07(金) 07:55:50.16ID:84NzU0uw0655デフォルトの名無しさん (ワッチョイ 86bb-p0MK)
2023/07/07(金) 23:44:08.79ID:84NzU0uw0 >>650
なんかちょっと勘違いしてる気がする
昔のブックマークから拾い上げてみたんで読んでみて
https://blog.tmtms.net/entry/2014/12/06/postfix-8bit
なんかちょっと勘違いしてる気がする
昔のブックマークから拾い上げてみたんで読んでみて
https://blog.tmtms.net/entry/2014/12/06/postfix-8bit
656デフォルトの名無しさん (ワッチョイ ce8b-/jfo)
2023/07/17(月) 13:54:48.52ID:pZjB1XDE0 テスト
657デフォルトの名無しさん (ワッチョイ 9b5f-5LlG)
2023/07/18(火) 14:26:46.55ID:2j+5uZca0 ネットで見つけた掲示板のサンプルがクソでした
更新ボタン押すと同じ書き込みが繰り返されてしまうのです
どうすれば解決しますか?
ほんとプログラミングはクソ記事多くて困りますね
え?クソはおまえだ?
ごもっとも
更新ボタン押すと同じ書き込みが繰り返されてしまうのです
どうすれば解決しますか?
ほんとプログラミングはクソ記事多くて困りますね
え?クソはおまえだ?
ごもっとも
658デフォルトの名無しさん (アウアウウー Sab5-5LlG)
2023/07/19(水) 05:05:41.80ID:mXhymdyPa 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>
<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>
659デフォルトの名無しさん (オッペケ Sr39-4jI1)
2023/07/19(水) 08:14:40.70ID:sz/H8H6wr Ruby病(その割に技術は中の下レベル)の人は
jquery推しでもあるのか
Railsとvueやreactを同時に使う例は幾つかあるな
phpだとlaravelはvueとの相性抜群だがreactは今一つ
CakePHPだとどっちも簡単ではないか
CakePHPはJquery使った例が多いなあ
Pythonのdjangoはvueもreactも実装例豊富
Javaのtomcatはvueは何とかなるがreactだとやることも限られてる?というレポートがある
Goは何と相性いいかな
jquery推しでもあるのか
Railsとvueやreactを同時に使う例は幾つかあるな
phpだとlaravelはvueとの相性抜群だがreactは今一つ
CakePHPだとどっちも簡単ではないか
CakePHPはJquery使った例が多いなあ
Pythonのdjangoはvueもreactも実装例豊富
Javaのtomcatはvueは何とかなるがreactだとやることも限られてる?というレポートがある
Goは何と相性いいかな
660デフォルトの名無しさん (ワッチョイ 9b5f-5LlG)
2023/07/20(木) 13:07:15.80ID:qnO4Vavr0 printとechoの違いがわかりません
ぐぐっても説明が下手な文章ばかりで理解できません
理数系の人間は文章の書き方も少しは勉強したほうがいいのではないでしょうか?
え?勉強しろはおまえだ?
ごもっとも
ぐぐっても説明が下手な文章ばかりで理解できません
理数系の人間は文章の書き方も少しは勉強したほうがいいのではないでしょうか?
え?勉強しろはおまえだ?
ごもっとも
661デフォルトの名無しさん (ワッチョイ b6e7-/jfo)
2023/07/20(木) 15:39:21.26ID:x9stnx4l0662デフォルトの名無しさん (ワッチョイ 7349-9/0y)
2023/07/20(木) 16:19:17.66ID:hZ7hjedN0 もちろん、お手伝いします!
PHPにおける`print`と`echo`の違いについて要約して説明しますね。
- `print`: `print`は関数ではなく、言語構造です。値を出力するために使用されます。
値を出力した後、1を返します。また、引数を一つしか受け付けないという制約があります。例:`print "Hello, world!";`
- `echo`: `echo`は言語構造または関数として使用できます。値を出力するためにも使用されますが、`print`とは異なり、返り値を持ちません。
カンマを使って複数の引数を受け取ることができます。例:`echo "Hello", " ", "world!";`
どちらも基本的には同じように動作しますが、`echo`がやや効率的で多くの引数を出力する場合にわずかに速い場合があります。
理解に役立てば幸いです!もし他に質問があればどうぞお知らせください。
PHPにおける`print`と`echo`の違いについて要約して説明しますね。
- `print`: `print`は関数ではなく、言語構造です。値を出力するために使用されます。
値を出力した後、1を返します。また、引数を一つしか受け付けないという制約があります。例:`print "Hello, world!";`
- `echo`: `echo`は言語構造または関数として使用できます。値を出力するためにも使用されますが、`print`とは異なり、返り値を持ちません。
カンマを使って複数の引数を受け取ることができます。例:`echo "Hello", " ", "world!";`
どちらも基本的には同じように動作しますが、`echo`がやや効率的で多くの引数を出力する場合にわずかに速い場合があります。
理解に役立てば幸いです!もし他に質問があればどうぞお知らせください。
663デフォルトの名無しさん (ワッチョイ 30a9-hELD)
2023/07/20(木) 16:56:18.77ID:gjufsyfM0 横だがGPT-4に小学生にでもわかるよう聞いてみた
---
それらの違いを小学生にも分かるように説明すると、
「printとechoは友達と話す方法だと考えてみてください。
print君は一度に一つのことしか話せないけど、その後に自分がちゃんと話したかどうか(つまり1という値)を教えてくれます。
一方、echo君は一度にたくさんのことを話すことができますが、自分がちゃんと話したかどうかは教えてくれません。
だから、それぞれの友達(つまり命令)は自分が何をしたいかによって選ぶといいです。」
---
それらの違いを小学生にも分かるように説明すると、
「printとechoは友達と話す方法だと考えてみてください。
print君は一度に一つのことしか話せないけど、その後に自分がちゃんと話したかどうか(つまり1という値)を教えてくれます。
一方、echo君は一度にたくさんのことを話すことができますが、自分がちゃんと話したかどうかは教えてくれません。
だから、それぞれの友達(つまり命令)は自分が何をしたいかによって選ぶといいです。」
664printとechoの違い (ワッチョイ 9b5f-5LlG)
2023/07/20(木) 18:33:40.90ID:qnO4Vavr0 なるほどよくわかりました
サイト記事書く人は専門用語ばかり使って、初心者につたわらない文章しか書けないので
ここの解説はとてもわかりやすいです
ググって検索に出てくる邪魔な解説は消えてなくなれですね
え?おまえが消えてなくなれって?
ごもっとも
サイト記事書く人は専門用語ばかり使って、初心者につたわらない文章しか書けないので
ここの解説はとてもわかりやすいです
ググって検索に出てくる邪魔な解説は消えてなくなれですね
え?おまえが消えてなくなれって?
ごもっとも
665デフォルトの名無しさん (スップ Sd94-5Rmv)
2023/07/20(木) 21:59:07.70ID:WRqu6H4qd printが1を返してくれるとしても、それが役立つ場面がわからない
どんな場面で役立つのだろうか
どんな場面で役立つのだろうか
666デフォルトの名無しさん (ワッチョイ e75f-Nw73)
2023/07/20(木) 23:11:22.17ID:zS5YoEfg0 >>660
アホみたいな文章書いてる暇あったら公式リファレンス読んどけ、多分一番しっかり書かれてるから
アホみたいな文章書いてる暇あったら公式リファレンス読んどけ、多分一番しっかり書かれてるから
667デフォルトの名無しさん (ワッチョイ 9b5f-5LlG)
2023/07/21(金) 23:03:50.96ID:hNucA2BH0668デフォルトの名無しさん (ワッチョイ 6cac-tCaK)
2023/07/21(金) 23:58:06.25ID:GYeyeRXL0 専門のことしてるのに専門用語を理解しようとしないのはどうかと思うぞ
噛み砕いて教えるのは、相手が専門外のお客様(生徒含む)のときくらいだろ
噛み砕いて教えるのは、相手が専門外のお客様(生徒含む)のときくらいだろ
669デフォルトの名無しさん (ワッチョイ a77b-XNrL)
2023/07/22(土) 00:30:59.57ID:HIe68VRv0670デフォルトの名無しさん (アウアウウー Sa2b-/4N/)
2023/07/22(土) 01:45:53.25ID:fDI/VGosa 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人よりも研究しているから
特に初心者は、情弱ビジネスに引っ掛かった。
素人に、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人よりも研究しているから
671デフォルトの名無しさん (ワッチョイ e7a7-rRCM)
2023/07/22(土) 02:11:03.31ID:tE4RMivO0 Rubyistが金持ちだかなんだか知らないけど
こんなとこでキチガイみたいなレス続けてるお前の年収なんかたかがしれてんだから
人の心配なんてしないで自分の心配しとけな
こんなとこでキチガイみたいなレス続けてるお前の年収なんかたかがしれてんだから
人の心配なんてしないで自分の心配しとけな
672デフォルトの名無しさん (ワッチョイ bf5f-onGn)
2023/07/22(土) 15:06:33.58ID:UxG3EoFv0 >>667
本当に「読んだ」のか? お前はただ「見た」「眺めた」だけじゃあないのか?
わからないならわかるまで読め。 わからない単語はすべて検索しろ。 100回読め
中学高校で嫌になるほど勉強の仕方を勉強してきてるんだから、そのくらいはやれ
本当に「読んだ」のか? お前はただ「見た」「眺めた」だけじゃあないのか?
わからないならわかるまで読め。 わからない単語はすべて検索しろ。 100回読め
中学高校で嫌になるほど勉強の仕方を勉強してきてるんだから、そのくらいはやれ
673デフォルトの名無しさん (スップ Sd8a-VFKZ)
2023/08/03(木) 13:33:47.77ID:7OoRnNP6d 格納するDBのカラムの型がintの場合に、POSTデータの初期化処理は
次のどちらが良いのでしょうか?
$value = isset($_POST['value']) ? $_POST['value'] : '';//空文字
$value = isset($_POST['value']) ? $_POST['value'] : 0;//整数0
前者は、ポストデータは文字列なので空文字で初期化しています
後者は、DBのカラムがintなので整数0で初期化しています
どちらもその後にデータチェック及びサニタイズはします
次のどちらが良いのでしょうか?
$value = isset($_POST['value']) ? $_POST['value'] : '';//空文字
$value = isset($_POST['value']) ? $_POST['value'] : 0;//整数0
前者は、ポストデータは文字列なので空文字で初期化しています
後者は、DBのカラムがintなので整数0で初期化しています
どちらもその後にデータチェック及びサニタイズはします
674デフォルトの名無しさん (スップ Sd8a-VFKZ)
2023/08/03(木) 13:55:32.28ID:7OoRnNP6d 補足です
$_POST['value']には、整数が入力されることを想定しています
よろしくお願いします
$_POST['value']には、整数が入力されることを想定しています
よろしくお願いします
675デフォルトの名無しさん (ワッチョイ 0ba7-IjPS)
2023/08/03(木) 15:48:42.48ID:zTGCMZ+m0 格納するDBのカラムにデフォルト値がセットされていればデフォルト値に合わせるか何も入れない
セットされていないなら入力がmustってことなので
とりあえず格納が可能になるよう0にしてしまうとかいう発想がおかしいので入力しろとエラーを返すべき
セットされていないなら入力がmustってことなので
とりあえず格納が可能になるよう0にしてしまうとかいう発想がおかしいので入力しろとエラーを返すべき
676デフォルトの名無しさん (ワッチョイ 0ba7-IjPS)
2023/08/03(木) 15:50:08.52ID:zTGCMZ+m0 not null制約かどうかは書いてなかったね
まあそのカラムの性質によるとしか
まあそのカラムの性質によるとしか
677デフォルトの名無しさん (スップ Sd8a-VFKZ)
2023/08/03(木) 16:23:03.22ID:7OoRnNP6d >>675
ありがとうございます
>>デフォルト値に合わせるか「何も入れない」
>>格納が可能になるよう0にしてしまうとかいう発想がおかしいので「入力しろとエラーを返すべき」
この2点を考慮すると、空文字で初期化するのが正しいようですね
POSTデータが空なのだから、空文字で初期化して、データチェックで
空の場合をエラーとして弾くのが正解な気がしてきました
ありがとうございます
>>デフォルト値に合わせるか「何も入れない」
>>格納が可能になるよう0にしてしまうとかいう発想がおかしいので「入力しろとエラーを返すべき」
この2点を考慮すると、空文字で初期化するのが正しいようですね
POSTデータが空なのだから、空文字で初期化して、データチェックで
空の場合をエラーとして弾くのが正解な気がしてきました
678デフォルトの名無しさん (スップ Sd8a-kJnY)
2023/08/03(木) 19:00:43.99ID:boco8q6Md POSTの必須チェックはemptyで十分(暴論)
679デフォルトの名無しさん (スップ Sd8a-VFKZ)
2023/08/03(木) 20:11:24.13ID:7OoRnNP6d $value = $_POST['value'];
これだと値がセットされていない場合にNoticeエラーが出るんですよね
それで、emptyやissetが使わていたように思います
もっとも最近では、filter_inputが推奨されているようで
すでにfilter_inputが主流になっているのでしょうか
これだと値がセットされていない場合にNoticeエラーが出るんですよね
それで、emptyやissetが使わていたように思います
もっとも最近では、filter_inputが推奨されているようで
すでにfilter_inputが主流になっているのでしょうか
680デフォルトの名無しさん (ワッチョイ be63-1j9t)
2023/08/03(木) 20:29:00.58ID:K+C7K/360 どうやるかは色々流儀があると思うけれど
何故そうするのかを知っておくことは大事だと思う
何故そうするのかを知っておくことは大事だと思う
681デフォルトの名無しさん (ワッチョイ 2a01-58Wo)
2023/08/03(木) 21:42:47.27ID:NRjs0yDQ0 フォームの項目が動的に変化するタイプとかで
そもそもクライアントから送信されてない項目を参照しようとしてるんじゃないの?
そもそもクライアントから送信されてない項目を参照しようとしてるんじゃないの?
682デフォルトの名無しさん (ワッチョイ aba7-SCbl)
2023/08/07(月) 17:05:23.27ID:g4YHb1dg0 >すでにfilter_inputが主流になっているのでしょうか
PHP5.3あたりではまだissetが当たり前だったけど
PHP5.4あたりからfilter_inputの記事が多くなった気がしたな
PHP7になってからはnull合体演算子(??)もissetの代替であげられるけど
filter_inputがよく使われてる気がする
高精度ではないけどそれでいいなら用意されてるフィルタである程度バリデーションできるし
なんならコールバックのユーザ定義関数でもフィルタリングできるし
あまりごちゃごちゃ書かないですむメリットもある
PHP5.3あたりではまだissetが当たり前だったけど
PHP5.4あたりからfilter_inputの記事が多くなった気がしたな
PHP7になってからはnull合体演算子(??)もissetの代替であげられるけど
filter_inputがよく使われてる気がする
高精度ではないけどそれでいいなら用意されてるフィルタである程度バリデーションできるし
なんならコールバックのユーザ定義関数でもフィルタリングできるし
あまりごちゃごちゃ書かないですむメリットもある
683デフォルトの名無しさん (ワッチョイ df10-D1BR)
2023/08/08(火) 16:45:09.01ID:P3IKMInR0 でも、AIに質問するとissetの例を出してくるよ
684デフォルトの名無しさん (スップ Sdd7-a4kh)
2023/08/08(火) 21:06:35.11ID:InM7lKihd >>682
ありがとうございます。とても参考になりました
公式サイトをしっかり読めばいいのだけど、個々の文法の解説がメインで
流れのあるチュートリアルとしては弱いんだよね
もちろん公式サイトの充実ぶりにはとても感謝しています
PHP8に準拠したお手本となるようなPHP本が出るといいなぁ
ありがとうございます。とても参考になりました
公式サイトをしっかり読めばいいのだけど、個々の文法の解説がメインで
流れのあるチュートリアルとしては弱いんだよね
もちろん公式サイトの充実ぶりにはとても感謝しています
PHP8に準拠したお手本となるようなPHP本が出るといいなぁ
685デフォルトの名無しさん (ワッチョイ 915f-OkRc)
2023/08/10(木) 16:13:43.00ID:+eZjCzx+0 それぞれのメリットを教えてくれ
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の使用が適しています。
状況やニーズに応じて、適切な関数や方法を選択することが大切です。
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の使用が適しています。
状況やニーズに応じて、適切な関数や方法を選択することが大切です。
686デフォルトの名無しさん (ワッチョイ 9aa9-i0IF)
2023/08/18(金) 05:27:16.73ID:+mar7LqR0 チェックボックスでレコードに関するフラグをmariadbに登録する時は
php内ではtrue, falseと、1,0で条件分岐どっちがいい?
mariadbはtrue, falseのboolで保存できないので、結局取り出すときは1と0の文字列になるけど
どういう管理というかルールにしたら良いか迷ってます
php内ではtrue, falseと、1,0で条件分岐どっちがいい?
mariadbはtrue, falseのboolで保存できないので、結局取り出すときは1と0の文字列になるけど
どういう管理というかルールにしたら良いか迷ってます
687デフォルトの名無しさん (ワッチョイ 76e7-eQmn)
2023/08/18(金) 11:22:44.15ID:MbvK7wD/0688デフォルトの名無しさん (スップ Sdba-ORuG)
2023/08/18(金) 19:35:38.53ID:2Xzv42cCd >>686
0か1の整数型だね
INSERTをする前に値をintvalする
SELECTをした後に値をintvalする
PHPの内部ではint型として扱い、厳密な比較をする
ただしPOSTされた時点では文字列なので、バリデーションは文字列として扱う
もっともチェックボックスだとチェックがないと、たぶん値が何も来ない
0か1の整数型だね
INSERTをする前に値をintvalする
SELECTをした後に値をintvalする
PHPの内部ではint型として扱い、厳密な比較をする
ただしPOSTされた時点では文字列なので、バリデーションは文字列として扱う
もっともチェックボックスだとチェックがないと、たぶん値が何も来ない
689デフォルトの名無しさん (ワッチョイ 93a9-6Nwt)
2023/08/19(土) 20:10:29.17ID:28+RhaxH0 >>687-688
ありがとうございます。
初学者なのでtrueとかfalseとか憧れてそれで作っていましたが、db周りの出し入れをしているうちに
キャストに統一性が無い感じがモヤモヤしていました。
フラグのチェックボックスは
filter_input(INPUT_POST, 'hoge', FILTER_VALIDATE_BOOLEAN)
を使っていました。
チェックボックスにチェックが無い場合はデータベースに入れる前に三項演算子で
isset($_SESSION['hoge']) ? 1 : 0;
isset($_SESSION['hoge']) ? 1 : 0;
フラグのありなしをつけてinsert, updateしていますが、確かに整数に揃えたほうが良かったですね。
ありがとうございます。
初学者なのでtrueとかfalseとか憧れてそれで作っていましたが、db周りの出し入れをしているうちに
キャストに統一性が無い感じがモヤモヤしていました。
フラグのチェックボックスは
filter_input(INPUT_POST, 'hoge', FILTER_VALIDATE_BOOLEAN)
を使っていました。
チェックボックスにチェックが無い場合はデータベースに入れる前に三項演算子で
isset($_SESSION['hoge']) ? 1 : 0;
isset($_SESSION['hoge']) ? 1 : 0;
フラグのありなしをつけてinsert, updateしていますが、確かに整数に揃えたほうが良かったですね。
690デフォルトの名無しさん (ワッチョイ 317b-vj3y)
2023/08/19(土) 23:28:02.55ID:2LFpxJcr0 >>689
おい、一応言っておくが、>>687-688は間違ってるぞ。
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-688は間違ってるぞ。
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なりのなんか変なノウハウがあって数字の方がいいのかどうかは分からん。
691デフォルトの名無しさん (ブーイモ MM4b-Wgo7)
2023/08/20(日) 04:33:24.24ID:fG8Y/bhcM ワイ独学自称中級者
一連のやりとりを見て自信を無くして震える
(((( ;゚Д゚)))ガクガクブルブル
一連のやりとりを見て自信を無くして震える
(((( ;゚Д゚)))ガクガクブルブル
692デフォルトの名無しさん (ワッチョイ 5b5f-hPrW)
2023/08/20(日) 12:55:06.37ID:4PrSYObq0 >>690
>そのDBがtrue/false使えたら全部書き直すつもりなのか?
そういうDB依存、言語依存をしないために、そもそもDBに1,0をかきこむんじゃ
true/falseなんて多言語で一番共通の無い概念じゃけえの
>そのDBがtrue/false使えたら全部書き直すつもりなのか?
そういうDB依存、言語依存をしないために、そもそもDBに1,0をかきこむんじゃ
true/falseなんて多言語で一番共通の無い概念じゃけえの
693デフォルトの名無しさん (ワッチョイ 317b-vj3y)
2023/08/20(日) 13:35:51.35ID:Vn08TQPe0 >>692
> 言語依存
> 多言語で
いや今はPHPでどうするかの話だろ。
そしてmariaは知らんが686の通りなら文字型しかないDBなんだろ。
そういうDBが有ってもおかしくない。DBではないがJSのlocalStorageとかそうだし。
> 言語依存
> 多言語で
いや今はPHPでどうするかの話だろ。
そしてmariaは知らんが686の通りなら文字型しかないDBなんだろ。
そういうDBが有ってもおかしくない。DBではないがJSのlocalStorageとかそうだし。
694デフォルトの名無しさん (ワッチョイ 317b-vj3y)
2023/08/20(日) 13:59:49.50ID:Vn08TQPe0695デフォルトの名無しさん (ワッチョイ 1301-/Wom)
2023/08/20(日) 14:18:19.62ID:HzS5SUnX0 Synonym for TINYINT(1)と書いてあるだろう
696デフォルトの名無しさん (スップ Sdb3-qQSq)
2023/08/20(日) 15:08:55.86ID:6IMFV5dJd フラグとして変数を定義するとき、ブーリアン型を用いることがほとんどである。
ブーリアン型は「真」(フラグが立っている)および「偽」(フラグが立っていない)のみを値として受けつけ、
都合が良いからである。
https://ja.wikipedia.org/wiki/フラグ_(コンピュータ)
「1|0」でなく「true|false」を使うことに有用性はありますか?
https://teratail.com/questions/307035
ブーリアン型は「真」(フラグが立っている)および「偽」(フラグが立っていない)のみを値として受けつけ、
都合が良いからである。
https://ja.wikipedia.org/wiki/フラグ_(コンピュータ)
「1|0」でなく「true|false」を使うことに有用性はありますか?
https://teratail.com/questions/307035
697デフォルトの名無しさん (ワッチョイ 2b63-/QKx)
2023/08/20(日) 15:10:00.51ID:GxzweHHZ0 TINYINTには、0と1以外の値も入る
698デフォルトの名無しさん (スップ Sdf3-CvT1)
2023/08/20(日) 16:20:48.91ID:ssGBE3vxd MySQLのtinyint(1)って1ビットってことだから0か1になるんじゃ?
登録するまでに型変換だのなんだのするの個人的には嫌だからtrue falseで良いと思うけど
登録するまでに型変換だのなんだのするの個人的には嫌だからtrue falseで良いと思うけど
699686 (ワッチョイ 93a9-6Nwt)
2023/08/20(日) 17:51:30.99ID:fCXPEraA0 すいません、間違えていました
>mariadbはtrue, falseのboolで保存できないので、結局取り出すときは
誤:1と0の文字列になるけど
正:結局取り出すときは1と0の数値になるけど
です。tinyint(1)なので数字の1と0です。
最悪なところ書き間違えていました・・・
phpしか使わないので
チェックボックスのvalue=1をintvalにしてdbに入れる
確認画面とかで評価するときは===1で厳密に評価するのが初学者向きなのかな?
mariadbに入れるまではtrue,falseがdbに入れられないことに気付かなかったです。
>mariadbはtrue, falseのboolで保存できないので、結局取り出すときは
誤:1と0の文字列になるけど
正:結局取り出すときは1と0の数値になるけど
です。tinyint(1)なので数字の1と0です。
最悪なところ書き間違えていました・・・
phpしか使わないので
チェックボックスのvalue=1をintvalにしてdbに入れる
確認画面とかで評価するときは===1で厳密に評価するのが初学者向きなのかな?
mariadbに入れるまではtrue,falseがdbに入れられないことに気付かなかったです。
700デフォルトの名無しさん (ワッチョイ 1301-/Wom)
2023/08/20(日) 18:02:22.04ID:HzS5SUnX0701デフォルトの名無しさん (ブーイモ MMb3-wGig)
2023/08/20(日) 18:07:23.77ID:5gYLv8ZUM >>700
pdo使え
pdo使え
702デフォルトの名無しさん (ワッチョイ 93a9-6Nwt)
2023/08/20(日) 18:14:41.61ID:fCXPEraA0 >>700
exucuteからforeachで$hoge = intval(row['is_hoge']);
のように取り出そうと思います、間違っていたらごめんなさい。
pdoとプレースホルダを使っています。
exucuteからforeachで$hoge = intval(row['is_hoge']);
のように取り出そうと思います、間違っていたらごめんなさい。
pdoとプレースホルダを使っています。
703デフォルトの名無しさん (オッペケ Sr0d-eja4)
2023/08/20(日) 21:21:03.15ID:7sa3oVfBr これだからphpは欠陥言語なんだよな
他の言語じゃ起こり得ないことがphpでは当たり前のように起こる
他の言語じゃ起こり得ないことがphpでは当たり前のように起こる
704デフォルトの名無しさん (スップ Sdb3-qQSq)
2023/08/20(日) 21:37:23.85ID:6IMFV5dJd phpMyAdminだとBOOLEANは、NUMERICのカテゴリで数値扱い
上にもある通りtinyint(1)とされる
型をBOOLEANに設定してデフォルト値をtrueにしても、結局は1と表示される
上にもある通りtinyint(1)とされる
型をBOOLEANに設定してデフォルト値をtrueにしても、結局は1と表示される
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本の立場説明へ…外務省局長が北京到着 “台湾有事”首相答弁に中国反発 ★4 [煮卵★]
- 橋下徹氏「この喧嘩は日本の完敗」 台湾有事答弁めぐる外務省局長訪中で指摘「中国に怒られてご説明に伺った日本と見られる」 [muffin★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 外務省幹部が18日に中国側と協議へ ツアー停止や映画公開延期も 在中国の日本大使館は現地滞在の日本人に注意喚起 [787212328]
- 【高市速報】ユーロ円180円突破。史上初 [931948549]
- 高市コイン、155円突破wwwwwwwwww [246620176]
- 杉浦綾乃板って改名したほうがいいよな
- 高市早苗の中国問題、「オーバーツーリズムが解消されてウザい中国人が消えるから日本の勝ち」という風潮になってしまう [562983582]
- おじゃる丸をまったり待機するスレ🏡
