Petit souci de $_SESSION et de conditions

Petit souci de $_SESSION et de conditions - PHP - Programmation

Marsh Posté le 29-01-2010 à 16:55:52    

Bonjour,
j'ai mis en place un espace membre sur mon site et ces membres ont la possibilité d'écrire des commentaires sur des albums une fois connecté. Seul les membres connectés peuvent écrire un commentaire et seulement un seul par album. J'utilise les sessions dans mon espace membre.
 
Après cet aperçu, voici mon problème :
pour éviter qu'un membre poste plusieurs commentaires par album j'aimerais comparer la valeur de la session, le pseudo, avec les pseudos enregistrés dans la base de donnée (mysql). En gros, si il y a déjà un enregistrement pour l'album x où le pseudo apparaît, afficher un message comme quoi l'utilisateur de peut pas reposter.
 
Voici mon code actuel :

Code :
  1. <?php
  2. session_start();
  3. $sql = "SELECT id_pseudo FROM commentaires WHERE id_groupe='$id'"; /* id_groupe='$id' : c'est pour récupérer juste les enregistrements de l'album affiché */
  4. $result = mysql_query($sql);
  5. while($row = mysql_fetch_assoc($result)){
  6. $id_pseudo = $row["id_pseudo"];
  7. $id_pseudob = ($_SESSION['session'] = $id_pseudo);
  8. }
  9. if (isset($_SESSION['session']) && isset($id_pseudob) && '$id_pseudob'=TRUE)
  10. {
  11. echo "Merci d'avoir posté un commentaire";
  12. }
  13. elseif (isset($_SESSION['session']))
  14. {
  15. echo"Ecrivez votre commentaire";
  16. }
  17. else
  18. {
  19. echo"Connectez-vous pour écrire un commentaire";
  20. }
  21. ?>


 
J'ai simplifié ce qu'il y a dans les 'echo""'.
En fait ce qui se passe actuellement c'est :
- si je ne suis pas connecté, j'ai d'affiché : 'Connectez-vous pour écrire un commentaire' (Tout va bien)
- si je suis connecté sans que personne n'ait posté de commentaires sur l'album, j'ai : 'Ecrivez votre commentaire' (Tout va bien)
- si je suis connecté alors qu'il y a déjà des commentaires sur l'album ALORS QUE CE N'EST PAS MOI QUI EN AIT POSTE, j'ai : 'Merci d'avoir posté un commentaire' au lieu de 'Ecrivez votre commentaire'.
 
Pour résumer, j'aimerais que, en étant connecté, si j'ai déjà posté un commentaire sur l'album, j'ai d'affiché : 'Merci d'avoir posté un commentaire'.
Et si je n'en ai pas posté, j'ai : 'Ecrivez votre commentaire'

 
C'est ce dernier point en bleu qui me bloque. Merci pour votre longue lecture !
 
En espérant m'être fait comprendre,  :)  
 
Maxime

Reply

Marsh Posté le 29-01-2010 à 16:55:52   

Reply

Marsh Posté le 30-01-2010 à 09:10:14    

tu fais un test dans ta clause WHERE sur l'ID groupe, et non l'ID user ... donc forcément il trouvera un commentaire, même s'il n'est pas de toi, dans le cas où celui-ci serait posté par un autre membre du même groupe ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed