Stripslashes ou addslashes sans effet

Résolu/Fermé
philippe fontayne - 3 nov. 2015 à 09:58
 philippe fontayne - 3 nov. 2015 à 10:45
Bonjour,
Dans mon formulaire j'ai des input type="text" et un textarea.
Ce formulaire sert à envoyer un message.
Pour éviter que le formulaire soit envoyé 2 fois je fais une requête SELECT.
Si le même texte n'existe pas alors je fais une requête INSERT INTO.

Mon problème se situe au niveau du textarea.
Si je ne fais pas de requête SELECT mais directement une requête INSERT INTO je n'ai pas de problème même si dans le textarea il y a des apostrophes. Mais si je fais cette requête SELECT alors ça plante.


else if (empty($message)){
//teste si le même message est déjà dans la base
$montexte = stripslashes($montexte);
$requete = "SELECT * FROM messages WHERE date = '$my_date' AND emetteur = '$emetteur' AND texte = '$montexte'";
$resultat = $mysqli->query($requete) or die ('Erreur '.$requete.' '.$mysqli->error());
if (mysqli_num_rows($resultat) > 0){
$message = "Ce message est déjà enregistré !";
}
else {
$objet = mysqli_real_escape_string($con,$_POST['objet']);
$nom = mysqli_real_escape_string($con,$_POST['nom']);
$prenom = mysqli_real_escape_string($con,$_POST['prenom']);
$montexte = addslashes($montexte);
$requete = "INSERT INTO messages (id, date, heure, nom, prenom, emetteur, objet, texte)
VALUES('','$my_date','$my_time','$nom','$prenom','$emetteur','$objet','$montexte')";
if (mysqli_query($con, $requete)) {
$message1 = "Merci pour votre message, nous vous répondrons dans les meilleurs délais";
} else {
$message = "Message non enregistré. Merci de vérifier votre saisie";
}
mysqli_close($con);
}
}
?>

<p>
Objet du message :  <INPUT type="text" value="<?php echo stripslashes($objet); ?>" name="objet" size="39"><br />
</p>
<textarea name="textemessage" rows="15" style="width:440px; font-size:13px"><?php echo stripslashes($montexte); ?></textarea><br>


je précise que j'ai fais une recherche des magic_quotes sur php.ini mais je n'ai rien

si quelqu'un peut m'aider !!
Merci d'avance
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
3 nov. 2015 à 10:26
Salut,

Évite l'utilisation de addslashes ou stripslashes. La seule fonction à appliquer à tes variables avant de les utiliser dans une requête sql est mysqi_real_escape_string().

Bonne journée
0
philippe fontayne
3 nov. 2015 à 10:45
Merci Pitet ça marche impeccable. Je ne sais pas pourquoi je ne l'avais pas mis pour le textarea !!
0