8796 sujets

Développement web côté serveur, CMS

salut !!
bon voila j'ai une erreur : Parse error: syntax error, unexpected $end
Je croit savoir que cela est dû a un problème de balise manquante ou une parenthèse manquante ? si j'ai bien compris l'erreur... ^^

voila mon code
<?php
@session_start();
header('Content-type: text/html; charset=utf-8');
include('config.php');

/********Actualisation de la session...**********/

include('fonctions.php');
connexionbdd();
actualiser_session();

/********Fin actualisation de session...**********/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>J&eacute;r&eacute;m&#39;ap&eacute;ro</title>
<link rel="shortcut icon" href="favicon.ico" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<meta http-equiv="content-language" content="fr" />
<link href="style.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>

<?php
if(isset($_SESSION['membre_id']))
{
header('Location: '.ROOTPATH.'/index.php');
exit();
}



$_SESSION['erreurs'] = 0;


//mail
if(isset($_POST['mail']))
{
$mail = trim($_POST['mail']);
$mail_result = checkmail($mail);
if($mail_result == 'isnt')
{
$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' n\'est pas valide.</span><br/>';
$_SESSION['form_mail'] = '';
$_SESSION['erreurs']++;
}

else if($mail_result == 'exists')
{
$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' est deja  pris, <a href="contact.php">contactez-nous</a> </span><br/>';
$_SESSION['form_mail'] = '';
$_SESSION['erreurs']++;
}

else if($mail_result == 'ok')
{
$_SESSION['mail_info'] = '';
$_SESSION['form_mail'] = $mail;
}

else if($mail_result == 'empty')
{
$_SESSION['mail_info'] = '<span class="erreur">Vous n\'avez pas entr&eacute; de mail.</span><br/>';
$_SESSION['form_mail'] = '';
$_SESSION['erreurs']++;
}
}

else
{
header('Location: /index.php');
exit();
}

//mail suite
if(isset($_POST['mail_verif']))
{
$mail_verif = trim($_POST['mail_verif']);
$mail_verif_result = checkmailS($mail_verif, $mail);
if($mail_verif_result == 'different')
{
$_SESSION['mail_verif_info'] = '<span class="erreur">Le mail de v&eacute;rification diff&egrave;re du mail.</span><br/>';
$_SESSION['form_mail_verif'] = '';
$_SESSION['erreurs']++;
}

else
{
if($mail_result == 'ok')
{
$_SESSION['mail_verif_info'] = '';
$_SESSION['form_mail_verif'] = $mail_verif;
}

else
{
$_SESSION['mail_verif_info'] = str_replace(' mail', ' mail de v&eacute;rification', $_SESSION['mail_info']);
$_SESSION['form_mail_verif'] = '';
$_SESSION['erreurs']++;
}
}
}

else
{
header('Location: /index.php');
exit();
}



?><?php

if($_SESSION['erreurs'] == 0)
{$insertion = 'INSERT INTO membres ("membre_mail") VALUES("'.$_POST["mail"].'")';

if(mysql_query($insertion))
{
$queries++;
vidersession();


?>
<h1>Inscription validée !</h1>
<p>Nous vous remercions de vous être inscrit sur notre site, votre inscription a
été validée !<br />
Vous pouvez vous connecter avec vos identifiants <a href="connexion.php">ici</a>.
</p>
<?php
if($_SESSION['erreurs'] > 0)
{
if($_SESSION['erreurs'] == 1) { $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu 1 erreur.</span><br/>';}
else { $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu '.$_SESSION['erreurs'].' erreurs.</span><br/>';
?>
<h1>Inscription non validée.</h1>
<p>Vous avez rempli le formulaire d&#39;inscription du site et nous vous en remercions,
cependant, nous n&#39;avons pas pu valider votre inscription, en voici les raisons :</p><br />
<?php
echo $_SESSION['nb_erreurs'];
echo $_SESSION['mail_info'];
echo $_SESSION['mail_verif_info'];

}
if ($sqlbug !== true)
{
?><p>Nous vous proposons donc de revenir &agrave; la page pr&eacute;c&eacute;dente pour corriger
les erreurs.</p>
<div class="center">
<a href="inscription.php">Retour</a></div>
<?php
}

else
{
?><p>Une erreur est survenue dans la base de donn&eacute;es, votre formulaire
semble ne pas contenir d&#39;erreurs, donc il est possible que le probl&egrave;me vienne de
notre c&ocirc;t&eacute;, r&eacute;essayez de vous inscrire ou contactez-nous.</p>
<div class="center">
<a href="inscription.php">Retenter une inscription</a>
<a href="contact.php">Contactez-nous</a></div>
<?php
}
}
}
?>
</body>
</html>
Modifié par volcomboy62 (25 Feb 2011 - 16:42)
Salut,

Peux-tu mettre le message d'erreur en entier?

Dans celui-ci, il y a le nom du fichier en question, ainsi que la ligne dans laquelle se trouve à priori l'erreur.


Cependant, il semble y avoir une accolade manquante à partir de la ligne:

if($_SESSION['erreurs'] == 0)
{$insertion = 'INSERT INTO membres ("membre_mail") VALUES("'.$_POST["mail"].'")';
Alors:
- y'a des balises, même rudimentaires mais efficaces, pour afficher du code sur ce forum
- @session_start : chapeau, même si les sessions foirent, tu ne le sauras pas
- header en UTF-8, meta en windows-1252, beau megamix
- header location en plein milieu du html, c'est joli. Et inutile.
- des erreurs d'encodage DANS le fichier, ça promet déjà
- oui, unexpected $end signifie qu'une fin de section était attendue, mais non-trouvée. Avec un code non-indenté, impossible de voir où se situe le problème. De plus, ce genre de problèmes est réglé en approximativement 1.3s avec un IDE qui gère les sections (notepad++ le fait, c'est dire comme c'est un peu basique)...
le code erreur complet est : Parse error: syntax error, unexpected $end in /homepages/27/d353979681/htdocs/trait-inscription2.php on line 166

c'est a dire la dernière ligne de mon code, c'est sa que je ne comprend pas Smiley decu
Lpu8er a écrit :
Alors:
- y'a des balises, même rudimentaires mais efficaces, pour afficher du code sur ce forum
- @session_start : chapeau, même si les sessions foirent, tu ne le sauras pas
- header en UTF-8, meta en windows-1252, beau megamix
- header location en plein milieu du html, c'est joli. Et inutile.
- des erreurs d'encodage DANS le fichier, ça promet déjà
- oui, unexpected $end signifie qu'une fin de section était attendue, mais non-trouvée. Avec un code non-indenté, impossible de voir où se situe le problème. De plus, ce genre de problèmes est réglé en approximativement 1.3s avec un IDE qui gère les sections (notepad++ le fait, c'est dire comme c'est un peu basique)...


le "@" a été mis volontairement, et la meta en windows-1252 j'avoue c'est une belle erreur de ma part ^^
et ou voit tu le header location dans du html ? il est entre balise php

Voila mon code php indenté correctement :
<?php
@session_start();
header('Content-type: text/html; charset=utf-8');
include_once('config.php');

/********Actualisation de la session...**********/

include_once('fonctions.php');
connexionbdd();
actualiser_session();

/********Fin actualisation de session...**********/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Jérém&#39;apéro</title>			
<link rel="shortcut icon" href="favicon.ico" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="content-language" content="fr" />
<link href="style.css"	title="Défaut" rel="stylesheet" type="text/css" media="screen" />	 
</head>
<body> 

<?php
if(isset($_SESSION['membre_id']))
{
	header('Location: '.ROOTPATH.'/index.php');
	exit();
}


$_SESSION['erreurs'] = 0;


//mail
if(isset($_POST['mail']))
{
	$mail = trim($_POST['mail']);
	$mail_result = checkmail($mail);
	if($mail_result == 'isnt')
	{
		$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' n\'est pas valide.</span><br/>';
		$_SESSION['form_mail'] = '';
		$_SESSION['erreurs']++;
	}
	
	else if($mail_result == 'exists')
	{
		$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' est deja  pris, <a href="contact.php">contactez-nous</a> </span><br/>';
		$_SESSION['form_mail'] = '';
		$_SESSION['erreurs']++;
	}
	
	else if($mail_result == 'ok')
	{
		$_SESSION['mail_info'] = '';
		$_SESSION['form_mail'] = $mail;
	}
	
	else if($mail_result == 'empty')
	{
		$_SESSION['mail_info'] = '<span class="erreur">Vous n\'avez pas entr&eacute; de mail.</span><br/>';
		$_SESSION['form_mail'] = '';
		$_SESSION['erreurs']++;	
	}
}

else
{
	header('Location: /index.php');
	exit();
}

//mail suite
if(isset($_POST['mail_verif']))
{
	$mail_verif = trim($_POST['mail_verif']);
	$mail_verif_result = checkmailS($mail_verif, $mail);
	if($mail_verif_result == 'different')
	{
		$_SESSION['mail_verif_info'] = '<span class="erreur">Le mail de v&eacute;rification diff&egrave;re du mail.</span><br/>';
		$_SESSION['form_mail_verif'] = '';
		$_SESSION['erreurs']++;
	}
	
	else
	{
		if($mail_result == 'ok')
		{
			$_SESSION['mail_verif_info'] = '';
			$_SESSION['form_mail_verif'] = $mail_verif;
		}
		
		else
		{
			$_SESSION['mail_verif_info'] = str_replace(' mail', ' mail de v&eacute;rification', $_SESSION['mail_info']);
			$_SESSION['form_mail_verif'] = '';
			$_SESSION['erreurs']++;
		}
	}
}

else
{
	header('Location: /index.php');
	exit();
}


?><?php

if($_SESSION['erreurs'] == 0)
{$insertion = 'INSERT INTO membres ("membre_mail") VALUES("'.$_POST["mail"].'")';
	
	if(mysql_query($insertion))
	{
		$queries++;
		vidersession();
		/*informe qu'il s'est deja inscrit s'il actualise, si son navigateur
					bugue avant l'affichage de la page et qu'il recharge la page, etc.*/
		?>
		<h1>Inscription validée !</h1>
		<p>Nous vous remercions de vous être inscrit sur notre site, votre inscription a 
		été validée !<br />
		Vous pouvez vous connecter avec vos identifiants <a href="connexion.php">ici</a>.
		</p>
		<?php
		if($_SESSION['erreurs'] > 0)
		{
			if($_SESSION['erreurs'] == 1) { $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu 1 erreur.</span><br/>';}
			else { $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu '.$_SESSION['erreurs'].' erreurs.</span><br/>';
				?>
				<h1>Inscription non validée.</h1>
				<p>Vous avez rempli le formulaire d&#39;inscription du site et nous vous en 
				remercions, cependant, nous n&#39;avons pas pu valider votre inscription, en voici 
				les raisons :</p><br />
				<?php
				echo $_SESSION['nb_erreurs'];
				echo $_SESSION['mail_info'];
				echo $_SESSION['mail_verif_info'];

			}
			if ($sqlbug !== true)
			{
				?><p>Nous vous proposons donc de revenir à la page précédente pour 
				corriger les erreurs.</p>
				<div class="center">
				<a href="inscription.php">Retour</a></div>
				<?php
			}
			
			else
			{
				?><p>Une erreur est survenue dans la base de données, votre 
				formulaire semble ne pas contenir d&#39;erreurs, donc il est possible que le 
				problème vienne de notre côté, réessayez de vous inscrire ou contactez-nous.</p>
				<div class="center">
				<a href="inscription.php">Retenter une inscription</a>
				<a href="contact.php">Contactez-nous</a></div>
				<?php
			}
		}
	}
	?>
	</body>
	</html>
merci mamax effectivement il manquait une accolade a la fin du fichier.
Maintenant il ne se passe rien, normalement la personne rentre son adresse email et ensuite si elle est valide, elle est enregistrer dans ma base de donnée et un message affiche inscription validée :

	<?php		
if($_SESSION['erreurs'] == 0)
			{$insertion = 'INSERT INTO membres ("membre_mail") VALUES("'.$_POST["mail"].'")';
				
				if(mysql_query($insertion))
				{
					$queries++;
					vidersession();
					/*informe qu'il s'est deja inscrit s'il actualise, si son navigateur
					bugue avant l'affichage de la page et qu'il recharge la page, etc.*/
				?>
<h1>Inscription validée !</h1>
<p>Nous vous remercions de vous être inscrit sur notre site, votre inscription a 
été validée !<br />
Vous pouvez vous connecter avec vos identifiants <a href="connexion.php">ici</a>.
</p>


je n'y comprend plus rien là Smiley confus
L'erreur sera toujours sur la dernière ligne, puisque PHP ne sait pas où elle est Smiley lol

Et oui, entre balises PHP, mais en plein milieu du code html.
Chose qui ne sert à rien à part ralentir l'exécution, foutre le dawa dans le code, et tuer des bébés phoques.

Cool, au lieu de chercher l'erreur, tu viens de la rendre difficile à retrouver Smiley lol
Relis ton code, et poses-toi les questions de logique quant à tes différentes conditions, différentes possibilités. Y'a aucune solution miracle: c'est de la logique.
je vient de m'apercevoir qu'une fois que j'ai appuiyer sur le bouton inscription, il y a une page sans rien certe, mais dans l'url c'est ma page d'inscription or je devrait avoir un message soit d'erreur, soit un message qui m'indique que mon inscription a été validé et une redirection vers ma page d'acceuil, donc il y a déjà sa qui ne fonctionne pas, je sais ou regardé pour l'instant Smiley lol
Une méthode que j'utilise beaucoup, consiste à mettre des print un peu partout afin de contrôler dans la phase de débuggage, les phases de conditions et le contenu des variables