Bonjour,
J'ai suivi le tuto "ajouter des commentaires sur news" et là quand j'ajoute "en localhost" des commentaires sur une news j'ai une erreur quand je mets un apostrophe. On peut "échapper" l’apostrophe avec \ .
Comment faire pour pouvoir ajouter des commentaires sans passer par des anti-slash ?
Je crois savoir qu'il faut utiliser stripslashes mais j'ai essayé plusieurs code sans succès !
Voici le code en question (voir.php):
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$id=$_GET'id'];
$sql="SELECT * FROM news WHERE id=$id";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data=mysql_fetch_assoc($req);
echo "<h1>{$data"titre"]}</h1>";
echo "<p>{$data"contenu"]}</p>";
echo "<p align\"right\">".date("j/n/Y G:i",strtotime($data"date"]))."</p>";
$sql="SELECT * FROM comment WHERE news_id=$id ORDER BY id ASC";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data2=mysql_fetch_assoc($req)){
echo "---------------------<br/>";
echo $data2"pseudo"];
echo "<p>{$data2"contenu"]}</p>";
// echo ($data2"contenu"]);
echo "---------------------<br/>";
}
?>
<form action="addcom.php" method="post">
Pseudo : <input type="text" name="pseudo"/><br />
URL : <input type="text" name="url"/><br />
Mail : <input type="text" name="mail"/><br />
<textarea name="contenu" style="width:500px;height:200px;"></textarea>
<input type="submit" value="Envoyer"/>
<input type="hidden" name="news_id" value="<?php echo $data"id"] ?>"/>
</form>
Merci
stripslashes enlève les \ qui ont été ajoutés, tu dois l'utiliser lorsque tu affiches tes commentaires.
Lors de l'ajout d'un commentaire, c'est la fonction addslashes qui doit être utilisée ;)
Tu devrais lire un tuto sur comment éviter les injections sql : http://www.siteduzero.com/tutoriel-3-37762-eviter-les-injections-sql.html
Bonjour,
Merci pour vos réponse.
Je sais que ce code n'est pas bon mais je sais pas comment mettre ces fameux stripslashes (où les mettre)
Voila la fin du code de ma page voir.php :
<?php while ($data2=mysql_fetch_assoc($req)){
echo "---------------------<br/>";
echo (stripslashes($data2"pseudo"]));
echo "<p>(stripslashes{$data2"contenu"]})</p>";
// echo ($data2"contenu"]);
echo "---------------------<br/>";
}
?>
J'ai une erreur sql
Ce code non plus ne fonctionne pas ?
<?php echo "---------------------<br/>";
echo stripslashes($data2"pseudo"]);?>
<p><?php echo stripslashes($data2"contenu"]); ?></p>
<?php echo "---------------------<br/>";
}
?>