[php] erreur else in...

Fermé
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 - 4 sept. 2006 à 13:53
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 - 4 sept. 2006 à 18:26
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à ;)
0
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 64
4 sept. 2006 à 14:52
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
0
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.
0
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 64
4 sept. 2006 à 15:11
Oui je vais regarder ton code pour voir
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 266
4 sept. 2006 à 18:26
Tu as deux else { } else {} d'affilée, ce qui n'est pas toléré.

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