Stripslashes ou addslashes sans effet
Résolu
philippe fontayne
-
philippe fontayne -
philippe fontayne -
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.
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
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:
- Stripslashes ou addslashes sans effet
- Effet miroir word - Guide
- Effet miroir photo - Accueil - Photo
- Effet miroir telephone - Guide
- Effet ralenti video - Guide
- Photo effet dessin gratuit - Télécharger - Retouche d'image
1 réponse
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
É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
philippe fontayne
Merci Pitet ça marche impeccable. Je ne sais pas pourquoi je ne l'avais pas mis pour le textarea !!