2016-04-14 17 views
1

Ich versuche sql Injektion zu verhindern. Mein Code ist wieFragen über SQL-Injektion

$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(); 

folgt Aber ich weiß nicht, was wie dies mit einer Linie zu tun:

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

Wo definiere ich diese Variablen wie $txtBlock und wie verbinde ich meine input Namen für den PHP-Code?

+0

Sie haben die Variable bereits für Ihre Anfrage definiert! Erhalten Sie einen Fehler? –

+0

@RonakPatel Hallo Ronak, jemand hat das Problem weiter unten verfolgt und es ist jetzt gelöst, aber danke für deine Hilfe! –

+0

@ J.Doe Wenn es gelöst ist, bitte die Antwort als akzeptiert markieren. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – chris85

Antwort

2

Sie können diese Variablen so definieren, wie Sie möchten. Wenn Sie ein Formular wie verwenden:

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

dann auf der Seite process.php, können Sie alle Variablen durch die $_POST global zugreifen. So, um die Daten aus dem Feld example zu erhalten, und weisen Sie es $txtBlock, können Sie tun:

$txtBlock = $_POST["example"]; 

In Bezug auf die SQL-Injection, haben Sie Ihre Abfrage und gebundene Variablen, um es bereits vorbereitet. Es besteht keine Notwendigkeit, sich weiter um die Bereinigung von Eingaben zu kümmern. Ich finde die following resource hilfreich, wenn Sie über PDO sprechen.

+0

Ah. So ist es also. Okay, du hast mir dabei einen Schritt weitergeholfen. Vielen Dank. Ich war ein wenig verwirrt, weil die Leute mit diesen Skripten so extrem vorsichtig sind, dass ich nicht wusste, was ich tun sollte. –