Erreur Code PHP (Parse error...)

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)

16 réponses

  1. 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
    1. Tu peux nous dire quelle est la ligne 92 stp? ^^
      Parce que j'ai pas envie de compter :p
      0
      1. bonjour,

        c'est où la ligne 92?
        0
        1. 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
          1. 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
            1. Si la première ligne est la 92, il nous faut celle d'avant. 5-10 avant
              0
              1. 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
                1. ç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
                  1. 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
                    1. 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
                      1. 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
                        1. J'en étais sur...

                          http://www.dede7.weboserv.org/inscription_php_dede7.txt
                          0
                          1. $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
                            1. 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