IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Livre d'or php, message vide


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Points : 63
    Points
    63
    Par défaut Livre d'or php, message vide
    Bonjour,

    Je vient d'installer le livre d'or disponible ici : http://php.developpez.com/sources/?page=divers#goldbook
    Mais, malheureusement, je n’arrive pas à le faire fonctionner. C’est pourquoi je sollicite votre aide.
    Le livre se trouve à l’adresse : http://www.fanfarehuissignies.be/fra/livre/livre.php
    J’ai juste rempli le fichier connexion.php et placé les pages.
    Au début, quand je voulais insérer un message, le fait de valider, passait bien l’adresse à ecriture.php?test=ok, mais la page restait comme si je devais de nouveau rentrer un message.
    Si j’allais dans PhpMyAdmin, rien n’ était inseré dans la BD.
    J’ai rajouté au début de la page : $test=$_GET['test']; Ce qui a fait que l’insertion se validait bien.
    Un problème de réglé.

    Mais maintenant quand je poste un message sur le livre d’or, le message est bien inséré, mais il est vide à l’exception de la date.
    Le nom de l’expéditeur et le message ne sont pas stocké dans la BD.
    Je ne sais pas si c’est se que j’ai rajouté qui pose problème, ou une autre erreur dans la sources.
    Voici le code de la page d’écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <html><head><title>COMMENT CREER SON LIVRE D'OR</title>
    <script>
    function test_form(mess, expe) {
       if(mess.value=="") { alert('Vous devez tapez un message !')
           mess.focus();return false }
      if(expe.value=="") { alert('Vous devez tapez votre nom !')
           expe.focus();return false }
       return true}
       // script permettant de tester si les champs de saisie sont bien remplis...
    </SCRIPT>
    </head>
    <body>
    <?
    include ("connexion.php"); // ouverture de la connexion
    $test=$_GET['test'];
    if($test=="ok") { // on regarde si la variable test = "ok"...
           // si l'on n'a pas envoyé le formulaire cette variable n'est pas égale à ok
           // dès que l'on a envoyé le formulaire, cette variable = ok donc 
           // On enregistre le message dans la bd et on affiche
           // l'information comme quoi le message a bien été enregistré...
       $Date  = date("Y/m/d"); // on récupère la date à laquelle le message est posté
       $query = "INSERT INTO livre(codelivre, message, expediteur, date)"; // cette requette dit
       $query .= " VALUES('', '$mess','$expe', '$Date')";           // d'envoyer les éléments du formulaire dans la base
       $result = mysql_query($query); // on enregistre
       ?>
       <!-- Affichage du résultat... -->
    <b> <font face="Arial, Helvetica, sans-serif" color="#3344cc" size="3">Votre message a &eacute;t&eacute; correctement enregistr&eacute;</font></b><br /><br />
    <font size="3"><a href="livre.php"><b>Lire les messages</b></a></font>
    <? 
     } // fin du premier test
    if ($test!="ok"){ // première ouverture du fichier ecriture... on remplie le formulaire
    // cette partie est cachée lorsque l'on a envoyé le message...
    ?>
    <b> <font face="Arial, Helvetica, sans-serif" color="#3344cc" size="3">ECRIRE UN MESSAGE</font></b><br />
    <!-- notre formulaire... action : on retourne dans ce même fichier avec en plus la
    variable test qui prend la valeur ok et toutes les infos du formulaire...
    Le onSubmit sert à vérifier si le contenu du formulaire n'est pas vide... (voir function
    js appelée)
    -->
    <form method="post" onSubmit="return test_form(this.mess, this.expe)" action="ecriture.php?test=ok">
            <table cellpadding="0" cellspacing="0" width="100%">
               <tr><td align="center" valign="top">
                   <font size="2" face="Arial, Helvetica, sans-serif" color="#3344cc"><b>Votre nom</b></font></td>
                  <td align="center" valign="top">
                 <input type="text" name="expe" size="30"><!-- on nomme expe le nom de l'expéditeur... -->
                 <font size="1" face="Arial, Helvetica, sans-serif;" color="#3344cc"><b>(pr&eacute;nom ou pseudo accept&eacute;)</b></font></td></tr>
             <tr><td align="center" colspan="2">       
                 <hr color="#3366cc"></td></tr>
             <tr><td align="center" valign="top">
                   <font size="2" face="Arial, Helvetica, sans-serif" color="#3344cc"><b>Votre&nbsp;message :</b></font></td>
                  <td align="center" valign="top"><!-- on nomme mess le message de l'expéditeur... -->
                 <textarea cols="50" rows="10" name="mess"></textarea></td></tr>
             <tr><td align="center" colspan="2">       
                 <hr color="#3366cc"></td></tr>
             <tr><td align="center" colspan="2">       
                 <input type="submit" name="ok" value="&nbsp;Envoyer&nbsp;" style="cursor:hand;"></td></tr></table>
    </form>
    <?
    }
    mysql_close(); // on ferme la connexion 
    ?> 
    </body>
    </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    Je crois que ce script est un peu perimé.
    Personnement j'oublierais cette histoire de "test" et je ferrais comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    include ("connexion.php");
    if ($_SERVER["REQUEST_METHOD"] == "post") {
     
    $mess = mysql_real_escape_string(trim($_POST['mess']));
    $expe = mysql_real_escape_string(trim($_POST['expe']));
     
    if ($mess != '' && $expe != '') {
       $query = "INSERT INTO livre(message, expediteur, date) VALUES('$mess','$expe', CURDATE())"; 				 				 
       $result = mysql_query($query);
     
    ...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Points : 63
    Points
    63
    Par défaut
    désole sabotage, mais je coule la.
    Mes conaisance en php son faible (mais je cherche à les améliorait)

    Si je comprend bien, je doit métre ton code dans une nouvelle page php?? et dire à la methode post de la premiére d'ouvrire cette page??
    Car j'y arrive pas :-(
    J'ai l'inpresion que ma 2ém page ne recoi rien (le if ($_SERVER["REQUEST_METHOD"] == "post") et toujours faut)
    j'ai juste changer sa sur la premiére page : <form method="post" onSubmit="return test_form(this.mess, this.expe)" action="ecriture2.php">

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non, non, j'ai modifié le code d'origine entre
    include ("connexion.php");
    ... et ....
    $result = mysql_query($query);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non, non, j'ai modifié le code d'origine entre
    include ("connexion.php");
    ... et ....
    $result = mysql_query($query);

    Pour la condition essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (strtolower($_SERVER["REQUEST_METHOD"])) == "post"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Points : 63
    Points
    63
    Par défaut
    Merci sa marche.
    Je remet le code comple de la page ecriture.php si une personne passe aprés et rencontre le méme probléme.
    Encore merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <html><head><title>COMMENT CREER SON LIVRE D'OR</title>
    <script>
    function test_form(mess, expe) {
       if(mess.value=="") { alert('Vous devez tapez un message !')
           mess.focus();return false }
      if(expe.value=="") { alert('Vous devez tapez votre nom !')
           expe.focus();return false }
       return true}
       // script permettant de tester si les champs de saisie sont bien remplis...
    </SCRIPT>
    </head>
    <body>
    <?
    include ("connexion.php");
    if (strtolower($_SERVER["REQUEST_METHOD"]) == "post") {
     
    $mess = mysql_real_escape_string(trim($_POST['mess']));
    $expe = mysql_real_escape_string(trim($_POST['expe']));
     
    if ($mess != '' && $expe != '') {
      $query = "INSERT INTO livre(codelivre, message, expediteur, date)"; 
       $query .= " VALUES('', '$mess','$expe', CURDATE())";       
       $result = mysql_query($query);
       ?>
       <!-- Affichage du résultat... -->
    <b> <font face="Arial, Helvetica, sans-serif" color="#3344cc" size="3">Votre message a &eacute;t&eacute; correctement enregistr&eacute;</font></b><br /><br />
    <font size="3"><a href="livre.php"><b>Lire les messages</b></a></font>
    <? 
     }} // fin du premier test
    if (strtolower($_SERVER["REQUEST_METHOD"]) != "post"){ // première ouverture du fichier ecriture... on remplie le formulaire
    // cette partie est cachée lorsque l'on a envoyé le message...
    ?>
    <b> <font face="Arial, Helvetica, sans-serif" color="#3344cc" size="3">ECRIRE UN MESSAGE</font></b><br />
    <!-- notre formulaire... action : on retourne dans ce même fichier avec en plus la
    variable test qui prend la valeur ok et toutes les infos du formulaire...
    Le onSubmit sert à vérifier si le contenu du formulaire n'est pas vide... (voir function
    js appelée)
    -->
    <form method="post" onSubmit="return test_form(this.mess, this.expe)" action="ecriture.php">
            <table cellpadding="0" cellspacing="0" width="100%">
               <tr><td align="center" valign="top">
                   <font size="2" face="Arial, Helvetica, sans-serif" color="#3344cc"><b>Votre nom</b></font></td>
                  <td align="center" valign="top">
                 <input type="text" name="expe" size="30"><!-- on nomme expe le nom de l'expéditeur... -->
                 <font size="1" face="Arial, Helvetica, sans-serif;" color="#3344cc"><b>(pr&eacute;nom ou pseudo accept&eacute;)</b></font></td></tr>
             <tr><td align="center" colspan="2">       
                 <hr color="#3366cc"></td></tr>
             <tr><td align="center" valign="top">
                   <font size="2" face="Arial, Helvetica, sans-serif" color="#3344cc"><b>Votre&nbsp;message :</b></font></td>
                  <td align="center" valign="top"><!-- on nomme mess le message de l'expéditeur... -->
                 <textarea cols="50" rows="10" name="mess"></textarea></td></tr>
             <tr><td align="center" colspan="2">       
                 <hr color="#3366cc"></td></tr>
             <tr><td align="center" colspan="2">       
                 <input type="submit" name="ok" value="&nbsp;Envoyer&nbsp;" style="cursor:hand;"></td></tr></table>
    </form>
    <?
    }
    mysql_close(); // on ferme la connexion 
    ?> 
    </body>
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice] Un tutoriel, un livre , et les .php
    Par belocom dans le forum OpenOffice & LibreOffice
    Réponses: 6
    Dernier message: 31/07/2007, 16h48
  2. [Sécurité] Livre d'or php spammé
    Par Invité dans le forum Langage
    Réponses: 7
    Dernier message: 12/06/2006, 12h56
  3. [PHP] Message alert
    Par marie4449 dans le forum Langage
    Réponses: 1
    Dernier message: 24/05/2006, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo