Impossible de parser correctement un formulaire

Résolu
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009 - 10 sept. 2008 à 14:08
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009 - 15 sept. 2008 à 12:40
Bonjour,

Je viens pour la premiere fois demander de l'aide aux experts.
Merci d'avance ;)

Alors voila le code qui me pose probleme.

<?php

function verifyMissing($a, $b, $c, $d) {    if (($a 'no') || ($b 'no') || ($c == 'no') || ($d == 'no')) {
        $replytext = 'Informations manquantes: ';
        if ($a == 'no') { $replytext .= 'Prenom -'; }
        if ($b == 'no') { $replytext .= 'Nom -'; }
        if ($c == 'no') { $replytext .= 'Email -'; }
        if ($d == 'no') { $replytext .= 'Message'; }
        return $replytext;
    }
    else {
        $no='no';
        return $no;
    }
}

if ((isset($_POST['SEND'])) && ($_POST['SEND']=="SEND")) {
    if (isset($_POST['cont_fname'])) {
        $fname= $_POST['cont_fname']; $fnameok='yes';
    }
    elseif (!isset($_POST['cont_fname'])) { $fnameok='no'; }
    if (isset($_POST['cont_lname'])) {
        $lname=$_POST['cont_lname']; $lnameok='yes';
    }
    else { $lnameok='no'; }
    if (isset($_POST['cont_email'])) {
        $email=$_POST['cont_email']; $emailok='yes';
    }
    else { $emailok='no'; }
    if (isset($_POST['cont_phone'])) {
        $tel=$_POST['cont_phone']; $telok='yes';
    }
    else { $telok='no'; }
    if (isset($_POST['cont_message'])) {
        $msg=$_POST['cont_message']; $msgok='yes';
    }
    else { $msgok='no'; }
   
    $replied = verifyMissing($fnameok,$lnameok,$emailok,$msgok);
   
    if ($replied == 'no') {
        $ok='Toutes les informations OK'; echo($ok);
    }
    else {
        echo("".$replied."

");
    }
}

?>

    Nous contacter

   
    <form id="formContact" name="formContact" action="somepage.php" method="POST">
        <fieldset>
            <legend>Details Personnels</legend>
           
                <label for="cont_fname">* Prenom:</label>
               
           

           
                <label for="cont_lname">* Nom:</label>
               
           

           
                <label for="cont_email">* Email:</label>
               
           

           
                <label for="cont_phone">Telephone:</label>
               
           

        </fieldset>
        <fieldset>
            <legend>* Votre Message</legend>
           
                <label for="cont_message"></label>
                <textarea class="formField" name="cont_message" rows="7" cols="45" id="cont_message"></textarea>
           

        </fieldset>
       
           
       

    </form>
   

Le probleme est:

Meme si je laisse des champs vides et qu'ensuite j'appuie sur le bouton 'SEND', il me repond qu'il n'y a pas de champs vides et me renvoit tout en haut de ma page "Toutes les informations OK".
Alors qu'il y a une fonction verifyMissing() justement faite pour verifier cela.

Ca fait une journee que je me bats avec ce probleme. Merci encore une fois si vous pouvez/voulez m'aider.

Cordialement :)

3 réponses

extraman1 Messages postés 103 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 26 décembre 2009 2
15 sept. 2008 à 11:10
Salut,

isset, permet de vérifier que la variable existe, mais pas qu'elle soit vide, quand tu cliques sur SEND, la variable $_POST['const_fname'] est quand même créé mais avec rien dedans.

Donc pour ton isset, la variable existe.

A++ extraman1
3
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
11 sept. 2008 à 07:19
Bonjour,

Je crois avoir trouve une solution, bien que je ne comprenne pas vraiment pourquoi cela fonctionne correctement a present.

J'ai remplace les conditions du type

if (isset($_POST['cont_fname'])) {

Par

if ($_POST['cont_fname'] != NULL) {

Et la, ca parse correctement le toutim.

Si quelqu'un sait pourquoi la fonction isset() dans mon cas n'a pas fonctionne, merci de m'expliquer. :)

Cordialement
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
15 sept. 2008 à 12:40
Bonjour extraman1,

Merci pour cette explication. Je tacherais de m'en souvenir a l'avenir.

Cordialement :)
0
Rejoignez-nous