Erreur Code PHP (Parse error...)

Fermé
Utilisateur anonyme - 19 août 2008 à 22:39
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 - 19 août 2008 à 23:48
Bonjour. C'est la première fois que je poste ici et je vais tenter de faire bonne impression.
Voilà. Ca fait 3 heures que je parcours le web, le réseau, l'internet, la toile, enfin, etc...

Et impossible de trouver une solution.



J'ai codé un gros formulaire qui permet l'accès à mon espace membre (Delfospace). Il requiert 5 éléments : Pseudo, entre 3 et 30 caractères, Email, Mot de passe, entre 3 et 30 caractères, et la confirmation respective de ces deux derniers.

Une fois validé, la page se recharge. C'est là qu'intervient le script PHP qui entoure mon formulaire.

Si les variables générés par le formulaire n'existent pas (dans la cas de la première visite), affichage d'un formulaire vierge.
Si les variables sont correctes (vérification par Regex), sauvegarde dans MySQL et affichage d'un message de remerciment.
Si les variables sont incorrectes (toujours vérifiés par Regex), affichage du même formulaire, complété âr défaut avec les précédentes entrés, et un signalement pour chaque champ (vérif. Regex pour les 5 entrées) de l'erreur ou de l'exactitude de l'entrée par l'affichage d'une image.
Dans tous les autres cas (Else), affichage d'un message d'erreur classique.

Voici mon code (que j'ai retapé de bout en bout) :


<?php
if (isset($_POST['pseudo']) && ($_POST['mail']) && ($_POST['verif_mail']) && ($_POST['password']) && ($_POST['verif_passord'])) // On vérifie si les variables du forumlaire existent. Dans le cas où les variables n'existent pas, on affiche un formulaire vierge
{
if (preg_match("#^[0-9a-zA-Z.-]{3,30}$#","$_POST['pseudo']")) && (preg_match("#^[az0-9-_-]+@[a-z0-9._-{2,}\,[a-z]{2,4}$#","$_POST['mail']")) && (preg_match("#^.[^<>]{3,30}$#","$_POST['password']")) && ("$_POST['verif_passord']" == "$_POST['password']") && ("$_POST['verif_mail']" == "$_POST['mail']") // Si les variables sont toutes correctes, on valide le formulaire, on complète la table MySQL, et on redirige le client
{
$pseudo=mysql_real_escape_string(htmlspecialchars$_POST['pseudo']));
$mail=mysql_real_escape_string(htmlspecialchars$_POST['mail']));
$password=mysql_real_escape_string(htmlspecialchars$_POST['password'])); // On sécurise les codes contre les codes Html et Java ainsi que les injections SQL
mysql_connect("localhost", "Base", "Pass"); // Logins masqués volontairement, sur et certains ils sont corrects.
mysql_select_db("Table"); //Pareil, masqué, mais correct

// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO delfospace_membres VALUES('', '$pseudo', '$mail', '$password')"); // Ajout des donnés dans la table. Là aussi, la table comprend quatres champs, dont le premier est une ID auto incrimenité  

mysql_close();

<h2 id="p1" class="post-title"><a name="Formulaire_dinscription_&agrave;_Delfospace"></a><span style="text-decoration: underline;">Inscription &agrave; Delfospace</span></h2>
<br />
F&eacute;licitations ! Votre inscription &agrave; bien
&eacute;t&eacute; prise en compte. Vous pouvez maintenant vous
connecter &agrave; Delfospace !<br />// affichage du message de félicitation.

// [...] //Je pense que vous n'avez pas envie de lire ce qui suit (codes annonces Google, etc...)

}
else // Si une variable est fausse, on renvoie le même formulaire avec les erreurs signalés. On lui demande de corriger le lot. (au client)
{
?> 
<h2 id="p1" class="post-title"><a name="Formulaire_dinscription_&agrave;_Delfospace"></a><span style="text-decoration: underline;">Formulaire d'inscription &agrave; Delfospace</span></h2>





Une erreur à été décelé dans le formulaire. Il s'agit surement d'une erreur de frappe. Vérifiez votre formulaire avant de le renvoyer. Il se peut que vous avez entrés des caractères interdits, ou que vous avez oubliés un @ à l'email, par exemple.<br />

<br />

&nbsp;Pour cr&eacute;er votre compte, veuillez remplir ce formulaire. Ces informations seront modifiables depuis Delfospace. <br />

// [...] Le formulaire. Si vous voulez le voir, postez...

<?php
}
}
else
{
<?php
if(isset($_POST['pseudo']) && ($_POST['mail']) && ($_POST['verif_mail']) && ($_POST['password']) && ($_POST['verif_passord']) // On vérifie si les variables du forumlaire existent
{ // Dans le cas où les variables n'existent pas, on affiche un formulaire vierge
echo ?> 
<h2 id="p1" class="post-title"><a name="Formulaire_dinscription_&agrave;_Delfospace"></a><span style="text-decoration: underline;">Formulaire d'inscription &agrave; Delfospace</span></h2>





Ce formulaire va vous permettre de vous inscrire &agrave; l'espace
membre du site, Delfospace. Grace &agrave; ce compte, vous pourrez
acceder &agrave; des options avanc&eacute;s, &agrave; des contenus
exclusifs et bien plus encore ! <br />

// [...] // Formulaire vierge


Voilà bref.

Et maintenant l'erreur :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/alternc/html/d/dede7/delfospace/inscription.php on line 92

(Lien ici)
A voir également:

16 réponses

Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
19 août 2008 à 23:48
Je me suis permis de te refaire un formulaire, essaie de l'adapter a ton site =)

<?php
$connect = mysql_connect('localhost', 'root', '');
mysql_select_db('maBase', $connect);

if (isset($_POST['pseudo']))
{
	$req1 = preg_match("#^[0-9a-zA-Z.-]{3,30}$#", $_POST['pseudo']);
	$req2 = preg_match("#^[a-zA-Z0-9_.-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#", $_POST['email']);
	$req3 = preg_match("#^.[^<>]{3,30}$#", $_POST['password']);
	$req4 = ($_POST['email'] == $_POST['email2']);
	$req5 = ($_POST['password'] == $_POST['password2']);
	$req6 = isset($_POST['rules']);
	
	if (!$req1)
		$error = 'Votre pseudo ne correspond pas aux critères demandés';
	elseif (!$req2)
		$error = 'Votre email ne correspond pas aux critères demandés';
	elseif (!$req3)
		$error = 'Votre mot de passe ne correspond pas aux critères demandés';
	elseif (!$req4)
		$error = 'Les deux adresse mails ne correspondent pas';
	elseif (!$req5)
		$error = 'Les deux mot de passes ne correspondent pas';
	elseif (!$req6)
		$error = 'Vous n\'avez pas accepté le réglement';
	else
	{
		$sql = 'SELECT * FROM `delfospace_membres` WHERE `pseudo` = "'.$_POST['pseudo'].'"';
		$req = mysql_query($sql);
		if (mysql_num_rows($req) > 0)
			$error = 'Le pseudo est deja utilisé';
		else
		{
			$pseudo = $_POST['pseudo'];
			$email = $_POST['email'];
			$password = $_POST['password'];
			
			$sql = 'INSERT INTO `delfospace_membres` VALUES("", "'.$pseudo.'", "'.$email.'", "'.md5($password).'")';
			mysql_query($sql);
			
			$error = 'Votre inscription a bien été effectué..';
		}
	}
}

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Document sans titre</title>
</head>

<body>
	<div style="font-size: 26px; font-weight: bold">Formulaire d'inscription à Delfospace</div><br/><br/>
	<div style="color: #FF0000; font-size: 16px"><?php echo (isset($error))?$error.'<br/><br/>':''; ?></div>
	<div style="font-size: 13px">
		Ce formulaire va vous permettre de vous inscrire à l'espace membre du site, Delfospace. Grace à ce compte, vous pourrez acceder à des options avancés, à des contenus exclusifs et bien plus encore !<br/><br/>
		Pour créer votre compte, veuillez remplir ce formulaire. Ces informations seront modifiables depuis Delfospace. <br/><br/>
	</div>
	<span style="font-size: 9px">(Ces informations sont obligatoires)</span><br/><br/>
	<div style="font-size: 13px">
		<form action="test8.php" method="post">
			Pseudo : Votre pseudo doit faire entre 3 et 30 caractères.<br/>
			<input type="text" name="pseudo" value="<?php echo (isset($_POST['pseudo']))?$_POST['pseudo']:''; ?>" /><br/><br/>
			
			Email : Vous devez entrez une adresse email valide.<br/>
			<input type="text" name="email" value="<?php echo (isset($_POST['email']))?$_POST['email']:''; ?>" /><br/><br/>
			
			Confirmation de l'email : Retapez ici votre email.<br/>
			<input type="text" name="email2" value="<?php echo (isset($_POST['email2']))?$_POST['email2']:''; ?>" /><br/><br/>
			
			Mot de passe : Il doit faire entre 3 et 30 caractères.<br/>
			<input type="password" name="password" value="<?php echo (isset($_POST['password']))?$_POST['password']:''; ?>" /><br/><br/>
			
			Confirmation du mot de passe : Retapez votre mot de passe.<br/>
			<input type="password" name="password2" value="<?php echo (isset($_POST['password2']))?$_POST['password2']:''; ?>" /><br/><br/>
			
			<input type="checkbox" name="rules" value="1" /> J'ai lu et accepte <a href="http://www.dede7.weboserv.org/reglement.php?adress=/delfospace/insciption.php" target="_blank">les termes du réglement de Delfows.</a>
			<br/><br/>
			<input type="submit" value="Vérifiez le formulaire" />
		</form>
	</div>
</body>
</html>
1
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
19 août 2008 à 22:42
Sa serait bien tu pouvais mettre le code d'origine, car avec les [..] on a pas la moindre idée d'où se situe la ligne 92 =)
0
ShadowRevenge Messages postés 146 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 16 juillet 2009 13
19 août 2008 à 22:42
Tu peux nous dire quelle est la ligne 92 stp? ^^
Parce que j'ai pas envie de compter :p
0
donuts08 Messages postés 519 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
19 août 2008 à 22:43
bonjour,

c'est où la ligne 92?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
19 août 2008 à 22:45
Et surtout:
== "$_POST['password']"

A bannir!!

Ne prend SURTOUT PAS l'habitude de mettre tes variables dans ces foutus quotes.
== $_POST['password']


Et:
mysql_query("INSERT INTO delfospace_membres VALUES('', '".$pseudo."', '".$mail."', '".$password."')");


Bref c'est du détail, il faut la ligne 92 =)
0
Utilisateur anonyme
19 août 2008 à 22:45
Olley ! petit bug, je pensais ne pas déja avoir posté ! Désolé.

Voilà la suite et fin de mon message !


Et maintenant l'erreur :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/alternc/html/d/dede7/delfospace/inscription.php on line 92

(Lien ici : http://www.dede7.weboserv.org/delfospace/inscription.php)

A savoir que la ligne en question est la toute première que j'ai tapé en Code dans ce message. Avant le petit remake du code, cette ligne était la 185. Le message d'erreur me parlait aussi de la 185. Je ne vois pas ce qui cloche. Il n'y a rien d'intéressant au dessus et en dessous. Mais si jamais ça vous intéresse, je peux vous livrer le code en entier !

J'espère que vous trouverez solution à mon problème, merci d'avence !


Et encore bravo ! Jamais vu des personnes si rapides ^^


PS : Tiller, merci de tes conseils, je change ca tout de suite ;-)
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
19 août 2008 à 22:47
Si la première ligne est la 92, il nous faut celle d'avant. 5-10 avant
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 août 2008 à 22:49
salut,

tes <?php et ?> ne sont pas aux bons endroits, il en manque

<?php
if (isset($_POST['pseudo']) && ($_POST['mail']) && ($_POST['verif_mail']) && ($_POST['password']) && ($_POST['verif_passord'])) // On vérifie si les variables du forumlaire existent. Dans le cas où les variables n'existent pas, on affiche un formulaire vierge
{
if (preg_match("#^[0-9a-zA-Z.-]{3,30}$#","$_POST['pseudo']")) && (preg_match("#^[az0-9-_-]+@[a-z0-9._-{2,}\,[a-z]{2,4}$#","$_POST['mail']")) && (preg_match("#^.[^<>]{3,30}$#","$_POST['password']")) && ("$_POST['verif_passord']" == "$_POST['password']") && ("$_POST['verif_mail']" == "$_POST['mail']") // Si les variables sont toutes correctes, on valide le formulaire, on complète la table MySQL, et on redirige le client
{
$pseudo=mysql_real_escape_string(htmlspecialchars$_POST['pseudo']));
$mail=mysql_real_escape_string(htmlspecialchars$_POST['mail']));
$password=mysql_real_escape_string(htmlspecialchars$_POST['password'])); // On sécurise les codes contre les codes Html et Java ainsi que les injections SQL
mysql_connect("localhost", "Base", "Pass"); // Logins masqués volontairement, sur et certains ils sont corrects.
mysql_select_db("Table"); //Pareil, masqué, mais correct

// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO delfospace_membres VALUES('', '$pseudo', '$mail', '$password')"); // Ajout des donnés dans la table. Là aussi, la table comprend quatres champs, dont le premier est une ID auto incrimenité  

mysql_close();
?>
<h2 id="p1" class="post-title"><a name="Formulaire_dinscription_&agrave;_Delfospace"></a><span style="text-decoration: underline;">Inscription &agrave; Delfospace</span></h2>
<br />
F&eacute;licitations ! Votre inscription &agrave; bien
&eacute;t&eacute; prise en compte. Vous pouvez maintenant vous
connecter &agrave; Delfospace !<br />// affichage du message de félicitation.

// [...] //Je pense que vous n'avez pas envie de lire ce qui suit (codes annonces Google, etc...)
<?php
}
else // Si une variable est fausse, on renvoie le même formulaire avec les erreurs signalés. On lui demande de corriger le lot. (au client)
{
?> 
<h2 id="p1" class="post-title"><a name="Formulaire_dinscription_&agrave;_Delfospace"></a><span style="text-decoration: underline;">Formulaire d'inscription &agrave; Delfospace</span></h2>





Une erreur à été décelé dans le formulaire. Il s'agit surement d'une erreur de frappe. Vérifiez votre formulaire avant de le renvoyer. Il se peut que vous avez entrés des caractères interdits, ou que vous avez oubliés un @ à l'email, par exemple.<br />

<br />

&nbsp;Pour cr&eacute;er votre compte, veuillez remplir ce formulaire. Ces informations seront modifiables depuis Delfospace. <br />

// [...] Le formulaire. Si vous voulez le voir, postez...

<?php
}
}
else
{

// On vérifie si les variables du forumlaire existent
if(isset($_POST['pseudo']) && ($_POST['mail']) && ($_POST['verif_mail']) && ($_POST['password']) && ($_POST['verif_passord']) {
 // Dans le cas où les variables n'existent pas, on affiche un formulaire vierge

?>
<h2 id="p1" class="post-title"><a name="Formulaire_dinscription_&agrave;_Delfospace"></a><span style="text-decoration: underline;">Formulaire d'inscription &agrave; Delfospace</span></h2>





Ce formulaire va vous permettre de vous inscrire &agrave; l'espace
membre du site, Delfospace. Grace &agrave; ce compte, vous pourrez
acceder &agrave; des options avanc&eacute;s, &agrave; des contenus
exclusifs et bien plus encore ! <br />

// [...] // Formulaire vierge
0
donuts08 Messages postés 519 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
19 août 2008 à 22:51
ça va paraître bête mais c'est pas un problème avec ton commentaire? il est sur une seule ligne j'espère...

sinon essaies avec des isset partout plutôt (ex: isset($_POST['truc']) ) mais normalement cette ligne est bonne
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
19 août 2008 à 22:52
Soit Alain42 a raison soit tu les as viré sans faire attention en écourtant ton code, si le probleme n'est pas là:

Envoi Tout le code telle qu'elle, et avec exactement le même nombre de ligne que online
0
Utilisateur anonyme
19 août 2008 à 22:55
Un peu fatigué, je rame un peu...

Bon, perso, je crois que ca servirait à rien d'indiquer ce qu'il y a au dessus, mais si ca peu vous aider...

A savoir que je code PHP depuis 5 jours.

<body>





<div id="page">
<div id="page">
<div id="top">
<h1><a href="http://www.dede7.weboserv.org/delfos">Delfos
Web Site -
Delfows</a></h1>





</div>





<div id="middle">
<div id="main">
<div id="content">
<div class="post">
<?php
if (isset($_POST['pseudo']) && ($_POST['mail']) && ($_POST['verif_mail']) && ($_POST['password']) && ($_POST['verif_passord'])) // On vérifie si les variables du forumlaire existent. Dans le cas où les variables n'existent pas, on affiche un formulaire vierge
{
if (preg_match("#^[0-9a-zA-Z.-]{3,30}$#","$_POST['pseudo']")) && (preg_match("#^[az0-9-_-]+@[a-z0-9._-{2,}\,[a-z]{2,4}$#","$_POST['mail']")) && (preg_match("#^.[^<>]{3,30}$#","$_POST['password']")) && ("$_POST['verif_passord']" == "$_POST['password']") && ("$_POST['verif_mail']" == "$_POST['mail']") // Si les variables sont toutes correctes, on valide le formulaire, on complète la table MySQL, et on redirige le client
{
$pseudo=mysql_real_escape_string(htmlspecialchars$_POST['pseudo']));
$mail=mysql_real_escape_string(htmlspecialchars$_POST['mail']));
$password=mysql_real_escape_string(htmlspecialchars$_POST['password']));
mysql_connect("localhost", "Base", "Pass");
mysql_select_db("Table");

// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO delfospace_membres VALUES('', '$pseudo', '$mail', '$password')");

mysql_close();
?>
<h2 id="p1" class="post-title"><a name="Formulaire_dinscription_&agrave;_Delfospace"></a><span style="text-decoration: underline;">Inscription &agrave; Delfospace</span></h2>
<br />
F&eacute;licitations ! Votre inscription &agrave; bien
&eacute;t&eacute; prise en compte. Vous pouvez maintenant vous
connecter &agrave; Delfospace !<br />
<br />
<div style="text-align: center;"><a href="/connect.php"><small>> Connection <</small></a></div>
</div>



<div style="text-align: justify;">
<div style="text-align: right;"><br />




<br />
<script type="text/javascript"> <!--
   google_ad_client = "pub-7703474819142135";
   google_ad_slot = "9850021026";
   google_ad_width = 468;
   google_ad_height = 60;
   google_ad_format = "468x60_as";
   google_ad_type = "text_image";
   //--> </script>
   
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
   </script></div>
   <?php
}
else // Si une variable est fausse, on renvoie le même formulaire avec les erreurs signalés. On lui demande de corriger le lot.
{
?> 


La première ligne est la 85. La dernière est là 138. Elle débouche sur un code html faisant partie du PHP.

Merci pour votre aide rapide

Fichier TXT du code entier en cours de préparation
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
19 août 2008 à 22:56
Bon attend, sa me donne mal au crane tous ces bout un peu partout

Poste l'intégralité sur le même post, Merci

Avec la 92ème ligne de ton poste qui correspondrait a la 92ème ligne sur ta page
0
Utilisateur anonyme
19 août 2008 à 23:02
Excusez moi pour mon désordre (Vous ne me connaissez pas, c'est vrai...)


Bon, voilà le code intégral de la page ici : http://cid-2e5679e6c4c502e1.skydrive.live.com/self.aspx/Public/inscription|_php|_dede7.txt

Ensuite je corrige les derniers petits détails.

Merci et désolé :/
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
19 août 2008 à 23:04
Je sais pas les autres mais moi je n'y ai pas access >.>
http://cid-2e5679e6c4c502e1.skydrive.live.com/self.aspx/Publ­ic/inscription|_php|_dede7.txt Sa m'envoi nulpart perso..
Tu peux pas mettre le fichier txt sur ton FTP? :x
0
Utilisateur anonyme
19 août 2008 à 23:06
J'en étais sur...

http://www.dede7.weboserv.org/inscription_php_dede7.txt
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
19 août 2008 à 23:08
$pseudo=mysql_real_escape_string(htmlspecialchars$_POST['pseudo']));
$mail=mysql_real_escape_string(htmlspecialchars$_POST['mail']));
$password=mysql_real_escape_string(htmlspecialchars$_POST['password']));


Il manque 3 parenthèses

mysql_connect("localhost", "Base", "Pass");
mysql_select_db("Table");

// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO delfospace_membres VALUES('', '$pseudo', '$mail', '$password')");

mysql_close();
?>


Comme a dit Alain42, il te manque ?> a la fin de cette partie la

  <input type="text" name=mail value="$_POST['mail']" /> <?php if (preg_match("#^[az0-9-_-]+@[a-z0-9._-{2,}\,[a-z]{2,4}$#","$_POST['mail']")


Il manque un parenthèse, et chaque "$_POST['...']" avec les quotes dans un preg_replace te donne une erreur

<img scr=https://i54.servimg.com/u/f54/11/34/80/05/agt_ac11.png>

Pas une erreur php mais syntaxique HTML, on met src="http://.."




Excuse moi de dire sa, mais ton code pourri. Il y a des erreurs a chaque ligne de php pratiquement...
Et puis, 1047 lignes pour un formulaire...

Désolé mais j'ai pas le courage de toute les faire pour corriger, un conseil, refait le depuis le début, et apprend a codé propre!
0