Signaler

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

Posez votre question fabrice11901 790Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention - Dernière réponse le 4 sept. 2006 à 18:26 par Jeff
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

Utile
+0
plus moins
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à ;)
Utile
+0
plus moins
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
Utile
+0
plus moins
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.
Utile
+0
plus moins
Oui je vais regarder ton code pour voir
merci
Utile
+0
plus moins
Tu as deux else { } else {} d'affilée, ce qui n'est pas toléré.

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

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !