Possible Duplicate:
Best way to prevent SQL Injection in PHPPHP/MySQL - Najlepsze wykorzystanie i praktyka uciekających ciągów
Jaki jest najlepszy sposób na ucieczkę ciągi podczas wykonywania kwerendy? mysql_real_escape_string() wydaje się być dobry, ale nie wiem dokładnie, jak go poprawnie używać.
Czy ten kod poprawnie wykonuje zadanie?
<?php
/* Let's say that the user types "'#""#''"\{(})#&/\€ in a textfield */
$newStr = mysql_real_escape_string($str);
$query = "INSERT INTO table username VALUES ($str)";
mysql_query($query);
?>
EDIT:
Teraz mam ten kod:
$email = $_POST['email'];
$displayName = $_POST['displayName'];
$pass = $_POST['pass1'];
$email = mysqli_real_escape_string($link, $email);
$displayName = mysqli_real_escape_string($link, $displayName);
$pass = mysqli_real_escape_string($link, $pass);
$insert = "INSERT INTO profiles (email, displayName, password)
VALUES ('$email', '$displayName', md5('$pass'))";
mysqli_query($link, $insert)
or die(mysqli_error($link));
Ale otrzymuję ten błąd: masz błąd w składni SQL; sprawdzić podręcznika, który odpowiada twojej wersji serwera MySQL dla prawego składnię używaną w pobliżu '! "# #! ^!" #! " #!" #^'' '' '' w linii 1
Jeśli użytkownik wprowadza: '**!' #! # ^! "#!" * #! "#^'' ''
'mysql_ *' funtions wkrótce będą przestarzałe. Użyj [PDO] (http://php.net/manual/en/book.pdo.php) lub [MySqli] (http://php.net/manual/en/book.mysqli.php). – Lion