Les Allergies
Alimentaires
Posez votre question Signaler

Problème livre d'or en php [Résolu]

boinet2 - Dernière réponse le 19 févr. 2009 à 20:21
Bonjour,
Après avoir suivis le tuto du site du Zér0 sur le PHP, je souhaite intégrer un livre d'or en php sur mon site.
Le problème se pose quand j'affiche les messages, normalement avec la fonction nl2br elle ajoute automatiquement une balise <br/> a chaque entrée dans le message, dans ma base de données on voit bien les messages avec les entrées au bon endroit mais quand j'affiche les messages en dessous de mon livre d'or sur mon site, les balises <br/> n'y sont plus ce qui fait que le texte est affiché a la suite sans retour a la ligne.
Voici mon code source:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="icon" type="image/png" href="../images/lens.gif" />
<!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /><![endif]-->
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" />
<style type="text/css">
form, .pages
{
text-align:center;
}
</style>
</head>
<body>
<?php
mysql_connect("localhost", "login", "mdp");
mysql_select_db("login");
?>
<div id="en_tete">
<!-- Ici on mettra la bannière -->
<div class="banniere">
<img src="../images/banniere.jpg" title="Bannière RCL" alt="Bannière du site"/>
</div>
</div>
<div>
<!-- Ici on mettra le menu -->
<div class="menugoch">
<ul>
<div class="liveconteur">
<?php
include("compteur.php");
?>
</div>
<?php
include("script.php");
?><br/><br/>
<?php
include("menu_gauche.php");
?>
<?php
include("menu_droit.php");
?>
<div class="corps">
<form method="post" action="livre_dor.php">
<p>Mon site vous plaît ? Laissez-moi un message !</p>
<p>
Pseudo : <input name="pseudo" /><br />
Message :<br />
<textarea name="message" rows="6" cols="35">
</textarea><br />
</p>
<p>Note :
<select name="choix">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
</select><br/><br/>
<input type="submit" value="Envoyer" />
</p>
</form>
<p class="pages">
<?php
// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
// On peut enfin enregistrer :o)
mysql_query("INSERT INTO livredor VALUES('', '" . $pseudo . "', '" . $message . "', '" . $_POST['choix'] . "')");
}
// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------
// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livredor');
$donnees = mysql_fetch_array($retour);$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre_dor.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>
<?php
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------
if (isset($_GET['page']))
{
$page = intval($_GET['page']); // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM livredor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br/> ' . $donnees['message'] . ' <br/>Il a donné la note :<strong> ' . $donnees['note'] . '</strong></p>';
}
if ($totalDesMessages == 1 OR $totalDesMessages == 0)
{
echo '<p><strong>' . $totalDesMessages . '</strong> message posté </p>';
}
else
{
echo '<p><strong>' . $totalDesMessages . '</strong> messages postés </p>';
}
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
</body>
</html>
Lire la suite 

Problème livre d'or en php »

3 réponses
Réponse
+1
moins plus
Bonjour,
Je viens de voir ton message et à priori je ne vois pas de trace de nl2br() dans ton code... ?
Enfin mais pas là ou il faut. Tu le met à l'enregistrement du message alors qu'il faut le mettre à l'affichage de celui-ci.
A la fin tu écris:
a écrit :<br/> ' . $donnees['message'] . ' 

Il faut mettre:
a écrit :<br/> ' . nl2br($donnees['message']) . ' 

Mais pas la peine de le mettre à l'enregistrement.
Ajouter un commentaire
Réponse
+0
moins plus
Merci arthezius, en effet ce code marche parfaitement pourtant le code qui me posait problème a été fait par la personne ayant rédigé le cour sur le PHP.
Merci encore pour cette bonne réponse claire et rapide.
arthezius- 19 févr. 2009 à 20:21
Mais de rien !
Ajouter un commentaire
Ce document intitulé « Problème livre d'or en php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?