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 :

syntax error, unexpected T_ELSEIF


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut syntax error, unexpected T_ELSEIF
    je viens de partir sur une structure de script issue d'un tuto de developpez.net je crois

    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php
     
    /* Si le formulaire est envoyé alors on fait les traitements */
    if (isset($_POST['envoyer']))
    {
    	/* Récupération des valeurs des champs du formulaire */
    	if (get_magic_quotes_gpc())
    	{
    		$nom_prenom = stripslashes(trim($_POST['nom_prenom']));
    		$telephone = stripslashes(trim($_POST['telephone']));
    		$email = stripslashes(trim($_POST['email']));
    		$adresse = stripslashes(trim($_POST['adresse']));
    		$code_postal = stripslashes(trim($_POST['code_postal']));
    		$ville = stripslashes(trim($_POST['ville']));
    	}
    	else
    	{
    		$nom_prenom = trim($_POST['nom_prenom']);
    		$telephone = trim($_POST['telephone']);
    		$email = trim($_POST['email']);
    		$adresse = trim($_POST['adresse']);
    		$code_postal = trim($_POST['code_postal']);
    		$ville = trim($_POST['ville']);
        }
     
    	/* Si le formulaire n'est pas posté de notre site on renvoie vers la page d'accueil */
    	elseif ($_SERVER['HTTP_REFERER'] != 'http://monsite.com/formulaire.php/') // Mettre l'adresse de la page qui affiche le formulaire
    	{
    		header('Location: http://www.monsite.com/'); // Mettre l'adresse de la page d'accueil
    	}
     
    	/* On vérifie que tous les champs sont remplis */
    	elseif (empty($nom_prenom)
    		|| empty($telephone)
    		|| empty($email)
    		|| empty($adresse)
    		|| empty($code_postal)
    		|| empty($ville))
    	{
    	$alert = 'Tous les champs doivent être renseignés';
    	}
     
    	/* On vérifie que le format de l'e-mail est correct */
    	$regex_email = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    	elseif (!preg_match($regex_email, $email))
    	{
    		$alert = 'L\'adresse '.$email.' n\'est pas valide';
    	}
     
    	/* On vérifie qu'il n'y a aucun header dans les champs */
    	$regex_header = '/[\n\r]/';
    	elseif (preg_match($regex_header, $nom_prenom)
    		|| preg_match($regex_header, $telephone)
    		|| preg_match($regex_header, $email)
    		|| preg_match($regex_header, $adresse)
    		|| preg_match($regex_header, $code_postal)
    		|| preg_match($regex_header, $ville))
    	{
    	$alert = 'En-têtes interdites dans les champs du formulaire';
    	}
     
    	/* Destinataire (adresse e-mail) */
    	$mail_to = 'contact@monsite.com'; // Adresse du destinataire
    	$mail_to_name = '';
     
     
    	/* En-têtes de l'e-mail */
    	$header = "From: \"".$mail_from."\"<".$mail_from_name.">"."\r\n";
     
     
    	/* SUJET DU FORMULAIRE*/
    	$sujet = "Formulaire - ";
     
     
    	/* Construction du message */
     
    	$message = 'Nom - Prénom : '.$nom_prenom."\r\n";
    	$message.= 'Téléphone : '.$telephone."\r\n";
    	$message.= 'email : '.$email."\r\n";
    	$message.= 'Adresse : '.$adresse."\r\n";
    	$message.= 'Code postal : '.$code_postal."\r\n";
    	$message.= 'Ville : '.$ville."\r\n";
     
    	/* Envoi de l'e-mail */
    	elseif (mail($mail_to, $sujet, $message, $header))
    	{
    		header('Location: http://www.monsite.com/remerciement.php');// Mettre l'adresse de la page de redirection
    	}
    	else
    	{
    		unset($_POST);
    	}
    }

    mais j'ai plein de bug avec les elseif ????

    Parse error: syntax error, unexpected T_ELSEIF

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir,

    Tu as mal positionné la fermeture de l'accolade de ton premier if.
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    if (isset($_POST['envoyer']))
    {
    	/* Récupération des valeurs des champs du formulaire */
    	if (get_magic_quotes_gpc())
    	{
    		$nom_prenom = stripslashes(trim($_POST['nom_prenom']));
    		$telephone = stripslashes(trim($_POST['telephone']));
    		$email = stripslashes(trim($_POST['email']));
    		$adresse = stripslashes(trim($_POST['adresse']));
    		$code_postal = stripslashes(trim($_POST['code_postal']));
    		$ville = stripslashes(trim($_POST['ville']));
    	}
    	else
    	{
    		$nom_prenom = trim($_POST['nom_prenom']);
    		$telephone = trim($_POST['telephone']);
    		$email = trim($_POST['email']);
    		$adresse = trim($_POST['adresse']);
    		$code_postal = trim($_POST['code_postal']);
    		$ville = trim($_POST['ville']);
        }
    }	
    	/* Si le formulaire n'est pas posté de notre site on renvoie vers la page d'accueil */
    	elseif ($_SERVER['HTTP_REFERER'] != 'http://monsite.com/formulaire.php/') // Mettre l'adresse de la page qui affiche le formulaire
    	{
    		header('Location: http://www.monsite.com/'); // Mettre l'adresse de la page d'accueil
    	}
     
    	/* On vérifie que tous les champs sont remplis */
    	elseif (empty($nom_prenom)
    		|| empty($telephone)
    		|| empty($email)
    		|| empty($adresse)
    		|| empty($code_postal)
    		|| empty($ville))
    	{
    	$alert = 'Tous les champs doivent être renseignés';
    	}
     
    	/* On vérifie que le format de l'e-mail est correct */
    	$regex_email = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    	elseif (!preg_match($regex_email, $email))
    	{
    		$alert = 'L\'adresse '.$email.' n\'est pas valide';
    	}
     
    	/* On vérifie qu'il n'y a aucun header dans les champs */
    	$regex_header = '/[\n\r]/';
    	elseif (preg_match($regex_header, $nom_prenom)
    		|| preg_match($regex_header, $telephone)
    		|| preg_match($regex_header, $email)
    		|| preg_match($regex_header, $adresse)
    		|| preg_match($regex_header, $code_postal)
    		|| preg_match($regex_header, $ville))
    	{
    	$alert = 'En-têtes interdites dans les champs du formulaire';
    	}
     
    	/* Destinataire (adresse e-mail) */
    	$mail_to = 'contact@monsite.com'; // Adresse du destinataire
    	$mail_to_name = '';
     
     
    	/* En-têtes de l'e-mail */
    	$header = "From: \"".$mail_from."\"<".$mail_from_name.">"."\r\n";
     
     
    	/* SUJET DU FORMULAIRE*/
    	$sujet = "Formulaire - ";
     
     
    	/* Construction du message */
     
    	$message = 'Nom - Prénom : '.$nom_prenom."\r\n";
    	$message.= 'Téléphone : '.$telephone."\r\n";
    	$message.= 'email : '.$email."\r\n";
    	$message.= 'Adresse : '.$adresse."\r\n";
    	$message.= 'Code postal : '.$code_postal."\r\n";
    	$message.= 'Ville : '.$ville."\r\n";
     
    	/* Envoi de l'e-mail */
    	elseif (mail($mail_to, $sujet, $message, $header))
    	{
    		header('Location: http://www.monsite.com/remerciement.php');// Mettre l'adresse de la page de redirection
    	}
    	else
    	{
    		unset($_POST);
    	}
    A+.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    Salut et merci cela débloque la premiere partie du script

    mais cela indique le meme message d'erreur pour la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elseif (!preg_match($regex_email, $email))

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Déclare ce bout de code avant ton if car ça tronque tes conditions:
    $regex_email = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    il n'y a plus d'eerreur mais il ne verifie plus rien et n'envoi plus le mail lol

    et en plus sur les autres pages du site il me redirige automatiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	elseif ($_SERVER['HTTP_REFERER'] != 'http://monsite.com/formulaire.php/') // Mettre l'adresse de la page qui affiche le formulaire
    	{
    		header('Location: http://www.monsite.com/'); // Mettre l'adresse de la page d'accueil
    car en deplacant l'acolade il lance le script sans vérifier if (isset($_POST['envoyer'])) clic sur le bouton du formulaire

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par megaup34 Voir le message
    il n'y a plus d'eerreur mais il ne verifie plus rien et n'envoi plus le mail lol

    et en plus sur les autres pages du site il me redirige automatiquement

    car en deplacant l'acolade il lance le script sans vérifier if (isset($_POST['envoyer'])) clic sur le bouton du formulaire
    C'est un problème d'algo, à toi de voir les conditions , on ne sait pas ton attente

    A+.

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/06/2009, 23h05
  2. Réponses: 4
    Dernier message: 16/10/2006, 15h16
  3. Syntax error: unexpected end of file
    Par freakfm dans le forum Linux
    Réponses: 1
    Dernier message: 13/09/2006, 19h56
  4. [PHP-JS] Parse error: syntax error, unexpected T_STRIN
    Par maldini dans le forum Langage
    Réponses: 4
    Dernier message: 25/07/2006, 18h49
  5. Parse error: syntax error, unexpected '}' help
    Par beur dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2006, 21h33

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