【PHP】下らねぇ質問はここに書き込みやがれ 14

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f97-W3aP)
垢版 |
2022/09/20(火) 16:46:23.39ID:Sb2Kpzh+0
!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
2022/12/08(木) 21:23:04.49ID:O25d6TKs0
装置A(apache,php)にデバイス(キーボードとか)が繋がっている状態。

でユーザーは装置Aから音声ガイダンスが流れるからそれに従って
キー入力を行って、装置Aでどのキーが入力されたのかって
情報が欲しい。

でPHPからexceで自作のexe(C++で作成したもの)を呼び出して装置A上で
音声の再生、キー入力を受けつけたい。装置Aには画面が無い状態ね。
まぁ、普通にCSで作れってのはおいておいてw

何で装置にWebサーバーが入っているのかはhttp通信で外部からその
装置を制御したいから。

例えば俺のマシンから装置Aに対して、音声出してってPOSTすると
装置Aが音声を出すって感じ
2022/12/08(木) 21:31:46.95ID:O25d6TKs0
apache上で動いているPHPにそのマシンからのキー入力情報が
受け取れるなら別にexecで外部プログラムを呼ばなくてもいいけど、
他に方法があるなら教えてくれ。
Node.jsでjavascriptで受け取るってのはだめだったら試す。
2022/12/08(木) 21:39:10.00ID:O25d6TKs0
サーバー上で標準入力を受け取りたいんだけど
エンターボタンは無いからC++で書いてる。
2022/12/08(木) 21:56:41.92ID:yrpHKjJA0
xamppでは動いたんだよね?
だったらxamppでやけば良い気がするけど...

いくつか制限できる方法はあるのですぐ出てきたやつ貼っとく
https://www.php.net/manual/ja/ini.core.php#ini.disable-functions

レンサバなんかだと制限があったりするけど、デフォルトでは特に制限なかったと思うけどなぁ
2022/12/08(木) 22:02:56.68ID:O25d6TKs0
>>203
ありがと。php.iniはほぼデフォで使ってるから
その辺の設定は特に入れてないはずなんだよな・・・・

タスクマネージャみてるとxampp controllから呼ばれている場合は
動いてるんだよな・・・

2つのexeのうち1つは普通に動いているから権限でもなさそうだし・・・
2022/12/09(金) 00:28:47.75ID:TadN+Pts0
apacheがwindowsサービスで動いてるなら仕様じゃね?
2022/12/09(金) 20:34:02.72ID:jNmVPDHZ0
文字列は "abc" 囲いでも 'abc' 囲いでもどちらでもいいようになってますが
皆さんはどちらを標準にして囲ってますか?
あるいはこういうケースの時はこっちを使うというような例などがあったら聞かせてください
2022/12/09(金) 23:16:21.56ID:UyKdfg3p0
普段はシングルクォーテーション
変数展開とかするならダブルクォーテーションだな
2022/12/09(金) 23:21:07.50ID:WbcD0Rxq0
Cから来たので基本はダブルクォーテーションかな
シングルは 文字列中にダブルクォートが多いときか
オプションみたいな1文字ですって強調したいときに使う
2022/12/10(土) 12:45:51.50ID:y3cK8mxB0
みんなでどっちに揃えましょうとかどっちが多数ですというようなものはないんですかね
2022/12/10(土) 17:00:52.24ID:wlUDu/T/0
どっちにそろえようとかは特にないし
PSR-12なんかでも規定はないね

というか、一貫性が何より大切だから
どっち使ってもいいけど必ず統一しろ
と書いてある
2022/12/10(土) 17:28:10.93ID:8BH9hZYzF
テンプレートリテラル使うからダブルクォーテーションが多め
Viewとコントローラ一緒のファイルで記述する時はPHP側は基本シングルクォーテーションにしてる
2022/12/14(水) 10:36:26.00ID:clTPPvgu0
どなたかfuelphpという産廃使ってる方いませんかー!
テスト導入に苦戦してまして…
2022/12/14(水) 17:12:07.16ID:EUJoHYXL0
>>212
産廃はお前だよ
2022/12/14(水) 18:44:26.38ID:1dR4tl0p0
>>212
FuelPHPなら使っているが、産廃などと言うやつには一切の手助けはしない。
2022/12/14(水) 19:11:09.38ID:erx97Ujd0
文字列としてSQL扱うときは、外側は " にしてた
2022/12/15(木) 11:47:59.66ID:LeGrOdjQ0
>>213
もう更新されてないフレームワークだろ?ググればオワコンってすぐ出てくるし

>>214
あっそ
2022/12/15(木) 22:44:28.75ID:2voHnGHc0
上手くいったら報告して
2022/12/15(木) 22:54:29.04ID:lBgSxiuh0
http://fuelphp.jp/docs/1.6/general/unit_testing.html
これ参考にならんの?
2022/12/15(木) 23:22:29.62ID:2B516vAy0
10年前のフレームワークかぁ
2022/12/15(木) 23:49:29.88ID:2voHnGHc0
歴戦の勇士なら使える
2022/12/15(木) 23:59:56.21ID:WOnFczjv0
まともな情報量をもった質問もできない産廃をかまってやるなんてお前ら優しいな
2022/12/16(金) 18:02:33.05ID:sLgaZEhZ0
>>221
産廃をありがたがって使ってるお前が異端なんだよ
2022/12/16(金) 18:04:56.98ID:sLgaZEhZ0
>>218
モックのライブラリ入れるとcomposerさんがちゃんと更新してくれなくてな…記事も少なくてクソだわ
2022/12/16(金) 18:25:02.16ID:s8p4pdj90
将来的な事を考えたら多少コストがかかろうがLaravelなどに書き換えた方が良さそうだけどねぇ
多分そんなに予算も無く、修正や機能追加に金は出せないみたいな所から受けていたら悲惨としか・・・
2022/12/16(金) 18:52:17.38ID:sLgaZEhZ0
>>224
まさしくそれ…
好き好んで使ってるやつの気がしれん
2022/12/16(金) 20:43:17.62ID:kkMqd6VL0
上司「オーバーヘッドと速度低下おきるからフレームワークは禁止。クラスとMVCは自分で定義してわかりやすくしろ、見本は無い」
2022/12/17(土) 10:51:57.18ID:kvss8RMi0
まずその上司のリファクタリングが必要
2022/12/17(土) 11:02:16.79ID:QDDpMmFH0
ネコの会社
2022/12/17(土) 17:05:55.72ID:PuWdgN410
>>227
リファクタリングって動きは変えないから何も変わらんのでは?
2022/12/17(土) 17:11:12.27ID:on9KAdJq0
テストしやすくなるんでしょ
重要w
2022/12/18(日) 22:34:02.51ID:Sye5af7x0
下らねえ質問はここに書き込みやがれ
2022/12/18(日) 23:07:20.33ID:HXc3HAGH0
file_gets_contentってマジカル変数みたいなの使わないとうまく行かないことがあるけど何か違いあるのかな?
同じフォルダ階層にいるjsonの内容読み取るだけだから必要無さそうな気がするんだが
233デフォルトの名無しさん (ワッチョイ ea97-ZR1D)
垢版 |
2022/12/19(月) 08:00:13.41ID:GcFpX62a0
assert()など、デバッグ用のコードって本実装のとき残しているものなのですか?
それとも削除するものなのですか?
234デフォルトの名無しさん (ワッチョイ 26e7-JDfe)
垢版 |
2022/12/19(月) 09:48:24.14ID:aVzxjlfF0
>>232
マジカル変数ってなに?
バナナと言ったら黄色?
2022/12/19(月) 10:51:17.06ID:+PhZX49Z0
>>234
マジック定数って言うのか!恥ずかしい!!
2022/12/19(月) 11:00:09.40ID:aVzxjlfF0
>>235
それでもまだ意味がわからないんだけど、第二引数のことを言ってる?

つまり、それは、同じディレクトリを探索させたいのに
インクルードパスの探索を指定(true)していて、かつ
インクルードパスにカレントを指定してないって感じか

そう、君のバグです
2022/12/19(月) 11:20:29.71ID:+PhZX49Z0
>>236
第2引数には何も指定してない
同じディレクトリにあるJSONに対して
file_get_contents('hoge.json');
ってやったら戻り値がfalseだった
2022/12/19(月) 11:30:22.81ID:kpBvGP850
多分コレのことだろう
https://bashalog.c-brains.jp/14/07/11-100000.php

だから、絶対パスでの指定が推奨されてて、そのために__DIR__が大活躍する
2022/12/19(月) 16:21:21.04ID:A864IMiY0
>>233
建前としてはDEBUGフラグが立ってる時だけ機能するように作るんだけど
実際は本番実行でも残すよ
2022/12/19(月) 20:04:25.66ID:qVdptYk+0
postの判別を検索したら、php入門なるサイトで
if($_SERVER["REQUEST_METHOD"] = "POST"){
というのがあったので、やってみてもダメだったのが

if($_SERVER["REQUEST_METHOD"] == "POST"){
ならokだったのですが、

php4やphp5の頃は問題が無かったのか、そもそもサイトの情報が間違いなのかどっちなのでしょうか?
2022/12/19(月) 20:41:16.39ID:GWLkdDwg0
そりゃ=は代入だからダメだろw
242デフォルトの名無しさん (ワッチョイ ea97-ZR1D)
垢版 |
2022/12/20(火) 09:14:27.19ID:B/jnFsL10
>>239
ありがとうございます。あと一点質問させてください。
debugならassert()系のメソッド?関数?で事足りるとおもうのですが、
わざわざphpUnitなるライブラリを使う方法もあるそうです。
phpUnitを使うことのメリットがよくわかりません。
どんなことで利点があるかお分かりになれば教えてください。
2022/12/20(火) 10:07:52.67ID:QTfYNwyf0
>>242
多分根本的に間違って理解してると思う
https://speakerdeck.com/twada/php-conference-2016?slide=68
リンクした章を読んでみるとassertの使い方が分かるんじゃないかなぁ
2022/12/20(火) 12:46:29.70ID:cyGUI4Ab0
デバッグを効率的にやりたいだけの話なら
xdebug入れてブレークポイントなどを使う方が良いんじゃない?
2022/12/20(火) 14:33:30.45ID:F+OZA9Ef0
全部デバッグレベルのログで出力してるわ
printfデバッグの上位互換です
本番はログレベル下げるだけだし
2022/12/25(日) 08:18:35.97ID:YjenC8+L0
bashからphpも始めた身ですが、
変数を ${hogehoge} の波括弧でも動作しますが、{$hogehoge}のほうがいいですか?
2022/12/25(日) 08:33:33.01ID:8c2A2dic0
>>246
バージョンによる
以下、8.2以降に関して

https://www.php.net/manual/ja/migration82.deprecated.php

> "${var}" と "${expr}" 形式の文字列への値の埋め込みは、推奨されなくなりました。 "$var"/"{$var}" や "{${expr}}" 形式をそれぞれ使ってください。
2022/12/25(日) 08:44:53.24ID:YjenC8+L0
>>247
php7.4から始めていますが、警告されているのですね
危なかったです・・そのまま使い続けるところでした
2022/12/25(日) 08:49:53.76ID:8c2A2dic0
>>248
教本等での指定がなければ、8.1以降で学習するほうが良いです

https://www.php.net/supported-versions.php

7.4はすでにサポート対象外であり、8.0もアクティブサポートは終わっています
8.0以降で大きく変わった箇所もあるので、教本もできれば8.0以降のものを選ぶのが良いです
2022/12/25(日) 10:30:36.23ID:YjenC8+L0
>>249
ありがとうございます、最新を選ぶのにこしたことは無いのですね。
使わない新機能がたくさんありそうなので初学者には7.4でも同じだと思っていました。
2022/12/26(月) 13:14:09.74ID:9taBvybYa
vendor配下はpushしない人多いと思いますが、例えば10年後にディスク障害で再インストールが必要になった場合に、composer install でちゃんと元通りになるもんなんでしょうか?
古いバージョンのライブラリなどはアーカイブされててinstallがコケそうな気がするんですが。
ちゃんとバックアップとっておいてそこから戻せって話ですかね?
2022/12/26(月) 13:21:51.28ID:/E6J1+u80
まず10年後までアップデートしないで使うのがNGかと
そもそもphpが全然変わってるはず
2022/12/26(月) 15:04:43.24ID:56qYJgfP0
約10年前のLaravel 4もまだリポジトリにあるし
10年くらいじゃ旧バージョンも含めて管理下にあると思ってよいと思う
バージョンが古すぎてcomposer updateが通らなくなることはあっても
composer installは通るんじゃないかな
2022/12/26(月) 15:25:46.38ID:6zrBELjK0
ところがどっこい通りません
2022/12/26(月) 15:53:40.61ID:RVhrOqwEa
vendor配下をプッシュしないのは、composer install で復元出来ることと、容量の無駄遣いってことだと思ってましたがデメリットが容量の問題だけならプッシュしておいた方が何も考えなくて良い感じですかね?
256デフォルトの名無しさん (ワッチョイ 9302-s0Sd)
垢版 |
2022/12/28(水) 18:11:15.40ID:iMra0KKw0
配列の要素数だけを繰り返したいのですが。
これまでforeach文を利用していました。
ですが、その配列の要素を参照するだけでなく、
同じ要素数の別の配列を参照したりしています。
ちょっとforeachではないような気がします。

例えば、以下のような要素数を合わせた配列を
要素番号に沿って同時に処理します。

$color_arr
$body_arr
$subcomment_arry

配列の要素数だけを繰り返す。
という意味でもっとも適した繰り返し文は
何でしょうか?
2022/12/28(水) 18:16:59.77ID:uPVj0Dve0
ちょっと何言ってるかわからない
もう少し具体的なコードなりデータなりで質問すると回答があるかも

あと、配列操作に関しては php は充実しすぎてるんで、以下のリンクも参考に見てみるといい
https://www.php.net/manual/ja/ref.array.php
2022/12/28(水) 20:12:34.76ID:kuotjsyy0
>>256
foreachだよ。
それは構造がおかしい。
セットで使うものなら、 ["color"=>xxx, "body"=>yyy, "subcomment"=>zzz] として最初から纏めておく。
2022/12/29(木) 00:02:29.48ID:CeHhEiXD0
参照に使った変数をunsetし忘れると
マジで意味不明な挙動するよね
あれどうにかなんねーのかな
2022/12/29(木) 00:26:52.03ID:Au5DjajA0
>>259
php.netのforeachに警告として載っているケースなら、変だし糞だけど意味不明ではないね。
https://www.php.net/manual/ja/control-structures.foreach.php
foreachでスコープを作らず、変数宣言もない(=最初の使用が宣言扱い)言語なら、こうなる。
正しい解はforeachでスコープを作り、外側の変数を見えるようにすることで、CやJSやその他言語は勿論そうなってる。
言語としてのPHPは相変わらずぶっちぎりで糞なだけだね。
2022/12/29(木) 01:12:32.11ID:ptlutJts0
そんなにforeachで参照してる配列自体の要素を変更する?
読みづらくなるからワイはしないようにしてるけど
262256 (ワッチョイ 9302-s0Sd)
垢版 |
2022/12/29(木) 02:15:09.37ID:KIQEFzci0
色々とアドバイスありがとうございます。

用途としては、次のようにselectクエリの結果セットを1行づつ$rowに格納して
カラムの値をそれぞれ配列に格納しています。
配列の一つである$ImageId_arrをforeach()で利用して、配列分の値をecho
させています。

本来のforeachの使い方ではなくて、気持ち悪いと思います。

while ($row = $result->fetch_assoc()) {
$ImageId_arr[] = $row["image_id"];
$color_arr[] = $row["color"];
$body_arr[] = $row["body"];
$subcommnet_arr[] = $row["subcomment"];
}


foreach($ImageId_array as $key){
echo "<p>".$ImageId_arr[$i]."</p>";
echo "<p>".$color_arr[$i] ."</p>";
echo "<p>".$body_arr[$i]."</p>";
echo "<p>".$subcommnet_arr[$i]."</p>";
$i++;
}
263デフォルトの名無しさん (ワッチョイ 9302-s0Sd)
垢版 |
2022/12/29(木) 02:17:19.06ID:KIQEFzci0
×
foreach($ImageId_array as $key){


foreach($ImageId_arr as $key){
2022/12/29(木) 04:56:37.27ID:L5ICo1eU0
それなら foreach() でよさげ

$rows = $result->fetch_assoc());
foreach($rows as $row){
echo "<p>".$row["image_id"]."</p>";


}
2022/12/29(木) 05:46:19.92ID:KLxb2KfBa
>>251
Ruby on Rails ではプロは、全てのモジュールを1週間毎に更新する。
もし更新しなかったら、セキュリティーホールから侵入されて、データを抜かれる

例えば、そのサイトのJava のTomcat から、パスワードが抜かれましたとか、
ブラウザから通知が来る

それで、そのサイトがモジュールを更新していない事が分かる
2022/12/29(木) 05:46:19.99ID:KLxb2KfBa
>>251
Ruby on Rails ではプロは、全てのモジュールを1週間毎に更新する。
もし更新しなかったら、セキュリティーホールから侵入されて、データを抜かれる

例えば、そのサイトのJava のTomcat から、パスワードが抜かれましたとか、
ブラウザから通知が来る

それで、そのサイトがモジュールを更新していない事が分かる
2022/12/29(木) 07:40:46.65ID:KLxb2KfBa
Ruby のERB では、<%= 〜 %> で出力される。<% 〜 %> で出力されない。
〜には、Rubyのコード片。
"<p>".$ImageId_arr[$i]."</p>" みたいに、文字列を連結しない

require 'erb'
include ERB::Util

# ERB では、html escape するのに、ERB::Util.h メソッドが必要

html =<<HTML
<% rows.each do |row| %>
<p>aは、<%=h row["a"] %></p>
<p>bは、<%=h row["b"] %></p>
<% end %>
HTML

rows = [ { "a" => "a1", "b" => 1 }, { "a" => "<a2>", "b" => 2 } ]
puts ERB.new( html, nil, "<>" ).result( binding )

出力
<p>aは、a1</p>
<p>bは、1</p>

<p>aは、<a2></p>
<p>bは、2</p>

< が< に、> が> に、エスケープされる
2022/12/29(木) 07:45:09.94ID:KLxb2KfBa
出力
<p>aは、a1</p>
<p>bは、1</p>

<p>aは、& lt;a2& gt;</p>
<p>bは、2</p>

< が& lt; に、> が& gt; に、エスケープされる

便宜上、& の後ろに、空白を入れておく
2022/12/29(木) 08:29:06.21ID:Au5DjajA0
>>261
しないね。
だから昨今の関数型や再代入禁止とかの"正しい"プログラミング流儀に則ってれば、大して問題にならない。
とはいえPHPでは主力ループがforeachだし、
この仕様変更で動かなくなるプログラムが大量にあるとも思えないし、さっさと修正すべきだね。
まあそれ以前の比較や三項演算子を修正してる段階だから、あと10年くらいかかるか?

どうでもいいが珍しくPHP.netの糞な所を見つけた。
最近のこの手のサイトはURLの#xxxで該当部分にすぐ飛べるように<a>を散りばめているが、PHP.netはやってない。
だから260にも記事ページを頭から全部読め、のURLしか貼れなかった。
各ページを頭から全部読んでも問題ない量に抑えるアナログ的解決も素晴らしいが、<a>はやっておくべきだね。
contributeしたいぞと思ってる人はどうぞ。
2022/12/29(木) 08:56:07.28ID:Au5DjajA0
>>262
それを気持ち悪いと感じるのは、君が連想配列やジャグ配列に慣れてないだけだよ。
むしろ普通は、元々一体だった$rowをわざわざバラし、
再度くっつけ直すときにforeachガーとか言ってるそのコードが気持ち悪い。
明らかにやらなくて済むことをやってて文句言ってるだけだし、意味無いだろ。
2022/12/29(木) 12:34:23.96ID:KIQEFzci0
>>264
ありがとうございます。以下のコードですが、

$rows = $result->fetch_assoc();
これだと1レコードのカラムだけをrowsに格納することになります。

それで、
$rows = $result->fetch_all();
にしてみると、全てのレコードを取得できるのですが、
カラムがそのまま連想配列のキーとなりません。

全てのレコードのカラムを連想配列として取得するには
どう記述すればよろしいでしょうか?
2022/12/29(木) 12:44:04.70ID:aUIDokF60
マニュアル読んだ方が早いよ
2022/12/29(木) 12:55:39.42ID:b2cknnYm0
>>271
$rows = $result->fetch_all(MYSQLI_ASSOC);
2022/12/29(木) 13:08:54.14ID:PNv6ubt+d
>>262
264と270の言う通り、二次元配列の理解が足りないんだと思う
二次元配列で扱うようにすれば上手くいくよ

$rows = array();
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}

foreach($rows as $row){
echo "<p>".$row["image_id"]."</p>";
echo "<p>".$row["body"]."</p>";
echo "<p>".$row["body"]."</p>";
echo "<p>".$row["subcomment"]."</p>";
}
2022/12/29(木) 13:58:39.47ID:qAF+l3pr0
>>260
そうそれ
PHP10あたりで変数宣言できるようになんねーかな
そうすればスコープとか効いてくるしバグも減るよな
2022/12/29(木) 14:24:41.49ID:Au5DjajA0
>>274
× 二次元配列
○ ジャグ配列(配列の中の配列)

な。PHPでは(というよりもほぼ全部の言語では)多次元配列はジャグ配列で構成するので、
ほぼ区別する必要はないが、逆に言えば、ここで引っかかってる時点で256はPHP出身ではない。
今時、連想配列を使えない言語なんてCくらいしかないので、おそらく256はC(かその程度の原始的な言語)出身。
だから添字は数字のみ、と考えてああいうコードになってる。
Cにはforeachも無いので、使い方にも悩むことになる。
で、Cの場合は多次元配列はジャグ配列以外でも実装出来る
(というよりCで多次元配列と言うとジャグ配列じゃない物を指す)ので、
256に対してその言い方だと誤解を招くかもしれないので、
この辺まで見えてたら非PHP用語使ってあげて。
2022/12/29(木) 14:57:10.69ID:Au5DjajA0
>>275
結局のところ、スクリプト言語=お手軽に使える言語=大きいのを作るのには無理がある、ってだけだな。
JSはまだマシだが、PHPではかなり無理がある。

変数宣言は、ワンライナーをやる場合は壮絶にウザイが、PHPではこの点は問題ない。
ただ、過去のコードが使えなくなるのは大問題なので、現実的にはTSのようにビルド時の対応しか出来ないだろう。

個人的には、Array. String周りの関数の引数の順や名前や挙動とかマトモに整理してくれよ、と思う。
PHPが主力言語な連中なら全部覚えればいいのだろうが、そうではないので、一々毎回引き直して引っかかって不快感半端ない。
(じゃあLaravel使えではあるが、実際わざわざ導入するほどそれらの関数を使いまくることもないので中途半端で困る)
逆に、スコープ周りとかはポンコツではあるが一貫性はあるので、それほどストレスは感じない。
2022/12/29(木) 18:03:16.58ID:9qmzIgrL0
phpでHTML中に<?php echo $変数名 ?>使わずに表示出来る簡易方法ってどうやるんだっけ?
2022/12/29(木) 19:04:00.81ID:qAF+l3pr0
>>278
<?= $unko ?>
2022/12/29(木) 19:04:47.25ID:qAF+l3pr0
消えた
イコールを使う
2022/12/29(木) 19:10:26.77ID:9qmzIgrL0
>>279
ぉぉ、ありがとう
282デフォルトの名無しさん (アウアウアー Sa83-XvWy)
垢版 |
2022/12/30(金) 06:55:15.99ID:jSAhgQsba
ログイン画面の練習をしるけど
pdoでbindParamするなら$_POST["mail_address"]をそのまま使ってprepare, executeしてもSQLインジェクションや他の心配は無いの?
2022/12/30(金) 08:47:22.73ID:PltrrzPa0
SQLインジェクション対策の観点では基本的に安全です
ただし、ごく限定的な場面において問題になります

ごく限られた場面の例はこちら
https://blog.tokumaru.org/2010/07/pdo-shiftjis-sqli.html
今となってはほんとに限定的ですが

ただ、一般的にPOSTされたパラメータをそのまま使用するケースはなくバリデーションして使用します
そのまま使用することでシステムとして不適切なパラメータをDBに保存する可能性があり、最悪システムに脆弱性を潜ませる原因となります
2022/12/30(金) 09:51:16.89ID:O9ibooQq0
まあ面倒なのでDBに入れる前に適当に正規化しちゃうよな
285デフォルトの名無しさん (アウアウクー MM23-XvWy)
垢版 |
2022/12/30(金) 09:59:30.47ID:BxxG/FrZM
>>283-284
ありがとう、ログインの情報だけなのでDBにはselectしか使わないので
postされたものはhtmlspecialcharsだけ通した変数名を
bindParamに使おうと思ったけど合ってますか?

色々なやり方があってたくさんのコードに心折れそうになるわ
どれも動く例だとは思うけど何がベストに近いか判別する能力が無いのがつらい
2022/12/30(金) 11:47:17.35ID:PzTBwVTC0
>>285
> 何がベストに近いか
そりゃLaravelでしょうよ。

> postされたものはhtmlspecialcharsだけ通した
フレームワークレスでやるにしても、これは違うだろ。
htmlspecialcharsは将来的にHTML(またはXML)で表示する用であって、
ログインアカウントにメアドを使う場合、そのメアドをHTMLで表示することはないので、意味がない。
普通はfilter_inputでバリデーションして、生でDB登録では?
(ただしDBの中身をエスケープ済みで統一するというのも一つの手法ではあるが)

まあ俺はWeb系ではないから、他の人の意見も聞くべきだが、普通に考えれば、
・ベストな手法を使いたい→Laravel使え
・ベストな手法を知りたい→Laravelの中のログイン関連のコードを読む
だと思うよ。
ググって出てくる個人レベルのコードは、Web系の場合はほぼ全部ゴミ(間違いが多すぎ)なので、
むしろ落とし穴でしかないし。少なくとも"俺様の凄いコード"系ではなく、多数派を採用するべきだ。
あと、IDE(かリンター)使えば勝手に怒ってくるから、そこを全部言われたとおりに直すとか。

まあ真面目にPHPで何か作るつもりで練習してるのなら、最初からLaravelも現状況では有りだと思うけど。
2022/12/30(金) 12:45:56.93ID:LKp8uG8e0
うざっ
2022/12/30(金) 14:24:19.84ID:qIyy1X7s0
bindvalueの方が5C問題とか起きにくいんじゃね?(よっぽど無いと思うけど)
2022/12/30(金) 15:39:02.23ID:PzTBwVTC0
>>287
まあゆとりにはそう思えるのだろうね。


しかし、実際、256にしても285にしても、最初から間違ってるじゃん。
> 色々なやり方があってたくさんのコードに心折れそうになるわ
頑張って勉強してますアピールご苦労様だが、実際の所、

・ログインアカウントにメアドを使います ←分かる
・アカウントはDBにhtmlspecialcharsして登録しておきます ←は?

後者のサンプルコードなんて、俺は見たこと無いけどね。
285は学んでるフリだけしてオレオレ流でやってる、
ある意味まんさん的な「レシピ通りやってるんだけど…」(やってない)そのものだ。
こんな事では上達はしないし正しいコードにもならないから、
最初から全否定してやるのが本人の為だと思うが。
(256も同様。普通にDB内容をechoする例をググれば、ほぼ全部264や274のコードのはず。
だから262のコードは一度もググらずに本人がさらっと書いたコードだと分かる。
それは本人はプログラミング出来てるつもりだから、つまり他言語である程度出来るし自信もあるからだが、
いやお前全然足りてないし話にならないよ、とは言ってやらないと駄目だろ。
さすがにリアルでは無理があるにしてもさ)


というのは「内容が間違ってようが優しい方が正義だ!」なゆとりには通じないのは知ってる。
というわけで、しばらく撤収するわ。精々盛大に空回りするんだね。
この板のレベルがゴミになったのは、この「ゆとり気質」によるものがかなり大きいと思うよ。
個人で頑張ったところでどうにもならないけどさ。
しかしせめて、自覚があるのだから、誰かがやってる手法をなぞれよ、とは思うよ。
何故そこでいきなりオリジナリティぶち込むかね?コピペ駄目!絶対!の行き過ぎか?
2022/12/30(金) 18:20:28.92ID:P3987fug0
キチガイワロタw
291デフォルトの名無しさん (アウアウクー MM23-XvWy)
垢版 |
2022/12/30(金) 19:12:38.17ID:BxxG/FrZM
>>284
すいません、変数の内容を正規化というのはどういう意味?
全角英数を半角にするとか、htmlspecialcharを通すとか?
2022/12/30(金) 19:19:39.32ID:PzTBwVTC0
>>290
ぼくといけんがことなるひとはぜんいんきちがい!
というのは、典型的ゆとりムーブだな。


ただそんなんだから、お前らゆとりはゆとりだけで安住出来る場所を維持出来ないんだよ。
そもそもお前らが老害と蔑む連中が大量にいるここに出張ってくることしか出来なくなってるのが間違ってる。
世代的にはもうゆとりにも熟練者が大量にいるはずだし、掲示板のコード自体は簡単だから、
ゆとりが作ってゆとりが運営するゆとり掲示板でプログラミング情報の交換は適正に行えるはずで、
それが素晴らしく機能し、
俺らがそこに出張っていったら「老害来んな!」と追い払われるのが本来あるべき展開だよ。
そうならないのは、ゆとり全体に老害ならぬ「ゆとり害」が蔓延ってるからだ。

お前らは自覚出来てないのだろうが、287や290のような典型的ゆとりムーブがコミュニティを破壊する。
ただ、256も285も酷いが。ググって出てきたコード通りにやったらその結論にはならんだろ、でしかない。
お前ら質問を装っているだけで、正しい答えを知りたがっているわけではないだろ。
そういうのはコミュニティを疲弊させる。
Qiitaが掲示板みたいな機能付けたけど収拾付かなくなって削除したんじゃなかったっけ?
お前ら見てるとまあ納得だよ。
ただ本来は、Qiitaの掲示板がバリバリに機能して、俺らが押し掛ける側になるべきだった。
そうならなかったのは、お前らゆとり全体に問題があるからだよ。
2022/12/30(金) 20:55:14.08ID:kXS4eEBid
「変数の内容を正規化」というのが、ユーザーの入力データを勝手に修正することなら
悪手のような気がするけどね
要件を満たさないならエラーにするべきでしょ
2022/12/30(金) 22:16:56.61ID:KyAw5omf0
キチガイ激おこw
2022/12/31(土) 00:35:38.12ID:X7WB85940
まあ5chに居るゆとりは全員寄生虫根性のキチガイだから
何度言っても全く聞く耳持たれないのも分かるんだけどさ。

少しでもマトモならもっと若いSNS(≒自分達の世代が主力の場所)を盛り上げようと努力する。
ググったらQiitaでは何度か炎上騒ぎもあったみたいで、
順当に考えてそっちに参戦してるのがマトモなゆとりで、
上の世代が大量にいると知ってて5chに来て、
悪態をつきながらも出て行きもせず、改善の努力もしない、ここにいるゆとりは、
寄生虫韓国人と同様、死ねでしかないよ。

とはいえ、クズゆとりをこちらに切り離した状態でも成立しないのだから、
まじでゆとり世代はかなりヤベーと思うけどな。
2022/12/31(土) 01:12:41.10ID:JNZhSZTU0
>>293
電話番号を半角で入力させるとこで全角ぶち込まれたら
勝手に半角にしてハイフンやかっこも取り外してやんのが
江戸っ子のフロントエンドの正規化の心意気ってもんよ
297デフォルトの名無しさん (ワッチョイ 6301-9yt5)
垢版 |
2022/12/31(土) 02:53:48.51ID:TeLjBPNY0
じゃあ江戸時代の電話番号が来たらどうするんだよ?
298デフォルトの名無しさん (ワッチョイ 1aad-0ejh)
垢版 |
2022/12/31(土) 06:30:53.75ID:FohLv0kz0
なにもかもがうろ覚えなので申し訳ないのですが、
テレグラムのような密告用、告発用のツールだかソフトウェアだかを作り
その後、強姦かなにかをやってフランスかどこかで逮捕された
プログラマーのことを思い出せません
彼の名前と作成したツールの名前を教えて欲しいです
ちなみに彼は白人です
2022/12/31(土) 09:54:11.95ID:uLO3zrOn0
キチガイワロタw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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