Php

bonjour

aide moi

j'ai réaliser un livre d'or
mais le probleme que quand je saisi un message avec un quote par exemple (l'ombre) il m'affiche un erreur
s'il vous plait aide moi

<?
include ("connect1.php");
$nom = $_POST["nom"];
$email= $_POST["email"];
$message=$_POST["message"];
$req="INSERT INTO cellule ( nom, email, message) VALUES ( '$nom', '$email', '$message')";
$res=mysql_query($req);
if($res==false)
{
echo"erreur SQL.<br>$req<br>";
echo mysql_error();
die();
}
?>

2 réponses

  1. tu connait addslashes ??
    en fait il va mettre un \ devant chaque ' et donc ca va passer
    parcontre il faudrat mettre stripslashes pour les viré avant l'affichage

    donc plusieurs possibilité dont :
    <?
    include ("connect1.php");
    $nom = $_POST["nom"];
    $email= $_POST["email"];
    $message=$_POST["message"];
    $msg = addslashes($message);
    $req="INSERT INTO cellule ( nom, email, message) VALUES ( '$nom', '$email', '$msg')";
    $res=mysql_query($req);
    if($res==false)
    {
    echo"erreur SQL.<br>$req<br>";
    echo mysql_error();
    die();
    }
    ?>

    tu peut aussi mettre le addslashes dans la requête :D
    sources : http://fr2.php.net/manual/fr/function.addslashes.php
    1. stripslashes est optionnel si l'affichage est réalisé par echo de PHP. En effet, PHP va automatiquement gérer les slashs mais c'est toujours bien d'y penser :)