Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour a tous,
Je me permet d'ouvrir une nouvelle discution au sujet de mon livre d'or vu que je l'ai totalement refait mais ce coup si avec une bdd!
Merci pour le conseil, c'est beaucoup plus simple!!!
Bon alors cette foi si mon problème, si vous voulez bien m'aider, c'est pour l'affichage des messages!
Ils s'affiche certe, mais les sauts à la ligne effectuer dans le formulaire ne sont pas pris en compt lors de l'affichage, et ce n'est pas très estétique!
J'ai essayé trois méthode, mais sans résultat!
je pence que cela ne dois pas être bien compliquer a faire avec votre aide!
Je vous donne juste le code de la page de traitement des donné du formulair car je pence que l'erreur vient de là! :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Envoi d'un message dans le livre d'or</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<meta name="description"
content="Envoi d'un message dans le livre d'or" />
<meta name="mot clef"
content="message, livre d'or, envoyer un message, poster un message, envoyer un message dans un livre d'or" />
<link rel="stylesheet" type="text/css"
href="../site.css" />
</head>
<body>
<?php include ("../include/haut-site.php"); ?><br />
<br />
<center>
<?php
include ('../include/config_site.php');
$date = date('d/m/Y \à\ H \H\e\u\r\e\s\ i \M\i\n\.');
if (isset($_POST['pseudo_livre'])AND isset($_POST['site'])AND isset($_POST['note'])AND isset($_POST['message'])AND isset($_POST['lieu'])) // Si les variables existent
{
if ($_POST['pseudo_livre'] != NULL AND $_POST['note'] != NULL AND $_POST['message'] != NULL AND $_POST['lieu'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
include ('../admin/include/connect_mysql.php');
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$pseudo_livre = mysql_real_escape_string(htmlspecialchars($_POST['pseudo_livre']));
$site = mysql_real_escape_string(htmlspecialchars($_POST['site']));
$site = mysql_real_escape_string(str_replace("http://", "", ($_POST['site'])));
$site = str_replace("http://", "", $site);
$site = str_replace("", "pas_de_site", $site);
$note = mysql_real_escape_string(htmlspecialchars($_POST['note']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message);
$message = str_replace("
", "<br/>", $message);
$message = str_replace("\n", "<br/>", $message);
$lieu = mysql_real_escape_string(htmlspecialchars($_POST['lieu']));
$date = date('d/m/Y \à\ H \H\e\u\r\e\s\ i \M\i\n\.');
// Ensuite on enregistre le message
mysql_query("INSERT INTO livre_dor VALUES('', '$pseudo_livre','$site', '$note', '$message','$date', '$lieu')");
// On se déconnecte de MySQL
mysql_close();
}
}
echo '<div style="text-align: center;">'.
'<br />'.
'<h2>'.
'Votre message à bien été enregistrer!'.
'</h2>'.
'<br />'.
'<br />'.
'Vous allez être rediriger dans 3 seconde'.
'</div>'.
'<meta http-equiv="refresh" content="3; URL='.
$urlsite.
'livre-dor/">';
?>
<br />
<center>
<table style="text-align: left;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<center>
</center>
</tr>
</tbody>
</table>
<br />
</center>
</center>
</center>
</body>
</html>
C'est quand même plus compréensible que mon ancien code XD
Voici les trois methode que j'ai essayé pour résoudre mon problème :
$message = nl2br($message);
$message = str_replace("
", "<br/>", $message);
$message = str_replace("\n", "<br/>", $message);
!
j'aurais encors une question déjea qu'on y est :
Pour empecher que le livre soit envahit de spam, j'ai pensé a deux solution
- Un code de verification sous forme d'images (librairie gd je crois):.
- Un sitème qui identifie les ip et qui empèche l'utilisateur de poster un message dans les 5 ou 10 minute après en avoir déjea mis un et de poster plusieurs foi le même message!
L'aquel de ces deux solutions est la mieu?
merci de votre réponse et de votre aide! ![]()
Dernière modification par dechichulien (17-01-2008 04:43:44)
Hors ligne
hello,
pourquoi ne pas laisser les \n quand tu insères tes données dans la table, et ce sera seulement à l'affichage que tu les remplaces par de <br />
normalement, nl2br fait très bien l'affaire.
pour ce qui est du spam, une simple phrase permettant de découvrir un nombre suffit.
++
Hors ligne
merci pour le conseil!
donc j'ai juste mis un nl2br() dans la page d'envoi, et dans la page ou s'affiche les message, j'ai mis un
$message = str_replace("\r\n", "<br>", $message);!
Et sa fonctionne très bien!
"pour ce qui est du spam, une simple phrase permettant de découvrir un nombre suffit."
Tu veut dire quoi, un truc du genre combien font 1+1 ?
Hors ligne