Problème script MP
darkchristophetd
Messages postés
1100
Date d'inscription
Statut
Contributeur
Dernière intervention
-
Christounet Messages postés 1266 Statut Membre -
Christounet Messages postés 1266 Statut Membre -
Bonjour,
J'ai un petit problème avec ce code :
Comme vous voyez, j'essaye de vérifier que la personne est soit l'expéditeur, soit le destinataire...
Mais quand je vais sur un de mes MP, mon script affiche l'erreur
Vous n'êtes pas autorisé à lire ce MP .
Pourquoi ?
merci de votre réponse,
christophetd
J'ai un petit problème avec ce code :
if($action=='lire' or $action=='envoyer')
{
#######################
## AFFICHAGE DU MP SELECTIONNE ##
######################
$sql = mysql_query("SELECT * FROM mp_msg LEFT JOIN mp ON mp.id_msg=mp_msg.id WHERE mp_msg.destinataire='$pseudo' AND mp.id='$id' AND mp=1 ") or die(mysql_error());
$mp = mysql_fetch_array($sql);
$_SESSION['id_mp'] = $mp['id'];
/*affichage
du MP */
if($pseudo == $mp['destinataire'] OR $pseudo == $mp['expediteur'])
{
if(isset($_POST['valider']) && isset($_GET['id_mp']))
{
###ON AJOUTE LA REPONSE DANS MP_MSG##
$time = time();
$id_mp = $_SESSION['id_mp'];
$destinataire = ($mp['expediteur']==$_SESSION['login'])? $mp['destinataire']:'';
$expediteur = $_SESSION['login'];
$message = mysql_real_escape_string(nl2br(htmlspecialchars($_POST['reponse'])));
$insert = mysql_query("INSERT INTO mp_msg VALUES('', '$id_mp', '$destinataire', '$expediteur', '$time', '$message', '0', '0')");
if($insert)
echo 'La réponse a bien été ajoutée !';
else
echo 'Une erreur est survenue : '.mysql_error();
}
?>
<table border="1pxsolidblack">
<tr>
<th>De</th>
<th>Date d'envoi</th>
<th>Message</th>
</tr>
<tr>
<td><?php echo $mp['expediteur'] ?></td>
<td><?php echo date('d/m/Y \à h:m:s', $mp['date']) ?></td>
<td><?php echo nl2br($mp['message']) ?></td>
</tr>
</table>
<!-- AFFICHAGE DES REPONSES AU MP !-->
<?php
##############################
#####AFFICHAGE DES REPONSES AU MP####
##############################
$id_mp = $_SESSION['id_mp'];
$sql = mysql_query("SELECT * FROM mp_msg WHERE (destinataire='$pseudo' OR expediteur='$pseudo') AND (id_mp='$id_mp' AND mp='0') ") or die(mysql_error());
while($mp = mysql_fetch_array($sql))
{
?>
<table border="1pxsolidblack">
<tr>
<th>De</th>
<th>Date d'envoi</th>
<th>Message</th>
</tr>
<tr>
<td><?php echo $mp['expediteur'] ?></td>
<td><?php echo date('d/m/Y \à H:m:s', $mp['date']) ?></td>
<td><?php echo nl2br($mp['message']) ?></td>
</tr>
</table>
<?php
}
?>
<br /><br />
<h1>Répondre</h1>
<br />
<form action="?action=envoyer&id_mp=<?php echo $_SESSION['id_mp'] ?>" method="post">
<label for="reponse">Réponse :</label>
<br />
<textarea id="reponse" name="reponse" rows="20" cols="55"></textarea>
<br />
<input type="submit" name="valider" value="Envoyer" />
</form>
<br /><br />
<a href="mp.php">Retour</a>
<?php
}
else
{
echo 'Vous n\'êtes pas autorisé à lire ce MP .';
}
}
Comme vous voyez, j'essaye de vérifier que la personne est soit l'expéditeur, soit le destinataire...
Mais quand je vais sur un de mes MP, mon script affiche l'erreur
Vous n'êtes pas autorisé à lire ce MP .
Pourquoi ?
merci de votre réponse,
christophetd
A voir également:
- Problème script MP
- Xnview mp - Télécharger - Visionnage & Diaporama
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script les visiteurs pdf - Forum Cinéma / Télé
8 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Avant cette ligne : if($pseudo == $mp['destinataire'] OR $pseudo == $mp['expediteur'])
tu devrais tester la valeur de $pseudo
tu devrais tester la valeur de $pseudo
Dans ton SELECT tu as mp_msg.destinataire='$pseudo' AND mp.id='$id'
Essaie ça : mp_msg.destinataire='".$pseudo."' AND mp.id='".$id."'
Essaie ça : mp_msg.destinataire='".$pseudo."' AND mp.id='".$id."'
Bonjour,
Désolé d'intervenir dans ce post mais je pense que le problème se situe dans ton premier ordre select, en effet, tu lis le message si le numéro id est égal a celui donné mais aussi seulement si le destinataire est égal au pseudo donné, et ensuite tu testes si le pseudo est égal au destinataire ou a l'expéditeur, donc tu ne peux trouver que les mp ayant le destinataire comme pseudo. Je pense que tu peux supprimer la condition sur le destinataire dans ton ordre select et ensuite tester si le pseudo est égal au destinataire ou à l'expéditeur.
A plus
Désolé d'intervenir dans ce post mais je pense que le problème se situe dans ton premier ordre select, en effet, tu lis le message si le numéro id est égal a celui donné mais aussi seulement si le destinataire est égal au pseudo donné, et ensuite tu testes si le pseudo est égal au destinataire ou a l'expéditeur, donc tu ne peux trouver que les mp ayant le destinataire comme pseudo. Je pense que tu peux supprimer la condition sur le destinataire dans ton ordre select et ensuite tester si le pseudo est égal au destinataire ou à l'expéditeur.
A plus