Parse error ???? je ne vois pas la !!

Eléphant du PHP | 119 Messages

18 mai 2006, 10:16

bonjour a la communauté.

je suis en train d'ecrire un script qui s'occupe de verifier la validité de mon formulaire.

il me met cette erreur:

Parse error: syntax error, unexpected '{' in :\wamp5\www\Dcp\valident.php on line 31.

mais j'ai beau verifer tout mes { je ne vois pas d'ou vient l'erreur.

Code : Tout sélectionner

$Eresp = $_POST['responsable']; $Esect = $_POST['secteur']; $Efax = $_POST['fax']; //on verifie que les champs sont remplis if ((empty($_POST['raison']) && (empty($_POST['siret']) && (empty($_POST['adresse']) && (empty($_POST['codepostal']) && (empty($_POST['ville']) && (empty($_POST['tel']) && (empty($_POST['mail'])) [b]{[/b] echo '<p>Tous les champs ne sont pas remplis, corrigez, svp <br/></p>'; echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; exit; } else { // on vérifie la validité de l'email if (ereg("([A-Za-z0-9]|-|_|\.)*@([A-Za-z0-9]|-|_|\.)*\.([A-Za-z0-9]|-|_|\.)*",$Email)) { echo '<p>Votre email n\'est pas valide, corrigez, svp <br/></p>'; echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; exit; } else { // on verifie le telephone if (ereg("^[0-9 -.]{10,10}",$Etel)) { echo '<p>Votre numéro de telephone n\'est pas valide, corrigez, svp <br/></p>'; echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; exit; } } else { // on verifie la longueur du siret $lgsiret=strlen($Esiret); if ($lgsiret <> 14) { echo '<p>Votre numéro de siret doit comporter 14 caractères, corrigez, svp <br/></p>'; echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; exit; } } else { // on verifie la longueur du code postal $lgcp=strlen($Ecp); if ($lgsiret <> 5) { echo '<p>Votre code postal doit comporter 5 caractères, corrigez, svp <br/></p>'; echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; exit; } } else { // on verifie que les champs sont remplis $lgsiret=strlen($Esiret); if ($lgsiret <> 14) { echo '<p>Votre numéro de siret doit comporter 14 caractères, corrigez, svp <br/></p>'; echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; exit; } } else { echo '<p> Tout est OK <br/></p>'; exit; }
en gras, la ligne 31

Merci beaucoup

Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 mai 2006, 10:18

Utilises le bbcode PHP on comprendra beaucou mieux :)

Tu as un } qui manque dans ton code. Indentes tout correctement, tu le verras de suite ;)

Edit, en fait ça ne va pas du tout lol tes { et } sont placés un peu n'importe comment. Idem pour tes if - else qui sont imbriqués de façon pas top...Tu peux les transformer en elsif !

Eléphant du PHP | 119 Messages

18 mai 2006, 10:23

j'ai verifié mon code et le premier { se trouve a la ligne 31
donc je ne vois pas pourquoi il me manque un } a la ligne 31

Cordialement

Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 mai 2006, 10:27

Ne te fies pas toujours à la ligne indiquée. Ce n'est pas toujours la bonne.

Une vérification toute simple : tu recherches le nombre de "{" de ta page et idem pour "}". Tu verras de suite. J'ai 13 "{" et 12 "}"...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mai 2006, 10:32

Je me suis permis d'indenter ton code histoire d'y voir plus clair...

C'est effectivement bizare entre le premier else qui n'est pas fermé, et les else qui ferment d'autres else, y a quelque chose de pas logique dans tes acolades :)
Y a de grande chance qu'il panique à la premiere acolade qu'il trouve parce qu'il arrive pas à comprendre où elle se termine.. c'est qu'il a p'tit coeur fragile le php, faut pas lui faire des frayeurs comme ça :)
$Eresp = $_POST['responsable']; 
$Esect = $_POST['secteur']; 
$Efax = $_POST['fax']; 

//on verifie que les champs sont remplis 
if ((empty($_POST['raison']) && (empty($_POST['siret']) && (empty($_POST['adresse']) && (empty($_POST['codepostal']) && (empty($_POST['ville']) && (empty($_POST['tel']) && (empty($_POST['mail'])) {
	echo '<p>Tous les champs ne sont pas remplis, corrigez, svp <br/></p>'; 
	echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
	exit; 
} 
else {    
	// on vérifie la validité de l'email 
	if (ereg("([A-Za-z0-9]|-|_|\.)*@([A-Za-z0-9]|-|_|\.)*\.([A-Za-z0-9]|-|_|\.)*",$Email)) { 
		echo '<p>Votre email n\'est pas valide, corrigez, svp <br/></p>'; 
		echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
		exit; 
	} 
	else { 
		// on verifie le telephone 
		if (ereg("^[0-9 -.]{10,10}",$Etel)) { 
			echo '<p>Votre numéro de telephone n\'est pas valide, corrigez, svp <br/></p>'; 
			echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
			exit; 
		} 
	} 
	else { 
		// on verifie la longueur du siret 
		$lgsiret=strlen($Esiret); 
		if ($lgsiret <> 14) { 
			echo '<p>Votre numéro de siret doit comporter 14 caractères, corrigez, svp <br/></p>'; 
			echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
			exit; 
		} 
	} 
	else { 
		// on verifie la longueur du code postal 
		$lgcp=strlen($Ecp); 
		if ($lgsiret <> 5) { 
			echo '<p>Votre code postal doit comporter 5 caractères, corrigez, svp <br/></p>'; 
			echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
			exit; 
		} 
	} 
	else { 
		// on verifie que les champs sont remplis 
		$lgsiret=strlen($Esiret); 
		if ($lgsiret <> 14) { 
			echo '<p>Votre numéro de siret doit comporter 14 caractères, corrigez, svp <br/></p>'; 
			echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
			exit; 
		} 
	} 
	else { 
		echo '<p> Tout est OK <br/></p>'; 
		exit; 
	}

Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 mai 2006, 10:34

:lol: Ryle

En plus tu vérifies deux fois la même chose...le siret.

Ce code ne serait pas plus indiqué ? Après indentation et correction :
$Eresp = $_POST['responsable']; 
$Esect = $_POST['secteur']; 
$Efax = $_POST['fax']; 
    
//on verifie que les champs sont remplis 
if((empty($_POST['raison']) && (empty($_POST['siret']) && (empty($_POST['adresse']) && (empty($_POST['codepostal']) && (empty($_POST['ville']) && (empty($_POST['tel']) && (empty($_POST['mail'])) 
{
	echo '<p>Tous les champs ne sont pas remplis, corrigez, svp<br/></p>'; 
	echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
	exit; 
}
//on verifie mail
elseif(ereg("([A-Za-z0-9]|-|_|\.)*@([A-Za-z0-9]|-|_|\.)*\.([A-Za-z0-9]|-|_|\.)*",$Email)) 
{
	echo '<p>Votre email n\'est pas valide, corrigez, svp<br/></p>'; 
	echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
	exit; 
}
// on verifie le telephone
elseif(ereg("^[0-9 -.]{10,10}",$Etel))
{
	echo '<p>Votre numéro de telephone n\'est pas valide, corrigez, svp<br/></p>'; 
	echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
	exit; 
}
// on verifie la longueur du siret
elseif(strlen($Esiret) <> 14) 
{
	echo '<p>Votre numéro de siret doit comporter 14 caractères, corrigez, svp<br/></p>'; 
	echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
	exit; 
}
elseif(strlen($Ecp) <> 5) 
{
	echo '<p>Votre code postal doit comporter 5 caractères, corrigez, svp <br/></p>'; 
	echo '<p><a href="index.php?page=inscription4">Recommencer</a></p>'; 
	exit;
}
else
{ 
	echo '<p> Tout est OK <br/></p>'; 
	exit; 
}
Bien indenté tu vois de suite que tout s'ouvre et se ferme correctement. Donc pour tes prochains codes, n'oublies surtout pas d'indenter, c'est super important en prog.

Eléphant du PHP | 119 Messages

18 mai 2006, 10:37

:lol: ryle

oui je vais tacher d'etre plus rigoureu la prochaine fois merci beaucoup a vous je vous ai fait perdre du temps pour rien.

Merci et encore merci :oops: :oops: :oops:

Eléphant du PHP | 119 Messages

18 mai 2006, 10:40

bah mince il me trouve encore un parse error

Parse error: syntax error, unexpected '{' in D:\wamp5\www\Dcp\valident.php on line 30

c'est pas possible je vais jamais m'en sortir :twisted: :twisted: :twisted:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 mai 2006, 10:40

cliquette sur Résolu alors

Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 mai 2006, 10:42

Quoi avec mon code tu as encore cette erreur ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mai 2006, 10:44

on peut aussi faire de l'indentation dans les if... y aurait pas un peu trop beaucoup de parenthèses ouvertes ? ;)
if (
		( empty($_POST['raison']) && 
			( empty($_POST['siret']) && 
				( empty($_POST['adresse']) && 
					( empty($_POST['codepostal']) && 
						( empty($_POST['ville']) && 
							( empty($_POST['tel']) && 
								( empty($_POST['mail']) 
	) { 

Eléphant du PHP | 119 Messages

18 mai 2006, 10:47

ah oui avec l'indentation on voit vraiment tout.

Merci beaucoup je coderai moins idiottement maintenant :lol: :lol:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 mai 2006, 10:47

arfff exact pour les ( et ) j'ai pas fait gaffe. Tu as exactement 26 "(" et 19 ")", ça fait une belle différence...