2016-04-14 6 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(); 

Но я не знаю, что делать с линией, как это:

$stmt->bindParam(':user_block', $txtBlock); 

Где я определяю эти переменные, такие как $txtBlock и как подключить input имена для кода PHP?

+0

Вы уже определили переменную в своем запросе! Вы получаете какую-либо ошибку? –

+0

@RonakPatel Привет, Ронак, кто-то следил за проблемой ниже, и она решена сейчас, но спасибо за ваш вклад! –

+0

@ J.Doe Если это решение, пожалуйста, отметьте ответ как принятый. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – chris85

ответ

2

Вы можете определить эти переменные так, как вам нравится. Если вы используете форму, как:

<form action="process.php" method="POST"> 
    <input name="example" type="text"> 
    <input type="submit"> 
</form> 

Затем на странице process.php, вы можете получить доступ ко всем переменным через $_POST глобальной. Таким образом, чтобы получить данные из поля example и назначить его $txtBlock, вы можете сделать:

$txtBlock = $_POST["example"]; 

В терминах SQL инъекции, вы подготовили запрос и связанные переменные к нему уже. Нет необходимости беспокоиться о дальнейшей дезинфекции материалов. Я нахожу полезный following resource, говоря о PDO.

+0

Ах. Так оно и есть. Хорошо, ты помог мне сделать еще один шаг вперед. Благодарю. Я был немного смущен, потому что люди настолько осторожны с этими сценариями, что я не знал, что делать. –