Page 1 sur 1

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

Posté : 18 mai 2006, 10:16
par azerty53
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

Posté : 18 mai 2006, 10:18
par charabia
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 !

Posté : 18 mai 2006, 10:23
par azerty53
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

Posté : 18 mai 2006, 10:27
par charabia
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 "}"...

Posté : 18 mai 2006, 10:32
par Ryle
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; 
	}

Posté : 18 mai 2006, 10:34
par charabia
: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.

Posté : 18 mai 2006, 10:37
par azerty53
: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:

Posté : 18 mai 2006, 10:40
par azerty53
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:

Posté : 18 mai 2006, 10:40
par ouckileou
cliquette sur Résolu alors

Posté : 18 mai 2006, 10:42
par charabia
Quoi avec mon code tu as encore cette erreur ?

Posté : 18 mai 2006, 10:44
par Ryle
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']) 
	) { 

Posté : 18 mai 2006, 10:47
par azerty53
ah oui avec l'indentation on voit vraiment tout.

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

Posté : 18 mai 2006, 10:47
par charabia
arfff exact pour les ( et ) j'ai pas fait gaffe. Tu as exactement 26 "(" et 19 ")", ça fait une belle différence...