comment autoriser les caracteres: apostrophe ' et slash /

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comment autoriser les caracteres: apostrophe ' et slash /

par tanoor » 28 oct. 2005, 17:41

$sql = "INSERT INTO news VALUES('id','$now','".addslashes($qui)."','".addslashes($titre)."', '".addslashes($message)."')";

Utiliser plutôt 'mysql_real_escape_string' si ta base de données est du mysql. Elle est plus adaptée que 'addslashes' car elle ne protège que les caractères spéciaux pour mysql.


Par contre, si tu as les 'magic_quotes_gpc' à on, tu dois d'abord faire un stripslashes sans quoi tes variables seront protégées deux fois.
Pour plus d'informations, je te conseille vivement d'aller voir l'url suivante:
http://fr3.php.net/manual/fr/function.m ... string.php

par philoult » 28 oct. 2005, 16:28

nickel, ça fonctionne .
moi j'avais essayé avec le htmlentities mais ça marchait pas.

Merci encore.

par x0s » 28 oct. 2005, 15:31

$sql = "INSERT INTO news VALUES('id','$now','".addslashes($qui)."','".addslashes($titre)."', '".addslashes($message)."')"; 
http://fr.php.net/manual/fr/function.addslashes.php

par philoult » 28 oct. 2005, 15:27

en fait le pb est:
j'ai une premiere page dans laquelle je rempli mon formulaire:

Code : Tout sélectionner

<head> <title>Entrer une nouvelle info</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <form method="post" action="nouvelle_news.php"> <div align="center"> <table width="624" border=0"> <tr> <td width="80"><font face="Comic Sans MS">qui :</font></td> <td width="534"><input type="text" name="qui" size="25" maxlength="25"></td> </tr> <tr> <td width="80"><font face="Comic Sans MS">titre :</font></td> <td width="534"><input type="text" name="titre" size="40" maxlength="40"></td> </tr> <tr> <td width="80"><font face="Comic Sans MS">Message :</font></td> <td width="534"> <textarea name="message" rows="7" cols="60" wrap="PHYSICAL"></textarea> </td> </tr> </table> <br> <input type="submit" name="Submit" value="Ok"> </div> </form> <center> <a href="index.htm" target="_self">Retour</a> </center> </body> </html>
donc ensuite mon insertion se fait dans la seconde page:
<?

//permet de prendre en compte les retour chariot
$message=nl2br($message);

$sql = "INSERT INTO news VALUES('id','$now','$qui','$titre', '$message')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
 
echo '<head>';
echo '</head>';

echo '<body>';
echo '<div align="center">';
echo '<p class="pitchi"><b><font size="+2">News entrée dans la base de donnée</font></b><br>';

echo '<a href="index.htm" target="_self">Retour</a>';
echo '</div></p>';
echo '</body>';
?>
et là j'ai ça comme message d'erreur:

Code : Tout sélectionner

Erreur SQL !INSERT INTO news VALUES('id','2005-10-28','the philou','test', 'test de ' et de : :o))') You have an error in your SQL syntax near 'et de : :o))')' at line 1
dans ma news j'ai donc mis un ' et une parenthese pour un smiley.

par x0s » 28 oct. 2005, 15:18

Lorsque tu définie l'entête de ta newsletter, il faut spécifier ceci en plus des autres informations nécessaires:

Code : Tout sélectionner

Content-Type: text/html; charset=iso-8859-1

par philoult » 28 oct. 2005, 15:07

oui mon pb est de pouvoir envoyer tout type de caractere dans ma news.

Comment tu fais pour un envoi en htm?

par x0s » 28 oct. 2005, 15:01

Bonjour,
Essayes de mieux expliciter ton problème, tu veux pouvoir écrire une newsletter comportant des caractères de tout type ?
Dans ce cas, tu peux l'envoyer au format HTML simplement...

comment autoriser les caracteres: apostrophe ' et slash /

par philoult » 28 oct. 2005, 14:58

Bonjour,

je viens de fabriquer un code assez basic mais bon cela m'a déjà pris pas mal de temps, pour faire une newsletter sur mon site, donc ça ça marche.
Par contre dans l'ecriture de ma news comment autoriser les caracteres: apostrophe ' et slash / :?:

Merci pour l'aide