Aide pour un script php

Bonjour,
Je suis en train de créer un forum grace au site de zéro, mais dan la page de vérification pour l'inscription j'ai une erreur:
Parse error: syntax error, unexpected '<' in /home/key/public_html/ch/forum/registerok.php on line 29


Et voici le code de la page:
registerok.php
<?php
//Cette fonction doit &#234;tre appel&#233;e avant tout code html
session_start();

//On donne ensuite un titre &#224; la page, puis on appelle notre fichier debut.php
$titre = "Index du forum";
include("debut.php");
?>
<body>
<div id="banniere"></div>
<?php
//Maintenant, on se connecte &#224; la base de donn&#233;es
include("identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);


$pseudo_erreur1 = NULL;
$pseudo_erreur2 = NULL;
$mdp_erreur = NULL;
$email_erreur1 = NULL;
$email_erreur2 = NULL;
$msn_erreur = NULL;
$signature_erreur = NULL;
$avatar_erreur = NULL;
$avatar_erreur1 = NULL;
$avatar_erreur2 = NULL;
$avatar_erreur3 = NULL;
<?php
//On r&#233;cup&#232;re les variables
$i = 0;
$temps = time(); 
$signature = mysql_real_escape_string($_POST['signature'], ENT_QUOTES));
$pseudo = mysql_real_escape_string($_POST['pseudo']);
$email = mysql_real_escape_string($_POST['email']);
$msn = mysql_real_escape_string($_POST['msn']);
$website = mysql_real_escape_string($_POST['website']);
$localisation = mysql_real_escape_string($_POST['localisation']);
$pass = md5($_POST['password']);
$confirm = md5($_POST['confirm']);


//V&#233;rification du pseudo
$nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'"'), 0);
if($nombrepseudo != 0)
{
        $pseudo_erreur1 = "Votre pseudo est d&#233;j&#224; utilis&#233; par un membre";
        $i++;
}
if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
{
        $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit";
        $i++;
}
//V&#233;rification du mdp
if ($pass != $confirm || empty($confirm) || empty($pass))
{
        $mdp_erreur = "Votre mot de passe et votre confirmation diff&#232;rent, ou sont vides";
        $i++;
}
?>
<?php
//V&#233;rification de l'adresse email

//Il faut que l'adresse email n'ait jamais &#233;t&#233; utilis&#233;e

$nombremail = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_membres WHERE membre_email = "'.$email.'"'), 0);

if ($nombremail != 0)
{
        $email_erreur1 = "Votre adresse email est d&#233;j&#224; utilis&#233;e par un membre";
        $i++;
}
//On v&#233;rifie la forme maintenant
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
{
        $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
        $i++;
}
//V&#233;rification de l'adresse MSN
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn))
{
        $msn_erreur = "Votre adresse MSN n'a pas un format valide";
        $i++;
}
//V&#233;rification de la signature
if (strlen($signature) > 200)
{
        $signature_erreur = "Votre signature est trop longue";
        $i++;
}
?>
<?php
//V&#233;rification de l'avatar :
if (!empty($_FILES['avatar']['size']))
{
        //On d&#233;finit les variables :
        $maxsize = 10024; //Poid de l'image
        $maxwidth = 100; //Largeur de l'image
        $maxheight = 100; //Longueur de l'image
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
        
        if ($_FILES['avatar']['error'] > 0)
        {
                $avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
        }
        if ($_FILES['avatar']['size'] > $maxsize)
        {
                $i++;
                $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong>    contre <strong>".$maxsize." Octets</strong>)";
        }

        $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
                $i++;
                $avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
        }
        
        $extension_upload = strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $i++;
                $avatar_erreur3 = "Extension de l'avatar incorrecte";
        }
}
?>
<div id="corps_forum">
<a href ="./index.php">Index du forum</a> / <a href="./register.php">Inscription</a>
<?php
if ($i == 0) // Si i est vide, il n'y a pas d'erreur
{

        echo'<h1>Inscription termin&#233;e</h1>';
        echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous &#234;tes maintenant inscrit sur le forum</p>';
        echo'<p>Cliquez <a href="./index.php">ici</a> pour revenir &#224; la page d accueil</p>';

        if (isset($_FILES['avatar']['size']))
        {
                //On d&#233;place l'avatar
                $avatar = time();
                $nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
                $avatar = "./images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
                move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
        }
              
       
        //On balance le tout dans notre table
        mysql_query('
        INSERT INTO forum_membres (membre_pseudo, membre_mdp, membre_email,             
        membre_msn, membre_siteweb, membre_avatar,
        membre_signature, membre_localisation, membre_inscrit,   
        membre_derniere_visite)
        VALUES ("'.$pseudo.'" , "'.$pass.'" , "'.$email.'" ,
        "'.$msn.'" , "'.$website.'" , "'.$nomavatar.'" ,
        "'.$signature.'" , "'.$localisation.'" ,  "'.$temps.'" ,
        "'.$temps.'" ) ') or die(mysql_error());
       
       
        //Et on d&#233;finit les variables de sessions
        $_SESSION['pseudo'] = $pseudo;
        $_SESSION['id'] = mysql_insert_id();
        $_SESSION['level'] = 2;

}
else
{
        echo'<h1>Inscription interrompue</h1>';
        echo'<p>Une ou plusieurs erreurs se sont produites pendant l incription</p>';
        echo'<p>'.$i.' erreur(s)</p>';
        echo'<p>'.$pseudo_erreur1.'</p>';
        echo'<p>'.$pseudo_erreur2.'</p>';
        echo'<p>'.$mdp_erreur.'</p>';
        echo'<p>'.$email_erreur1.'</p>';
        echo'<p>'.$email_erreur2.'</p>';
        echo'<p>'.$msn_erreur.'</p>';
        echo'<p>'.$signature_erreur.'</p>';
        echo'<p>'.$avatar_erreur.'</p>';
        echo'<p>'.$avatar_erreur1.'</p>';
        echo'<p>'.$avatar_erreur2.'</p>';
        echo'<p>'.$avatar_erreur3.'</p>';
       
        echo'<p>Cliquez <a href="./register.php">ici</a> pour recommencer</p>';
}
mysql_close();
?>
</div>
</body>
</html>


Cordialement, Kévin
Configuration: Windows Vista
Opera 9.63

32 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

La question porte sur une erreur de syntaxe PHP lors de l’inscription, affichant Parse error: syntax error, unexpected '<' dans registerok.php à la ligne 29. Les échanges pointent des causes potentielles: une parenthèse en trop dans l’appel à mysql_real_escape_string pour le champ signature et l’utilisation incorrecte de ENT_QUOTES, ainsi que des balises PHP et HTML mal imbriquées. Plusieurs internautes recommandent d’indiquer clairement les lignes 28 et 29 et d’éviter les extraits html-énoncés dans le code, car le problème peut venir d’un élément situé juste au-dessus. Concrètement, une solution pratique consiste à corriger l’appel en $signature = mysql_real_escape_string($_POST['signature']); et à retirer l’excès de parenthèses, puis à vérifier la fermeture des balises PHP et des blocs HTML.

Bobot (l’IA à votre service)
  1. Nous donnez tout ton code ne sert a rien quand tu as ce type d'erreur.

    Parse error: syntax error, unexpected '<' in /home/key/public_html/ch/forum/registerok.php on line 29

    tu as donc un problème a la ligne 29.
    donne nous la ligne 28 et 29 (parfois, le problème se situe au dessus)
    1. Voilà une image, c'est encor plus claire ;)
      http://www.key-themes.com/images/code.gif
  2. pourquoi ouvre tu php si tu ne le ferme pas avent???
    je crois qu'elle est la l'erreur
    1. Maintenant:
      Parse error: syntax error, unexpected ')' in /home/key/public_html/ch/forum/registerok.php on line 33

      Lignes 32 33
      $temps = time(); 
      $signature = mysql_real_escape_string($_POST['signature'], ENT_QUOTES));
      1. $signature = mysql_real_escape_string($_POST['signature'], ENT_QUOTES));
        1. Contributeur
          voyons, tu as une parenthese de trop toute balise ou parenthese ou guillement ouvert doit etre fermé!!!!!

          tu as un seul ( mais deux )) dans ton cas enleve en une.
          1. merci graffix ça marche maintenant, mais j'ai:
            http://www.key-themes.com/images/erreur.gif
        2. Merci graffix ça marche maintenant, mais j'ai:
          http://www.key-themes.com/images/erreur.gif
          1. Contributeur
            poste tout le code parce que ce que tu as mis ne suffit pas.
            1. c'est arrangé mais maintenant j'ai ça:
              Warning: mysql_real_escape_string() expects parameter 2 to be resource, integer given in /home/key/public_html/ch/forum/registerok.php on line 34

              code:

              http://www.key-themes.com/images/erreur1.gif
              1. Oui, c'est la solution.
                Merci.
                Vous auriez une adresse mail ou msn? car j'aurais encor besoin d'aide pour la suite svp.

                Cordialement
                1. Contributeur
                  non je suis desolé, sinon je n' ai pas fini, continu de poster tes problemes dans ce forum. J' ai une société a gerer et deja je ne devrai pas etre la, donc c' est deja pas mal tu a un souci de resolu, mais je reste dans le coin : pour la suite :D
                  1. Salut
                    Efface la ligne 29 : <?php
                    Voilà ton erreur en plus petit ;) :
                    <?php
                      <?php
                      // ton script
                    ?>


                    Edit: Désolé, j'avais pas lu le topic avant :p
                    1. Ok,
                      quand j'essaie de voir un forum:
                      http://www.key-themes.com/images/erreur3.gif

                      code:
                      http://www.key-themes.com/images/erreur4.gif
                      1. Contributeur
                        j' ai ete vori directement ton site, parce que ca va aller plus vite.

                        Sois plus précis stp, tu parles de l' image qui ne s' affiche pas?

                        http://www.key-themes.com/images/

                        il n' y a pas d' annonces.gif dans ton dossier image

                        je ne vois pas le code pour "nouveau message" mais j' imagine qu' il n' y pas de nouveau.gif non plus
                        • 1
                        • 2