2016-04-14 13 views
1

SQLインジェクションを防止しようとしています。SQLインジェクションについての質問

$stmt = $db_connection->prepare("INSERT INTO users (user_name,user_password_hash,user_email,user_firstname,user_lastname,user_registerip,user_lastip,user_created,user_rank,user_block) VALUES (:user_name, :user_password_hash, :user_email, :user_firstname, :user_lastname, :user_registerip, :user_lastip, :user_created, :user_rank, :user_block)"); 
$stmt->bindParam(':user_name', $txtName); 
$stmt->bindParam(':user_password_hash', $txtPassword); 
$stmt->bindParam(':user_email', $txtMail); 
$stmt->bindParam(':user_firstname', $txtFirst); 
$stmt->bindParam(':user_lastname', $txtLast); 
$stmt->bindParam(':user_registerip', $txtRIP); 
$stmt->bindParam(':user_lastip', $txtIP); 
$stmt->bindParam(':user_created', $txtCreated); 
$stmt->bindParam(':user_rank', $txtRank); 
$stmt->bindParam(':user_block', $txtBlock); 
$stmt->execute(); 

を次のように私のコードがあるしかし、私はこのような行で何をするか分からない:

私は、このような $txtBlockとして、これらの変数を定義しないとどのように私は私の inputを接続するのです
$stmt->bindParam(':user_block', $txtBlock); 

PHPコードの名前?

+0

あなたはすでにクエリに変数を定義しています!何かエラーがありますか? –

+0

@RonakPatelこんにちはRonak、誰かが以下の問題をフォローアップし、今解決されましたが、あなたの入力に感謝! –

+0

@ J.Doe解決された場合は、回答を受け入れたものとしてマークしてください。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – chris85

答えて

2

これらの変数を好きなように定義することができます。あなたのようなフォームを使用している場合は、次のページprocess.phpに続いて

​​

、あなたはグローバル$_POSTを通じて変数のすべてにアクセスすることができます。だから、フィールドexampleからデータを取得し、$txtBlockに割り当て、あなたが行うことができます:

$txtBlock = $_POST["example"]; 

SQLインジェクションの面では、あなたはすでにそれにあなたのクエリとバインドされた変数を用意しました。入力をさらに念入りにすることを心配する必要はありません。私はfollowing resourceがPDOについて話すときに役に立ちます。

+0

ああ。だからそれはそうです。さて、あなたは私にこれをさらに進歩させました。ありがとう。私はちょっと混乱しました。なぜなら、人々はこれらのスクリプトを非常に慎重に扱い、私は何をすべきか分からなかったからです。 –