minibenji
Messages postés64Date d'inscriptionmercredi 15 février 2006StatutMembreDernière intervention24 novembre 2010
-
1 janv. 2009 à 19:12
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
2 janv. 2009 à 11:05
Bonjour,
j'ai confectioné cette petite shoutbox, mais lors de l'affichage des messages, les saut de ligne se transformes en simple espaces...
voici une version simplifié de mon code...
le visionnement :
$sql = "SELECT * FROM `wall_tbl` ORDER BY `id` DESC LIMIT 0 , 10";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
while($data = mysql_fetch_assoc($req))
{
?>
<? echo $data['user']; ?> à: <? echo $data['date']; ?>
<? echo $data['texte']; ?>
<?
}
le adding de post:
$sql = "INSERT INTO wall_tbl VALUES('','".$_POST['user']."','".$_POST['message']."','".$quand."','".$_SERVER['REMOTE_ADDR']."')";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
include"index.php";
** ceci est très simplifié, bien évidement
en passant, dans la table, l'endroit ou les messages sont mit, le type d'entrée est mit a "TEXT" et lorsque je regarde la base, les enter sont là!
Tu utilises ensuite $message à la place de $_POST['message'] pour l'insertion :
- les données sont protégées contre l'injection de code
- les /n sont remplacés par des
- les données sont protégées pour l'insertion dans la base
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 1 janv. 2009 à 20:36
Et puis :
pourquoi fais tu ça :
while($data = mysql_fetch_assoc($req))
{
?>
<? echo $data['user']; ?> à: <? echo $data['date'];
?>
<? echo $data['texte']; ?>
<?
}
pourquoi pas ça :
while($data = mysql_fetch_assoc($req))
{
echo ''.$data['user'].' à: '.$data['date'].'
'.$data['texte'].'
';
}
C'est bien plus lisible et facile à écrire, non ?
Et ça aussi :
$sql = "INSERT INTO wall_tbl
VALUES('','".$_POST['user']."','".$_POST['message']."','".$quand."','".$_SERVER['REMOTE_ADDR']."')";
=>
$sql = "INSERT INTO wall_tbl
VALUES('','$_POST['user']','$_POST['message']','$quand','$_SERVER['REMOTE_ADDR']')";
Par ailleurs, pense à traiter toutes tes variables qui proviennent des formulaires. Si tu ne le fais pas il est possible d'insérer des données qui peuvent servir à pirater ton site. Et ne laisse jamais un mysql_error() (uniquement pour le debug) car là aussi il y a un pb de sécurité. Si il y a une erreur sur la requête, le mysql_error() risque de divulger des informations sur la structure de ta base, et ça c'est pas bon :-)
Regarde la fonction mysql_real_escape_string()
minibenji
Messages postés64Date d'inscriptionmercredi 15 février 2006StatutMembreDernière intervention24 novembre 2010 1 janv. 2009 à 20:51
comme j'ai dit, c'est une simplifiquation, avec tout les codes html, ca devient plus simple, mais dont truc serraisse?
a.$_POST['message']=nl2br($_POST['message']);
b.nl2br($_POST['message']);
juste pour savoir
Vous n’avez pas trouvé la réponse que vous recherchez ?