Help ! Parse Error ligne 24

Fermé
latulipe - 10 avril 2009 à 18:18
 latulipe - 10 avril 2009 à 19:12
Bonjour,

J'ai une erreur que je n'arrive pas à corriger et je suis un tuto. Je vais vous poster le script en entier (si y'en a qui ont le courage de tout vérifier) mais sinon j'ai ceci comme message d'erreur :

parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in C:\wamp\www\forum\messagesprives.php on line 24


Apparemment c'est avec le switch que ça ne colle pas, je ne sais pas s'il manque un "?>" ou un "}" quelque part voici le script :


<?php
//Cette fonction doit être appelée avant tout code html
session_start();
$balises = true;
//On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
$titre = "Messages privés";
include("includes/debut.php");
include("includes/bbcode.php");
?>

<body>
<div id="banniere"></div>
<div id="corps_forum">
<h1>Boîte de Messagerie</h1><br /><br />
<?php
include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
$action = htmlspecialchars($_GET['action']);

switch($action)
{

<?php
case "consulter": //Si on veut lire un message

echo'<p><a href="./messagesprives.php">
Revenir à la boîte de messagerie</a></p>';
$id_mess = (int) $_GET['id']; //On récupère la valeur de l'id

//La requête nous permet d'obtenir les infos sur ce message :
$requete = mysql_query('SELECT
mp_expediteur, mp_receveur, mp_titre,
mp_time, mp_text, mp_lu, membre_id, membre_pseudo, membre_avatar,
membre_localisation, membre_inscrit, membre_post, membre_signature
FROM forum_mp
LEFT JOIN forum_membres ON membre_id = mp_expediteur
WHERE mp_id = "'.$id_mess.'"');
$data = mysql_fetch_assoc($requete);

// Attention ! Seul le receveur du mp peut le lire !
if ($_SESSION['id'] != $data['mp_receveur'])
{
exit("Vous n avez pas le droit d être ici</div></body></html>");
}

//bouton de réponse
echo'
<p>
<a href="./messagesprives.php?action=repondre&dest='.$data['mp_expediteur'].'">
<img src="./images/repondre.gif" alt="Répondre"
title="Répondre à ce message" /></a></p>';

?>

<table>
<tr>
<th class="vt_auteur"><strong>Auteur</strong></th>
<th class="vt_mess"><strong>Message</strong></th>
</tr>
<tr>
<td>
<?php echo'<strong>
<a href="./voirprofil.php?m='.$data['membre_id'].'&action=consulter">
'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></strong></td>
<td>Posté à '.date('H\hi \l\e d M Y',$data['mp_time']).'</td>';
?>
</tr>
<tr>
<td>
<?php

//Ici des infos sur le membre qui a envoyé le mp
echo'<p><img src="./images/avatars/'.$data['membre_avatar'].'" alt="" />
<br />Membre inscrit le '.date('d/m/Y',$data['membre_inscrit']).'
<br />Messages : '.$data['membre_post'].'
<br />Localisation : '.stripslashes(htmlspecialchars($data['membre_localisation'])).'</p>
</td><td>';

echo''.code(nl2br(stripslashes(htmlspecialchars($data['mp_text'])))).'<hr />'.code(nl2br(stripslashes(htmlspecialchars($data['membre_signature'])))).'
</td></tr></table>';
?>

<?php
if ($data['mp_lu'] == 0) //Si le message n'a jamais été lu
{
mysql_query("UPDATE forum_mp
SET mp_lu = '1'
WHERE mp_id= ".$id_mess."");
}

break; //La fin !
?>

<?php
case "nouveau": //Nouveau mp

echo'<p><a href="./index.php">Index du forum</a> /
<a href="./messagesprives.php">
Revenir à la boîte de messagerie</a></p>';
?>
<form method="post" action="postok.php?action=nouveaump" name="formulaire">
<p>
<label for="to">Envoyer à : </label>
<input type="text" size="30" id="to" name="to" />
<br />
<label for="titre">Titre : </label>
<input type="text" size="80" id="titre" name="titre" />
<br /><br />
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '/g');return(false)" />
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '/i');return(false)" />
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '/s');return(false)" />
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '/url');return(false)" />
<br /><br />
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" />
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" />
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" />
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" />
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" />
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" />
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" />
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" />
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" />

<textarea cols="80" rows="8" id="message" name="message"></textarea>
<br />
<input type="submit" name="submit" value="Envoyer" />
<input type="reset" name="Effacer" value="Effacer" /></p>
</form>

<?php
break;
?>

<?php
case "repondre": //On veut répondre
echo'<p><a href="./index.php">Index du forum</a> /
<a href="./messagesprives.php">Revenir à la boîte de messagerie</a></p>';

$dest = (int) $_GET['dest'];
?>
<form method="post" action="postok.php?action=repondremp&dest=<?php echo $dest ?>" name="formulaire">
<p>
<label for="titre">Titre : </label><input type="text" size="80" id="titre" name="titre" />
<br /><br />
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '/g');return(false)" />
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '/i');return(false)" />
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '/s');return(false)" />
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '/url');return(false)" />
<br /><br />
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" />
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" />
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" />
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" />
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" />
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" />
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" />
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" />
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" />

<br /><br />
<textarea cols="80" rows="8" id="message" name="message"></textarea>
<br />
<input type="submit" name="submit" value="Envoyer" />
<input type="reset" name="Effacer" value="Effacer"/>
</p></form>
<?php
break;
?>

<?php
case "repondremp": //Si on veut répondre

//On passe le message et le titre dans une série de fonction
$message = mysql_real_escape_string($_POST['message']);
$titre = mysql_real_escape_string($_POST['titre']);
$temps = time();

//On récupère la valeur de l'id du destinataire
$dest = (int) $_GET['dest'];

//Enfin on peut envoyer le message

mysql_query("INSERT INTO forum_mp
(mp_id, mp_expediteur, mp_receveur, mp_titre, mp_text, mp_time, mp_lu)
VALUES (',', '".intval($_SESSION['id'])."' , '".$dest."', '".$titre."',
'".$message."', '".$temps."', '0')")
or die ("Le message n'a pas pu être envoyé, veuillez réessayer");

echo'<p>Votre message a bien été envoyé!<br />
<br />Cliquez <a href="./index.php">ici</a> pour revenir à l index du
forum<br />
<br />Cliquez <a href="./messagesprives.php">ici</a> pour retourner
à la messagerie</p>';

break;
?>

<?php
case "nouveaump": //On envoie un nouveau mp

//On passe le message et le titre dans une série de fonction
$message = mysql_real_escape_string($_POST['message']);
$titre = mysql_real_escape_string($_POST['titre']);
$temps = time();
$dest = mysql_real_escape_string($_POST['to']);

//On récupère la valeur de l'id du destinataire
//Il faut déja vérifier le nom

$requete = mysql_query('SELECT membre_id FROM forum_membres
WHERE membre_pseudo = "'.$dest.'"');
if($data = mysql_fetch_assoc($requete))
{
//Enfin on peut envoyer le message
mysql_query("INSERT INTO forum_mp
(mp_id, mp_expediteur, mp_receveur, mp_titre, mp_text, mp_time, mp_lu)
VALUES (',', '".intval($_SESSION['id'])."' , '".$data['membre_id']."',
'".$titre."', '".$message."', '".$temps."', '0')")
or die ("Le message n'a pas pu être envoyé, veuillez réessayer");

echo'<p>Votre message a bien été envoyé!
<br /><br />Cliquez <a href="./index.php">ici</a> pour revenir à l index du
forum<br />
<br />Cliquez <a href="./messagesprives.php">ici</a> pour retourner à
la messagerie</p>';
}
//Sinon l'utilisateur n'existe pas !
else
{
echo'<p>Désolé ce membre n existe pas, veuillez vérifier et
réessayez à nouveau.</p>';
}
break;
?>

<?php
case "supprimer":

//On récupère la valeur de l'id
$id_mess = (int) $_GET['id'];
//Il faut vérifier que le membre est bien celui qui a reçu le message
$requete = mysql_query('SELECT mp_receveur
FROM forum_mp WHERE mp_id = '.$id_mess.'');
$data = mysql_fetch_assoc($requete);
//Sinon la sanction est terrible :p
if ($_SESSION['id'] != $data['mp_receveur'])
{
exit("Vous n avez pas le droit d être ici </div></body></html>");
}

//2 cas pour cette partie : on est sûr de supprimer ou alors on ne l'est pas
$sur = (int) $_GET['sur'];
//Pas encore certain
if ($sur == 0)
{
echo'<p>Etes-vous certain de vouloir supprimer ce message ?<br />
<a href="./messagesprives.php?action=supprimer&id='.$id_mess.'&sur=1">
Oui</a> - <a href="./messagesprives.php">Non</a></p>';
}
//Certain
else
{
mysql_query("DELETE from forum_mp WHERE mp_id = '".$id_mess."'")
or die (mysql_error());
echo'<p>Le message a bien été supprimé.<br />
Cliquez <a href="./messagesprives.php">ici</a> pour revenir à la boite
de messagerie.</p>';
}

break;
?>

<?php
//Si rien n'est demandé ou s'il y a une erreur dans l'url
//On affiche la boite de mp.
default;

echo'<p><a href="./index.php">Index du forum</a></p>';

$requete = mysql_query('SELECT mp_lu, mp_id, mp_expediteur, mp_titre,
mp_time, membre_id, membre_pseudo
FROM forum_mp
LEFT JOIN forum_membres ON forum_mp.mp_expediteur = forum_membres.membre_id
WHERE mp_receveur = '.intval($_SESSION['id']).' ORDER BY mp_id DESC')
or die(mysql_error());

echo'<p><a href="./messagesprives.php?action=nouveau">
<img src="./images/nouveau.gif" alt="Nouveau" title="Nouveau message" />
</a></p>';
if (mysql_num_rows($requete) > 0)
{
?>
<table>
<tr>
<th></th>
<th class="mp_titre"><strong>Titre</strong></th>
<th class="mp_expediteur"><strong>Expéditeur</strong></th>
<th class="mp_time"><strong>Date</strong></th>
<th><strong>Action</strong></th>
</tr>

<?php
//On boucle et on remplit le tableau
while ($data = mysql_fetch_assoc($requete))
{
echo'<tr>';
//Mp jamais lu, on affiche l'icone en question
if($data['mp_lu'] == 0)
{
echo'<td><img src="./images/message_non_lu.gif" alt="Non lu" /></td>';
}
else //sinon une autre icone
{
echo'<td><img src="./images/message.gif" alt="Déja lu" /></td>';
}
echo'<td id="mp_titre">
<a href="./messagesprives.php?action=consulter&id='.$data['mp_id'].'">
'.stripslashes(htmlspecialchars($data['mp_titre'])).'</a></td>
<td id="mp_expediteur">
<a href="./voirprofil.php?action=consulter&m='.$data['membre_id'].'">
'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></td>
<td id="mp_time">'.date('H\hi \l\e d M Y',$data['mp_time']).'</td>
<td>
<a href="./messagesprives.php?action=supprimer&id='.$data['mp_id'].'&sur=0">
supprimer</a></td></tr>';
}
echo '</table>';

} //Fin de la boucle
else
{
echo'<p>Vous n avez aucun message privé pour l instant, cliquez
<a href="./index.php">ici</a> pour revenir à la page d index</p>';
}
}


mysql_close();
?>

</div>
</body>
</html>

______________________________

Merci à ceux qui jettent un coup d'oeil.

4 réponses

JDavisMet Messages postés 37 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 1 mai 2012 1
10 avril 2009 à 18:26
Regarde du coté de ton "include", tu as ouvert une balise <?php et il me semble que tu ne l'as pas fermé.

c'est tout ce que j'ai remaqué

@++
0
Déjà un grand merci pour ta réponse.

En fait j'avais remarqué cette balise non fermée mais je ne saisis pas très bien. On peut avoir un script en PHP "correct" même s'il contient des balises non fermées ?

Tu sous entends qu'il faut que j'aille vérifier un autre script dans mon dossier "includes" ?

S'il te faut un autre script pour vérifier n'hésites pas à demander et merci quand même...
0
JDavisMet Messages postés 37 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 1 mai 2012 1
10 avril 2009 à 18:52
en fait, en regardant ton code à plusieurs fois, il me semble qu'il te manque les deux.

<body>
<div id="banniere"></div>
<div id="corps_forum">
<h1>Boîte de Messagerie</h1><br /><br />
<?php
include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
$action = htmlspecialchars($_GET['action']);

switch($action)
{

<?php
case "consulter": //Si on veut lire un message

echo'<p><a href="./messagesprives.php">
Revenir à la boîte de messagerie</a></p>';
$id_mess = (int) $_GET['id']; //On récupère la valeur de l'id

//La requête nous permet d'obtenir les infos sur ce message :
$requete = mysql_query('SELECT
mp_expediteur, mp_receveur, mp_titre,
mp_time, mp_text, mp_lu, membre_id, membre_pseudo, membre_avatar,
membre_localisation, membre_inscrit, membre_post, membre_signature
FROM forum_mp
LEFT JOIN forum_membres ON membre_id = mp_expediteur
WHERE mp_id = "'.$id_mess.'"');
$data = mysql_fetch_assoc($requete);

// Attention ! Seul le receveur du mp peut le lire !
if ($_SESSION['id'] != $data['mp_receveur'])
{
exit("Vous n avez pas le droit d être ici</div></body></html>");
}

//bouton de réponse
echo'
<p>
<a href="./messagesprives.php?action=repondre&dest='.$data['mp_expediteur'].'">
<img src="./images/repondre.gif" alt="Répondre"
title="Répondre à ce message" /></a></p>';

?>

et puis tu ré-ouvres une nouvelle balise php

peut-être devrais-tu vérifier toute tes balises...
0
Je ne vois pas de différence de syntaxe dans la "copie" de ton script... je débute alors peut être je ne saisis pas tout.

Mais peux tu copier/coller tout le script du premier post en corrigeant les erreurs de syntaxe qui te semblent anormales ?

Merci beaucoup en tout cas, je m'absente un moment et je reviens plus tard dans la soirée et si tu n'as pas le temps c'est pas grave.
0