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 :

[Mail] Problème de syntaxe else if


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 24
    Par défaut [Mail] Problème de syntaxe else if
    bonsoir,
    j'ai pas d'erreur mais le dernier eldseif retourne rien
    Code : 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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
    // La variable $verif, va nous permettre d'analyser si la sémantique de l'email est bonne
    $verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!";
     
    if($_POST)
    {
      $verif=1;
      foreach($_POST as $key=>$val)
      {
       if(empty($val))
        {
          echo 'Le champ '.$key.' doit être rempli<br />';
          $verif=0;
        }
      }
      if($verif==1)
    {
     
    //Le code si tout est bon.
     
    // On assigne et protége nos variables
    $nom=$_POST["nom"];
    $prenom=$_POST["prenom"];
    $adresse=$_POST["adresse"];
    $photo=$_POST["photo"];
    $ville=$_POST["ville"];
    $postale=$_POST["postale"];
    $signature=$_POST["signature"];
     
    }
     
    $votremail=$_POST["votremail"]; 
    $from=htmlentities("From: ".$votremail);
    $objet=$_POST['objet']; 
     
    $message .= "Nom: ".$nom."\n";
    $message .= "Prénom : ".$prenom."\n";
    $message .= "Adresse : ".$adresse."\n";
    $message .= "Ville : ".$ville."\n";
    $message .= "Code postal : ".$postale."\n";
    $message .= "Adresse E-Mail : ".$votremail."\n";
    $message .= "Référence Photo : ".$photo."\n\n";
    $message .= "Message : 
    ".stripslashes(htmlentities($_POST["msg"]))."\n\n";
    $message .= "Signature : ".$signature."\n";
     
     
    // On met ici notre email
    $destinataire="mail@cheztoi.moi";
    }
    // C'est bon on est OK, vérifions si l'email est valide, grâce à notre sympathique REGEX
    elseif(!preg_match($verif,$votremail))
    {
      echo "Votre email n'est pas valide";
    }
    // On verifie si il y a un message
    elseif(trim($message)=="")
    {
      echo "Y'en a marre des messages vide !";
    }
    // Si tout est OK on envoie l'email
    else
    {
      mail($destinataire,$objet,$message,$from);
      echo "Message envoyé";
    }
    ?>
    Merci de votre aide !!

  2. #2
    Membre éprouvé Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Par défaut
    Salut !

    La structure de ton code n'est pas bonne ! Les elseif n'ont aucune raison d'être à cet endroit. En fait tu passeras dedans que si $_POST n'est pas définit.

    Dans ton cas, si tous les cas sont faux, alors tu envoi un mail ^_^ (avec l'utilisation de variables qui ne sont pas affectées).

    Ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error_reporting(E_ALL);
    en début de fichier pour faire tes tests.

    Cyb.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 24
    Par défaut
    je les rajouter et il dit rien page blanche :s

  4. #4
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    c'est certain que ca entre jamais dans ton else if
    comme Cyberbob002 l'a mentionné il faut que ca ne respecte pas la condition de ton premier if pour que ca alle dans les esle if

    toi tu entre dans le if et par la suis tu veux que ca entre dans les else if avec pour condition des variable défini dans les { } de ton premier if

    enleve les else et laisse seulement des if pour la suite de tes conditions

    Code : 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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <?php
    // La variable $verif, va nous permettre d'analyser si la sémantique de l'email est bonne
    $verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!";
     
    if($_POST)
    {
      $verif=1;
      foreach($_POST as $key=>$val)
      {
       if(empty($val))
        {
          echo 'Le champ '.$key.' doit être rempli<br />';
          $verif=0;
        }
      }
      if($verif==1)
      {
     
      //Le code si tout est bon.
     
       // On assigne et protége nos variables
         $nom=$_POST["nom"];
         $prenom=$_POST["prenom"];
         $adresse=$_POST["adresse"];
         $photo=$_POST["photo"];
         $ville=$_POST["ville"];
         $postale=$_POST["postale"];
         $signature=$_POST["signature"];
     
       }
     
      $votremail=$_POST["votremail"]; 
      $from=htmlentities("From: ".$votremail);
      $objet=$_POST['objet']; 
     
      $message .= "Nom: ".$nom."\n";
      $message .= "Prénom : ".$prenom."\n";
      $message .= "Adresse : ".$adresse."\n";
      $message .= "Ville : ".$ville."\n";
      $message .= "Code postal : ".$postale."\n";
      $message .= "Adresse E-Mail : ".$votremail."\n";
      $message .= "Référence Photo : ".$photo."\n\n";
      $message .= "Message : 
    ".stripslashes(htmlentities($_POST["msg"]))."\n\n";
      $message .= "Signature : ".$signature."\n";
     
     
       // On met ici notre email
      $destinataire="mail@cheztoi.moi";
    }
    // C'est bon on est OK, vérifions si l'email est valide, grâce à notre sympathique REGEX
    if(!preg_match($verif,$votremail))
    {
      echo "Votre email n'est pas valide";
    }
    // On verifie si il y a un message
    elseif(trim($message)=="")
    {
      echo "Y'en a marre des messages vide !";
    }
    // Si tout est OK on envoie l'email
    else
    {
      mail($destinataire,$objet,$message,$from);
      echo "Message envoyé";
    }
    ?>
    ben a vrai d'ire t'en avait juste 1 ou 2 a enlever

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 24
    Par défaut
    merci mais encore une erreur :s
    Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in /var/www/vhosts/primage.fr/subdomains/test/httpdocs/mail/envoivollibre.php on line 52
    Votre email n'est pas valide soit la line :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!preg_match($verif,$votremail))

  6. #6
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    et si tu essaie ca?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $verif = '/^[a-z0-9!#$%&*+-=?^_`{|}~]+(\.[a-z0-9!#$%&*+-=?^_`{|}~]+)*';
    $verif .= '@([-a-z0-9]+\.)+([a-z]{2,3}';
     
    ...
     
    if(!preg_match($verif,$votremail))
    {
      echo "Votre email n'est pas valide";
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR XI] Problème de syntaxe IF-ELSE || IF-ELSEIF-ELSE
    Par ygyongy dans le forum Formules
    Réponses: 3
    Dernier message: 23/07/2013, 17h30
  2. Problème de syntaxe javascript dans mail PHP
    Par kck61 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/11/2011, 11h44
  3. Réponses: 1
    Dernier message: 05/04/2006, 14h22
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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