[php] erreur else in... [Fermé]

Signaler
Messages postés
790
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
-
Jean-François Pillou
Messages postés
18536
Date d'inscription
lundi 15 février 1999
Statut
Webmaster
Dernière intervention
3 avril 2020
-
Salut
Aujourd'hui je bloque sur l'erreur parce error else in sur un fichier qui fais deux vérifications en isset et j'arrive pas à trouver l'erreur.
Si vous pouvez m'aider, normalement je m débrouille mais là... :
<?php
if( isset($_POST['du'])) $du=$_POST['du'];
if( isset($_POST['au'])) $au=$_POST['au'];
if( isset($_POST['identite'])) $identite=$_POST['identite'];
if( isset($_POST['adresse'])) $adresse=$_POST['adresse'];
if( isset($_POST['email'])) $email=$_POST['email'];
if( isset($_POST['message'])) $message=$_POST['message'];
if( isset($_POST['animal'])) $animal=$_POST['animal'];
if( isset($_POST['conditions'])) $conditions=$_POST['conditions'];
if($du && $au && $identite && $adresse && $email && $message && $animal && $conditions)
{
if($conditions==oui) {
mail("adresse@tone-mail.com", "Formulaire de réservations","Bonjour\r\nNouvelle réservation provenant de ".$identite."\r\nVoici les détails de la réservation :\r\nRéservation à partir du ".$du." jusqu'au ".$au."\r\nNom :".$identite."\r\nAdresse postale :".$adresse."\r\nAdresse e-mail :".$email."\r\nCette personne a des animaux :".$animal."\r\nMessage :".$message."\r\n". "\r\nCe formulaire a été envoyé automatiquement grace au formulaire de réservation sur le site", "From:$email\r\nReply-To:$email"); echo "Merci, votre formulaire a été envoyé."; } else { echo "Vous devez accepter les conditions de location"; } else { echo "Vous avez du oublier de remplir un champ. Le formulaire n'a donc pas été envoyé. Merci de recommencer";} ?>
merci

5 réponses

slt,

Je comprends pas bien le but de tes conditions :?

Une méthode plus simple, tu ne vérifies seulement que le name du submit est présent, ce qui implique que si c'est vrai, tous les autres champs sont présent aussi.
if( isset($_POST['submit'])) // le name du submit
{
    // tous les champs du form existent si tu entres dans cette condition
    foreach($_POST as $name => $valeur)
    {
        // on donne le nom du champ au variable et leur valeur respective
        ${$name} = trim($valeur);
    }
    $erreur = array(); // sert à reçevoir les erreurs
    // tu testes si les valeurs ne sont pas vides
    if( empty($du) ) $erreur[] = 'Le champ du est vide';
    // etc... pour chaque champ du form et les autres paramètres obligatoires
   // longueur de chaine, validité de l'email, etc ....

   if( empty($erreur) ) // donc aucune erreur
   {
        // envoi du mail
   }
}

// s'il y a une erreur tu les affiches avant ton form

if( !empty($erreurs) )
{
    foreach($erreur as $valeur)
    {
          echo "$valeur\n";
     }
}

// affichage du formulaire


Voilà ;)
Messages postés
790
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
59
Je t'explique
Je dois déjà vérifier que le formulaire est bien tous les champs pleins et dois en plus vérifier que le $condtions==oui (la personne a accepté les conditions de ventes par ex)
Je n'ai jamais fonctionne avec la vérif submit, j'ai toujours vérifié champ par champ pour moi c'est plus sur
dans mon code, tu vois d'ou est le pb?
J'ai déjà fais un genre de script comme ça, mais aujourd'hui je vois pas mon erreur
Je n'ai jamais fonctionne avec la vérif submit, j'ai toujours vérifié champ par champ pour moi c'est plus sur

Comme je t'ai dit, si le name d'un submit est présent, tous les champs du form sont présent également sauf exceptions les boutons radios.

Donc en faisant juste un isset, cela ne sert à rien, puisque c'est forcément le cas, même en ne rentrant aucune valeur cette condition est réunie.

Enfin, tu fais comme tu veux, mais je t'ai fournie une meilleure solution.
Messages postés
790
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
59
Oui je vais regarder ton code pour voir
merci
Messages postés
18536
Date d'inscription
lundi 15 février 1999
Statut
Webmaster
Dernière intervention
3 avril 2020
62 073
Tu as deux else { } else {} d'affilée, ce qui n'est pas toléré.

Tu peux par contre faire : if ( ) {} else if( ) {} [...] else {}