Affichage de mon livre d'or
Bonjour,
J'ai un problème avec mon livre d'or.
Quand je le teste et que j'y introduit des messages avec des mots très longs (par ex. des mots de 30 caractères), il affiche le message sans couper les mots, ce qui fait que mon site est complètement décalé vers la gauche.
J'ai copié mon code ci-dessous.
Pourriez-vous voir ce qui ne va pas et m'aider car je suis dans le pétrain ?
Merci à vous. :cry:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("sitereve");
// --------------- 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 livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
}
// --------------- 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 = 8; // 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 livreor');
$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="livreor.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 livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><strong>' . $donnees['pseudo'] . '</strong> a écrit :</td>
</tr>
<tr>
<td>'.nl2br($donnees['message']).'</td>
</tr>
</table><br /><br />';
}
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?> |
problème affichage avec mon livre d'or
Bonjour,
Je viens de mettre mon site en ligne.
Tant qu'il était en local, le livre d'or fonctionnait.
Maintenant qu'il est en ligne, un problème se pose : je sais poster un mesage et il s'affiche à l'écran dans la rubrique livre d'or.
Seulement, quand je clique sur une autre page de mon site, dans le menu, et que je reviens ensuite sur mon livre d'or, le message que j'avais introduit n'y apparait plus. Je suis obligé d'appuyer sur la touche F5 pour que le message apparaisse.
Pouvez-vous m'aider à résoudre ce problème ?
Voici le code de ma page livre d'or :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
-->
</style></head>
<body>
<table width="780" border="0" align="center" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td colspan="2"><script type="text/javascript">
// <![CDATA[
displayFlash("header.swf", 800, 350, "Contenu alternatif");
// ]]>
</script></td>
</tr>
<tr>
<td width="200" rowspan="2" valign="top"><script type="text/javascript">
// <![CDATA[
displayFlash("btn.swf", 200, 500, "Contenu alternatif");
// ]]>
</script></td>
<td width="580" height="38" valign="top"><img src="spacer.jpg" width="38" height="38" /></td>
</tr>
<tr>
<td width="546" align="center" valign="top">
<form method="post" action="livreor.php">
<p class="Style4">Des suggestions, des remarques, des questions ... <br>Laissez-moi un message.</p><br>
<p><span class="Style1">Pseudo : <input name="pseudo" /><br/><br>
<span class="Style1">Message :<br /><br></span>
<textarea name="message" rows="8" cols="35"></textarea><br/><br>
<input type="submit" value="Envoyer" />
</p>
</form>
<p class="pages">
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("sitereve");
// --------------- 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 />
$message = str_replace( '\n', ' ', wordwrap( $message, 15, '\n', true ) );
// On peut enfin enregistrer :o)
mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
}
// --------------- 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 = 5; // 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 livreor');
$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="livreor.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 livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><strong>' . $donnees['pseudo'] . '</strong> a écrit :</td>
</tr>
<tr>
<td>'.nl2br($donnees['message']).'</td>
</tr>
</table><br /><br />';
}
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?> |
Merci à vous pour votre aide.:pingoin2: