if (get_magic_quotes_gpc()) {
foreach($_POST as $i=>$var) $_POST[$i]=stripslashes($var);
foreach($_GET as $i=>$var) $_GET[$i]=stripslashes($var);
}
Magic Quotes are Evil!
D'autant plus que ce ne sera plus par défaut dans la prochaine version me semble-t-il.yann214 a dit:Maintenant que PHP met par défaut des \ devant toutes les apostrophes, antislashes, etc. des variables passées en GET, POST ou Cookies, faut-il encore se méfier des injections mysql ?
<?php
if (isset($_POST['product_name']) && isset($_POST['product_description']) && isset($_POST['user_id'])) {
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
if(!is_resource($link)) {
echo "Échec de la connexion au serveur\n";
// ... historisation de l'erreur
} else {
// Annule les effets magic_quotes_gpc/magic_quotes_sybase sur ces variables si ON.
if(get_magic_quotes_gpc()) {
$product_name = stripslashes($_POST['product_name']);
$product_description = stripslashes($_POST['product_description']);
} else {
$product_name = $_POST['product_name'];
$product_description = $_POST['product_description'];
}
// Faire une requête sécurisée
$query = sprintf("INSERT INTO products (`name`, `description`, `user_id`) VALUES ('%s', '%s', %d)",
mysql_real_escape_string($product_name, $link),
mysql_real_escape_string($product_description, $link),
$_POST['user_id']);
mysql_query($query, $link);
if (mysql_affected_rows($link) > 0) {
echo "Produit inséré\n";
}
}
} else {
echo "Remplissez le formulaire proprement\n";
}
?>