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 :

Submit n'envoie pas les paramètres


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 66
    Points : 59
    Points
    59
    Par défaut Submit n'envoie pas les paramètres
    Voila, j'ai un guestbook sur lycos, mais comme il se rempli maintenant quotidiennement de pubs et de messages générés par robots inutiles, j'ai décidé de créer un CAPTCHA (image de vérification générée).

    J'ai donc changé de serveur pour un gratuit qui offre la librairie GD (nécessaire pour l'image).

    J'ai donc transféré la BD, et les fichiers php (en prenant soin de modifier l'addresse des liens pour coincider avec le nouveau serveur).

    Mais voila ce qui arrive, mon captcha fonctionne a merveille, mais le submit n'envoie plus les données du formulaire à la page php qui valide et ajoute le message a la bd. Le code est EXACTEMENT le même que sur lycos (mis a part les addresse) alors je ne vois pas pourquoi ca ne fonctionne pas... le forum de mon nouveau serveur n'arrive pas a répondre on dirais...

    voici le code, qui semble ne pas avoir d'erreur:

    Formulaire:

    Code html : 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
    <form name="formulaire" action="http://fragments.redby.info/guestbook/posterGuestbook.php" method="post"> 
          <table bgcolor="303030"> 
             <tr bgcolor="black"><td>Nom:</td><td colspan="2"><input type="text" size="30" name="nom"></td></tr> 
             <tr bgcolor="black"><td>E-Mail:</td><td colspan="2"><input type="text" size="30" name="email"></td></tr> 
             <tr bgcolor="black"><td>Origine:</td><td colspan="2"><input type=""text" size="30" name="origine"></td></tr> 
             <tr bgcolor="black"><td>Message:</td><td colspan="2"><textarea rows='5' cols='30' name="message"></textarea></td></tr> 
             <tr bgcolor="black"><td>Vérification:</td><td><input type="text" size="15" name="codeimage"></td><td><img src="http://fragments.redby.info/guestbook/image.php"></td></tr> 
          </table> 
          <input type="button" onClick="valider()" value="Soumettre"> 
          <p></form> 
     
    <script language="javascript"> 
    function valider(){ 
       if(document.formulaire.nom.value == "" || document.formulaire.message.value == ""){ 
          alert("Vous devez impérativement remplir les champs 'Nom' et 'Message' pour poster dans le Guestbook."); 
       } 
       else{document.formulaire.submit();} 
    } 
    </script>

    et la page qui recoit:

    Code PHP : 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
    //Remplace les '\n' par des "<br>" dans le message 
    $mess = eregi_replace("[\n]", "<br>", $message); 
     
    //récupère l'addresse du client 
    if(isset($_SERVER["REMOTE_ADDR"])) { // Si on peut déterminer l'adresse IP 
    $ip_en_cours = $_SERVER["REMOTE_ADDR"]; 
    } 
    else { // sinon 
    $ip_en_cours = "Non identifiable"; 
    } 
     
    if (eregi("http://", $mess)) { 
        echo "on accepte plus de liens, depuis le spam"; 
        $req = "INSERT INTO addressesLouches (adresseIP, date) VALUES ('$ip_en_cours', NOW());"; 
        $result = mysql_query($req); 
        mysql_close(); 
    } 
    else if(eregi(".com", $mess)){ 
        echo "on accepte plus de liens, depuis le spam"; 
        $req = "INSERT INTO addressesLouches (adresseIP, date) VALUES ('$ip_en_cours', NOW());"; 
        $result = mysql_query($req); 
        mysql_close(); 
    } 
    else if (strlen($mess)<5){ 
        echo "votre message doit contenir au moins 6 caractère<br>"; 
        echo $mess; 
        $req = "INSERT INTO addressesLouches (adresseIP, date) VALUES ('$ip_en_cours', NOW());"; 
        $result = mysql_query($req); 
        mysql_close(); 
    } 
    // si le code ne correspond pas à celui déjà stocké dans la variable de session après l'avoir hashé avec md5() comme l'autre 
    else if(md5($codeimage) != $_SESSION['code_image']){ 
        // on affiche une erreur 
        echo "vous n'avez pas entré le bon code de validation, veuillez réessayer<p>"; 
        echo "you entered a wrong validation code, please try again"; 
    } 
     
    else{ 
     
    //Affichage normal de la page

    Le submit du formulaire donne ceci comme message:
    "votre message doit contenir au moins 6 caractère"

    j'ai essayé de remplacer la page du formulaire par ce qui suit, avec le même résultat...

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form name="formulaire" action="http://fragments.redby.info/guestbook/posterGuestbook.php" method="post"> 
          <table bgcolor="303030"> 
             <tr bgcolor="black"><td>Nom:</td><td colspan="2"><input type="text" size="30" name="nom"></td></tr> 
             <tr bgcolor="black"><td>E-Mail:</td><td colspan="2"><input type="text" size="30" name="email"></td></tr> 
             <tr bgcolor="black"><td>Origine:</td><td colspan="2"><input type=""text" size="30" name="origine"></td></tr> 
             <tr bgcolor="black"><td>Message:</td><td colspan="2"><textarea rows='5' cols='30' name="message"></textarea></td></tr> 
             <tr bgcolor="black"><td>Vérification:</td><td><input type="text" size="7" name="codeimage"></td><td><img src="http://fragments.redby.info/guestbook/image.php"></td></tr> 
          </table> 
          <input type="submit" value="Soumettre"> 
          <p></form>


    dans les deux cas, l'adresse de la page appelée est ceci:
    http://fragments.redby.info/guestboo.../guestbook.php

    au lieu de:
    http://fragments.redby.info/guestboo...deimage=lecode

    j'aurais vraiment besoin d'aide, car mon guestbook se rempli encore de merdes a tous les jours et personne ne semble avoir d'idées...
    si le problème provient du serveur, est-ce que quelqu'un connais un autre serveur gratuit offrant un interpréteur php, un bd mysql et la librairie gd?

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Points : 2 399
    Points
    2 399
    Par défaut
    Ton script php ne récupere pas tes valeur saisie dans ton formulaire, il ne fait aue ajouter des adresse ip dans la base

    aussi tu as du remarqué que la colorisation du texte a un probleme, il serais bien de le corriger, le probleme vien peut etre de la :

    c'est un probleme de guillemet :

    <input type=""text" size="30" name="origine">

    il faut enlever un " pour donner :

    <input type="text" size="30" name="origine">

  3. #3
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 66
    Points : 59
    Points
    59
    Par défaut
    Ton script php ne récupere pas tes valeur saisie dans ton formulaire, il ne fait aue ajouter des adresse ip dans la base
    c'est parce-que je ne vous ai pas écrit cette partie du code, le script ne se rend pas la... ça s'execute ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    else{ 
     
    //Affichage normal de la page
    les variables arrivent a l'autre page vides (ou totalement inexistantes)

    c'est pourquoi le script s'arrête ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    else if (strlen($mess)<5){ 
        echo "votre message doit contenir au moins 6 caractère<br>"; 
        echo $mess;
    je note d'ailleur que echo $mess; n'affiche rien du tout

    pour le problème du guillemet, merci de l'info, je l'ai corrigé, mais le problème ne viens pas de la...

  4. #4
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    dans les deux cas, l'adresse de la page appelée est ceci:
    http://fragments.redby.info/guestboo.../guestbook.php

    au lieu de:
    http://fragments.redby.info/guestboo...deimage=lecode
    C'est normal tu utilises une methode POST, les paramètres ne sont pas passé dans l'URL, pour le faire il faut que tu utilises une méthode GET.

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    ou sinon , recupere tes valeurs via la methode ou tu les envoi :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Remplace les '\n' par des "<br>" dans le message 
    $mess = eregi_replace("[\n]", "<br>", $_POST['message']);

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/07/2009, 14h29
  2. Formulaire n'envoie pas les données
    Par vladock dans le forum Langage
    Réponses: 7
    Dernier message: 04/08/2008, 14h24
  3. Formulaire dans PHP n'envoie pas les $_POST
    Par GOMMME dans le forum Langage
    Réponses: 6
    Dernier message: 19/05/2008, 18h32
  4. Réponses: 0
    Dernier message: 08/11/2007, 01h36
  5. VB n'affiche pas les paramètres de sortie de ma procédure
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/09/2007, 23h05

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