[過去ログ] 【PHP】下らねぇ質問はここに書き込みやがれ 14 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
19: (ワッチョイ c77b-dQvS) 2022/09/30(金)17:18 ID:3aBoBWM+0(1/3) AAS
>>16
宿題は自分でやれ
20: (ワッチョイ dee7-tX/F) 2022/09/30(金)17:22 ID:tV+EdovX0(2/2) AAS
>>18
POST側も確認しなきゃ意味ないだろ
21(1): (ワッチョイ 527c-tX/F) 2022/09/30(金)17:22 ID:NBzDpu1o0(1/2) AAS
bin2hex($pw)
と
bin2hex($_POST['pass'])
で表示してみたら違いが分かるかも?
22: (ワッチョイ d697-uxQy) 2022/09/30(金)17:26 ID:anKKL5Vh0(3/6) AAS
$_POST側も目印を入れました。
実行すると以下のようになります。
----
phpコード
print "<ul>";
print "<li>".$id;
print "<li>".$_POST['login_id'];
print "<li>".($id===$_POST['login_id']);
print "<li>".$pw;
print "<li>"."---".$_POST['pass']."---";
省10
23: (ワッチョイ d697-uxQy) 2022/09/30(金)17:31 ID:anKKL5Vh0(4/6) AAS
>>21
神
ありがとうございます!
違いが出てきました。!!!
bin2hex()を調べてみます。
----
phpコード
print "<ul>";
print "<li>".$id;
print "<li>".$_POST['login_id'];
省13
24: (ワッチョイ 527c-tX/F) 2022/09/30(金)17:36 ID:NBzDpu1o0(2/2) AAS
0x20(スペース)が入っているね
トリムしてもいいならtrim()で前後のスペースを除去する事も可能
25: (ワッチョイ 96bb-nd6Q) 2022/09/30(金)17:36 ID:HxNT59pn0(1) AAS
POSTがおかしいね
' test'になってる
26(1): (ワッチョイ d697-uxQy) 2022/09/30(金)17:44 ID:anKKL5Vh0(5/6) AAS
おっしゃるとおりです。
フォームに半角スペースが含まれていました。
これに気づかず数時間ハマってました。
ありがとうございました。
----
ブラウザ表示
・1234
・1234
・1
・74657374
省2
27: (ワッチョイ c77b-dQvS) 2022/09/30(金)18:20 ID:3aBoBWM+0(2/3) AAS
>>26
やってる事がおかしい事に気づけ
IDEでブレークポイント当てれば1分で自力解決出来た案件だ
そもそもprintではデバッグにならないし、<li>も駄目だし
28(1): (ワッチョイ d697-uxQy) 2022/09/30(金)21:41 ID:anKKL5Vh0(6/6) AAS
そうですね。
これを機にSublimetextから、ちゃんとしたIDE環境で作業するよう考えてみます。
vscodeがいいのかな。
29: (ワッチョイ c77b-dQvS) 2022/09/30(金)22:25 ID:3aBoBWM+0(3/3) AAS
>>28
実際のソース変更は慣れたエディタを使いつづけて問題ないが、
ブレークポイント当ててステップ実行出来るデバッグ環境は立ち上げておくべき
一般的にはVSCodeでいいんじゃね?呪文が必要らしいが(以下参照)
外部リンク[html]:atmarkit.itmedia.co.jp
30: (ワッチョイ 632c-kE2G) 2022/10/02(日)00:51 ID:Omlyv0OK0(1) AAS
Ruby on Rails では、組み込みRuby・ERB で、HTML ファイルを書く
文字列を結合して、HTML片を作ってはならない。
相手が、script タグなどを送ってきて、それで危険なJavaScript を実行されてしまうから
だから逆に、<% 〜 % <%= 〜 %> を使って、HTML内にRubyの構文を書く
<% price = 2500 * 1.05 %>
<p>
本の値段は<%= price %>円です。
</p>
こうすると、< > & " など、HTMLの特殊文字がエスケープされて、scriptタグも実行されない
31(2): (ワッチョイ cf97-o1nH) 2022/10/03(月)22:50 ID:ZWE2UPrr0(1) AAS
mysqliで、queryメソッドに格納するクエリ文なのですが。
文字列の囲いはどっちがいいですかね。。
$insert = "INSERT INTO product(product_id,product_code,product_name,price,category_id) VALUES(21,2000,\"三菱えんぴつ\",100,1)";
$insert = "INSERT INTO product(product_id,product_code,product_name,price,category_id) VALUES(21,2000,'三菱えんぴつ',100,1)";
32: (ワッチョイ cfbb-tfD/) 2022/10/03(月)22:57 ID:IWMZiHvT0(1) AAS
どちらでも好きな方で
外部リンク[html]:dev.mysql.com
33: (ワッチョイ e3da-OAEy) 2022/10/03(月)23:12 ID:G1EEp94o0(1) AAS
>>31
外側をシングルクォートにしますかね
うっかり変数展開を使わないよう鉄下駄を履くイメージで
34: (ワッチョイ ff7c-pIDl) 2022/10/04(火)00:00 ID:nXyy/Qec0(1/2) AAS
mysqliを使わずにPDOを使いprepare()などを使った方が良いのでは?
35(2): (ワッチョイ cff8-8Lq0) 2022/10/04(火)00:03 ID:m1wIfZza0(1) AAS
完全に内部処理だけの場合だと
別にプレースホルダー使う必要ってないの?
念には念を入れておくべきなの?
36(1): (ワッチョイ cfbb-tfD/) 2022/10/04(火)00:18 ID:GRVyRRF90(1/5) AAS
>>35
プリペアドステートメント(プレースホルダ)の「本来の役割」はデータ部分を除くSQLを事前コンパイルしてデータをバインドすることによりパフォーマンスを向上させることです
そのため、パフォーマンス観点で使うことがあります
内部処理というのが何を指すのか不明ですが、セキュリティ観点で見た場合、文字リテラルをわざわざ変数に入れてバインドする必要はないです
ただ、変数に入っているものであれば文字連結でSQLを作るよりプリペアドステートメントを使用することをおすすめします
プリペアドステートメントを使用すれば、引用符は自動で付加されるので >>31 のような悩みはなくなります
また、何より後で読んだときに「アレ?」って悩まなくて良いです。
37: (ワッチョイ 037b-jS/a) 2022/10/04(火)00:44 ID:77RhElC90(1) AAS
>>35
外部に公開しない内部専用の鯖でもSQLインジェクション対策が必要かという意味なら、必要だよ。
悪気はなくとも、意図的でなくとも、フォームに間違った内容をコピペする事はある。
その場合に偶々変な文字列が入ってたらDBが破壊される事があります、では駄目だろ。
38: (ワッチョイ cf97-o1nH) 2022/10/04(火)02:02 ID:m6zUfl020(1/2) AAS
ありがとうございます。
参考になりました。
上下前次1-新書関写板覧索設栞歴
あと 964 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.011s