ホームページ >バックエンド開発 >PHPチュートリアル >[共有] フォームパラメータと URL パラメータを処理する実用的な方法を考えたことはありますか?

[共有] フォームパラメータと URL パラメータを処理する実用的な方法を考えたことはありますか?

WBOY
WBOYオリジナル
2016-06-23 13:52:11816ブラウズ

多くのパラメーターの送信を処理していると、データベースのクエリや挿入などの操作が発生する場合があります。
このとき、エスケープまたは実体化する必要があります
セキュリティに詳しくない PHP 初心者の場合は、次のようにクエリステートメントを作成しますby

$sql="select * from demo where user='".$_POST['user']."'"";

そこでSQLインジェクションの危険性があります
一般的に、ある程度経験のある人はこのようなクエリ文を書きます
$sql="select * from demo where user='".addslashes($_POST['user'])."'"";

このように書いても問題ありませんが、
1. 専門的ではないように見えます
2. 多すぎますステートメントを一つ一つ書くのは面倒だし、何かを見落とすのは避けられない

もし私が今持っている知識でこのステートメントを書くとしたら、まだ書くだろう
うわー
でも私は初心者ではないので
付け加えておきますフォーム処理ファイルの先頭にある文、
$sql="select * from demo where user='".$_POST['user']."'"";


実際のソースコード例
$_POST=array_map("addslashes",$_POST);

印刷結果
";var_dump($_POST);?>


ディスカッションへの返信 (解決策)

Please call me live Lei Feng

フォームの場合同じ名前のコントロールがある場合、 $_POST=array_map("addslash es" ,$_POST); これで終わりですよね? Live Lei Feng

フォームに同じ名前のコントロールがある場合、$_POST=array_map("addslashes",$_POST); は終わりです

そうですね? Live Lei Feng

同じ名前のフォーム コントロールは何を指しますか? 例を挙げてみましょう
最も簡単な答えはチェックボックスです a025f37ecdef59c144fec6cc96250cdb type=チェックボックス名 =c[] 値=2>

2896c56776493dba703d4eff663a6514
8d2ae5acc79dfa98006433d92204271c答え 1
78152cf6ef7bf661a1559f33ba832c47答え2
b53e6534439e155cc1cec1f2b42e7efc答え3

同名のテキストコントロールは回避可能
ですが、チェックボックスは回避できません


試してみましたが、案の定、よく考えていませんでした。今後この問題に注意する必要があります

最も簡単な答えはチェックボックスです

a3c58a2cc2a86681e7475593029d8236

8d2ae5acc79dfa98006433d92204271c
e212cb288e6fa6eb08d0533df686a465回答2
b53e6534439e155cc1cec1f2b42e7efc回答3

同名のテキストコントロールは避けられますが
、チェックボックス避けられません


頑張れ、雷峰。

だから私はこのように書かなければなりません

array(2) {  ["user"]=>  string(4) "demo"  ["content"]=>  string(18) "Hello,It\'s a book"}
$a = array(  'a' => "a'b",  'b' => array("C'd", 123));array_walk_recursive($a, function(&$v) { $v = addslashes($v); });print_r($a);

??その方法は素晴らしいです、私は前にそれを考えました???

共有していただきありがとうございます。

思い切って集めてください

だから、こうやって

Array(    [a] => a\'b    [b] => Array        (            [0] => C\'d            [1] => 123        ))
$a = array(  'a' => "a'b",  'b' => array("C'd", 123));array_walk_recursive($a, function(&$v) { $v = addslashes($v); });print_r($a);
と書かないといけないんです

書き方が間違っていてプロンプトがエラーになるということです

この神様、久しぶりです、本当に何人いるのか知りたいですエレガントなフレームワークをダウンロードしましたか?どのバージョンにアップグレードされましたか ...また、感心できる JavaScript の奥深い作品はありますか?

この神様、久しぶりです。あなたのエレガントなフレームワークを何人の人がダウンロードしたのか、またどのバージョンにアップグレードされたのかを知りたいです...また、私が賞賛できる JavaScript の高度な作品はありますか?

私はもうフレームワーク レベルには執着していません。フォーラムではまだどのフレームワークが良いか悪いかを議論している人がいます。

js プラグイン、ポップアップ ウィンドウ http://tip.youyax.com/ を試すことができます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。