Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2011, 23h16   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 2
Points : 2
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 :
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
megaup34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 05h10   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonsoir,

Tu as mal positionné la fermeture de l'accolade de ton premier if.
Code :
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+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 09h06   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 2
Points : 2
Salut et merci cela débloque la premiere partie du script

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

Code :
elseif (!preg_match($regex_email, $email))
megaup34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 09h56   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Déclare ce bout de code avant ton if car ça tronque tes conditions:
Citation:
$regex_email = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 10h35   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 2
Points : 2
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 :
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
megaup34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 16h47   #6
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
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+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 18h40   #7
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 2
Points : 2
salut et merci pour les info

le but du script c'est de vérifier un formulaire

si on clique sur le bouton envoyer le script se lance

Initialisation des variables

puis vérification que les champs sont bien renseignés

puis vérification du mail

puis vérification du tél

si tout est ok alors on envoi le formulaire par mail

et on redirige la page vers une page de remerciement

sinon on réaffiche le formulaire avec message d'erreur (en conservant les champs saisies)
megaup34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h47.


 
 
 
 
Partenaires

Hébergement Web