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");
?>
<?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>';
<?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>';
//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());
<?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>';
}
}
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...
<?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...