Aide pour un script php

Fermé
mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 - 23 juin 2009 à 19:08
mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 - 24 juin 2009 à 14:28
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
A voir également:

32 réponses

mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 7
23 juin 2009 à 20:24
c'est ça en faite:
http://www.key-themes.com/images/erreur5.gif

le forum est ici, il n'y a pas encore toute les pages:
http://www.key-themes.com/ch/forum
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
23 juin 2009 à 20:46
tu a du enlever une balise d' entrée <?php juste avant la ligne qu' on voit. C' est un commentaire donc trouve cette ligne et copie moi le morceau de code ici
0
mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 7
23 juin 2009 à 20:48
Voilà:
//On lance notre tableau seulement s'il y a des requ&#234;tes !
if (mysql_num_rows($requete3) > 0)
{
        ?>
        <table>   
        <tr>
        <th><img src="./images/annonce.gif" alt="Annonce" /></th>
        <th class="titre"><strong>Titre</strong></th>             
        <th class="nombremessages"><strong>R&#233;ponses</strong></th>
        <th class="nombrevu"><strong>Vus</strong></th>
        <th class="auteur"><strong>Auteur</strong></th>                       
        <th class="derniermessage"><strong>Dernier message</strong></th>
        </tr>   
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
23 juin 2009 à 20:51
Y ' a rien avant????


si y' a quelque chose avant, montre le moi, sinon rajoute <?php (seulement si y' a rien avant sinon conflit):


<?php

//On lance notre tableau seulement s'il y a des requêtes !
if (mysql_num_rows($requete3) > 0)
{
?>
0

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

Posez votre question
mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 7
23 juin 2009 à 20:56
ok,
ça commence comme ça:
<?php
//On prend tout ce qu'on a sur les Annonces du forum
       

$requete3 = mysql_query('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post,
Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic 
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur    
WHERE topic_genre = "Annonce" AND forum_topic.forum_id = "'.$forum.'" 
ORDER BY topic_last_post DESC');
?>
//On lance notre tableau seulement s'il y a des requ&#234;tes !
if (mysql_num_rows($requete3) > 0)
{
        ?>
        <table>   
        <tr>
        <th><img src="./images/annonce.gif" alt="Annonce" /></th>
        <th class="titre"><strong>Titre</strong></th>             
        <th class="nombremessages"><strong>R&#233;ponses</strong></th>
        <th class="nombrevu"><strong>Vus</strong></th>
        <th class="auteur"><strong>Auteur</strong></th>                       
        <th class="derniermessage"><strong>Dernier message</strong></th>
        </tr>   
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
23 juin 2009 à 21:33
$requete3 = mysql_query('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post,
Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur
WHERE topic_genre = "Annonce" AND forum_topic.forum_id = "'.$forum.'"
ORDER BY topic_last_post DESC');
?>

------------------------------------------------------------------------>>>>>>>>>RAJOUTE ICI >>><?php


//On lance notre tableau seulement s'il y a des requêtes !
if (mysql_num_rows($requete3) > 0)
{
?>
0
mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 7
23 juin 2009 à 21:36
j'ai enlevé cette ligne et il n'y a plus de probleme
//On lance notre tableau seulement s'il y a des requêtes ! 
if (mysql_num_rows($requete3) > 0) 
{ 
?>
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
23 juin 2009 à 21:46
en meme temps si tu enleves tout tu risques d' avoir des probleme, cette requete est necessaire, fais ce que je te dis ca ira mieux.
0
mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 7
23 juin 2009 à 21:53
quand je fait comme tu dis j'ai ça:
Parse error: syntax error, unexpected $end in /home/key/public_html/ch/forum/voirforum.php on line 231

et il y à ça à la linge:
</body></html>


Voici tout le code car moi je n'y comprend plus rien..
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
23 juin 2009 à 22:32
ca signifie qu' il y a soit une parenthese, un guillemet ou un point virgule manquant dans la page
0
mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 7
23 juin 2009 à 22:34
je te donne le code de toute la page:
<?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 = "Voir un 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);



//On r&#233;cup&#232;re la valeur de f
$forum = (int) $_GET['f'];

//A partir d'ici, on va compter le nombre de messages
//pour n'afficher que les 25 premiers
$requete1 = mysql_query("SELECT forum_name, forum_topic, auth_view, auth_topic FROM forum_forum WHERE forum_id = '".$forum."'") or die (mysql_error());
$data1 = mysql_fetch_assoc($requete1);

$totalDesMessages = $data1['forum_topic'] + 1;
$nombreDeMessagesParPage = 25;
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
?>
<div id="corps_forum">
<?php
echo'<a href ="./index.php">Index du forum</a> / 
<a href="./voirforum.php?f='.$forum.'">'.stripslashes(htmlspecialchars($data1['forum_name'])).'</a>';

if (isset($_SESSION['pseudo'])) // Si le membre est connect&#233;
{
       
        //Voici les options
        echo'<p>Vous &#234;tes connect&#233; en tant que 
        <a href="./voirprofil.php?m='.intval($_SESSION['id']).'&action=consulter">
        '.stripslashes(htmlspecialchars($_SESSION['pseudo'])).'</a><br />
        <a href="./voirprofil.php?action=modifier">Modifier mon profil</a><br />
        <a href="./messagesprives.php">Consulter mes messages priv&#233;s</a><br />
        <a href ="./deconnexion.php">Se d&#233;connecter</a><br /></p>';

}
// Sinon, on propose de se connecter ou de s'enregistrer
else
{
        echo'<p>Vous n &#234;tes pas connect&#233; <br />
        <a href="./connexion.php">Se connecter</a><br />
        <a href="./register.php">Pas encore inscrit ?</a><br /></p>';
}
//Nombre de pages

if (isset($_GET['page']))
{
$page = intval($_GET['page']);
}
else
{
$page = 1;
}
//On affiche les pages 1-2-3, etc.
echo '<p>Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    if ($i == $page) //On ne met pas de lien sur la page actuelle
    {
    echo $i;
    }
    else
    {
    echo '
    <a href="voirforum.php?f='.$forum.'&amp;page='.$i.'">'.$i.'</a>';
    }
}
echo '</p>';


$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

//Le titre du forum
echo '<h1>'.stripslashes(htmlspecialchars($data1['forum_name'])).'</h1><br /><br />';


//Et le bouton pour poster
echo'<a href="./poster.php?action=nouveautopic&amp;f='.$forum.'">
<img src="./images/nouveau.gif" alt="Nouveau topic" title="Poster un nouveau topic" /></a>';
?>
<?php
//On prend tout ce qu'on a sur les Annonces du forum
       

$requete3 = mysql_query('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post,
Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic 
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur    
WHERE topic_genre = "Annonce" AND forum_topic.forum_id = "'.$forum.'" 
ORDER BY topic_last_post DESC');
?>
<?
//On lance notre tableau seulement s'il y a des requ&#234;tes ! 
if (mysql_num_rows($requete3) > 0) 
{ 
?>

        <table>   
        <tr>
        <th><img src="./images/annonce.gif" alt="Annonce" /></th>
        <th class="titre"><strong>Titre</strong></th>             
        <th class="nombremessages"><strong>R&#233;ponses</strong></th>
        <th class="nombrevu"><strong>Vus</strong></th>
        <th class="auteur"><strong>Auteur</strong></th>                       
        <th class="derniermessage"><strong>Dernier message</strong></th>
        </tr>   
       
        <?php
        //On commence la boucle
        while ($data3 = mysql_fetch_assoc($requete3))
        {
                //Pour chaque topic :
                //Si le topic est une annonce on l'affiche en haut
                //mega echo de bourrain pour tout remplir
               
                echo'<tr><td><img src="./images/annonce.gif" alt="Annonce" /></td>

                <td id="titre"><strong>Annonce : </strong>
                <strong><a href="./voirtopic.php?t='.$data3['topic_id'].'"                 
                title="Topic commenc&#233; &#224;
                '.date('H\hi \l\e d M,y',$data3['topic_time']).'">
                '.stripslashes(htmlspecialchars($data3['topic_titre'])).'</a></strong></td>

                <td class="nombremessages">'.$data3['topic_post'].'</td>

                <td class="nombrevu">'.$data3['topic_vu'].'</td>

                <td><a href="./voirprofil.php?m='.$data3['topic_createur'].'
                &amp;action=consulter">
                '.stripslashes(htmlspecialchars($data3['membre_pseudo_createur'])).'</a></td>';

               	//Selection dernier message
		$nombreDeMessagesParPage = 15;
		$nbr_post = $data3['topic_post'] +1;
		$page = ceil($nbr_post / $nombreDeMessagesParPage);

                echo '<td class="derniermessage">Par
                <a href="./voirprofil.php?m='.$data3['post_createur'].'
                &amp;action=consulter">
                '.stripslashes(htmlspecialchars($data3['membre_pseudo_last_posteur'])).'</a><br />
                A <a href="./voirtopic.php?t='.$data3['topic_id'].'&amp;page='.$page.'#p_'.$data3['post_id'].'">'.date('H\hi \l\e d M y',$data3['post_time']).'</a></td></tr>';
        }
        ?>
        </table>
        <?php
?>
<?
//On prend tout ce qu'on a sur les topics normaux du forum


$requete3 = mysql_query('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post,
Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur   
WHERE topic_genre <> "Annonce" AND forum_topic.forum_id = "'.$forum.'"
ORDER BY topic_last_post DESC
LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage .'')
or die (mysql_error());

if (mysql_num_rows($requete3) > 0)
{
?>
        <table>
        <tr>
        <th><img src="./images/message.gif" alt="Message" /></th>
        <th class="titre"><strong>Titre</strong></th>             
        <th class="nombremessages"><strong>R&#233;ponses</strong></th>
        <th class="nombrevu"><strong>Vus</strong></th>
        <th class="auteur"><strong>Auteur</strong></th>                       
        <th class="derniermessage"><strong>Dernier message  </strong></th>
        </tr>
        <?php
        //On lance la boucle
       
        while ($data3 = mysql_fetch_assoc($requete3))
        {
                //Ah bah tiens... re vla l'echo de fou
                echo'<tr><td><img src="./images/message.gif" alt="Message" /></td>

                <td class="titre">
                <strong><a href="./voirtopic.php?t='.$data3['topic_id'].'"                 
                title="Topic commenc&#233; &#224;
                '.date('H\hi \l\e d M,y',$data3['topic_time']).'">
                '.stripslashes(htmlspecialchars($data3['topic_titre'])).'</a></strong></td>

                <td class="nombremessages">'.$data3['topic_post'].'</td>

                <td class="nombrevu">'.$data3['topic_vu'].'</td>

                <td><a href="./voirprofil.php?m='.$data3['topic_createur'].'
                &amp;action=consulter">
                '.stripslashes(htmlspecialchars($data3['membre_pseudo_createur'])).'</a></td>';

               	//Selection dernier message
		$nombreDeMessagesParPage = 15;
		$nbr_post = $data3['topic_post'] +1;
		$page = ceil($nbr_post / $nombreDeMessagesParPage);

                echo '<td class="derniermessage">Par
                <a href="./voirprofil.php?m='.$data3['post_createur'].'
                &amp;action=consulter">
                '.stripslashes(htmlspecialchars($data3['membre_pseudo_last_posteur'])).'</a><br />
                A <a href="./voirtopic.php?t='.$data3['topic_id'].'&amp;page='.$page.'#p_'.$data3['post_id'].'">'.date('H\hi \l\e d M y',$data3['post_time']).'</a></td></tr>';

        }
        ?>
        </table>
        <?php
}
else //S'il n'y a pas de message
{
        echo'<p>Ce forum ne contient aucun sujet actuellement</p>';
}
?>
</div>
</body></html>
0
raoullo Messages postés 329 Date d'inscription samedi 18 avril 2009 Statut Membre Dernière intervention 7 avril 2015 45
24 juin 2009 à 12:27
le mieux alor cerait de donner une capture d'ecrant
0
mister-gwada97one Messages postés 110 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 1 janvier 2012 7
24 juin 2009 à 14:28
une capture d'écran de quoi exactement?
0