Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

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.
 

#1 17-01-2008 04:41:08

dechichulien
Membre
Lieu: strasbourg
Date d'inscription: 29-11-2007
Messages: 67
Site web

Problème pour l'affichage des mesages du livre d'or

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 &agrave; bien &eacute;t&eacute; enregistrer!'.
'</h2>'.
'<br />'.
'<br />'.
'Vous allez &ecirc;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! smile

Dernière modification par dechichulien (17-01-2008 04:43:44)

Hors ligne

 

#2 17-01-2008 08:11:39

lolo3129
Membre
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 482
Site web

Re: Problème pour l'affichage des mesages du livre d'or

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

 

#3 19-01-2008 13:00:38

dechichulien
Membre
Lieu: strasbourg
Date d'inscription: 29-11-2007
Messages: 67
Site web

Re: Problème pour l'affichage des mesages du livre d'or

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