begin process at 2012 05 31 03:41:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

message interne


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

message interne

samedi 24 septembre 2005 à 12:44:46 | message interne

01cod10

Je suis en train de faire une messagerie interne sur mon site. Lorsque je clique sur le lien titre le message ne s'affiche pas.Pouvez vous me dire ce qui pose problème.  Voici mon bout de code 
 
// on prépare une requete SQL selectionnant la date, le titre et l'expediteur du message que l'on souhaite lire, tout en prenant soin de vérifier que le message appartient bien au membre connecté
    $sql = 'SELECT titre, date, message, membres.pseudo as num_expediteur FROM messages, membres WHERE pseudo_destinataire="'.$_SESSION['pseudo'].'" AND pseudo_expediteur=membres.pseudo AND messages.pseudo="'.$_POST['pseudo_message'].'"';
    // on lance cette requete SQL à MySQL
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $nb = mysql_num_rows($req);

    if ($nb == 0) {
        echo 'Aucun message reconnu.';
    }
    else {
        // si le message a été trouvé, on l'affiche
        $data = mysql_fetch_array($req);
        echo $data['date'] , ' - ' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['num_expediteur']))) , ' ]<br /><br />';
        echo nl2br(stripslashes(htmlentities(trim($data['message']))));
       

samedi 24 septembre 2005 à 14:26:58 | Re : message interne

01cod10

Je viens de modifier  mon code comme ceci

$sql = 'SELECT titre, date, message, membres.num as num_expediteur FROM messages, membres WHERE num_destinataire="'.$_SESSION['num'].'" AND num_expediteur=membres.num AND messages.num="'.$_POST['num_message'].'"';
    // on lance cette requete SQL à MySQL
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $nb = mysql_num_rows($req);

    if ($nb == 0) {
        echo 'Aucun message reconnu.';
    }
    else {
        // si le message a été trouvé, on l'affiche
        $data = mysql_fetch_array($req);
        echo $data['date'] , ' - ' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['num_expediteur']))) , ' ]<br /><br />';
        echo nl2br(stripslashes(htmlentities(trim($data['message']))));
 
Et j'ai le message aucun message reconnu. Or il y a bel et bien un message enregistré dans la table messages. Comment puis-je résoudre cela

samedi 24 septembre 2005 à 15:42:51 | Re : message interne

Anthomicro

Salut,

il faut vérifier la valeur de $_SESSION['num'] et $_POST['num_message']


    samedi 24 septembre 2005 à 15:43:15 | Re : message interne

    Anthomicro

    et essaie de remplacer $_POST['num_message'] par $_GET['num_message']


      samedi 24 septembre 2005 à 17:19:20 | Re : message interne

      01cod10

      Voici mon script au complet apres ta recommandation car cela n'a rien donné

      <?php

      session_start();

      // on vérifie toujours qu'il s'agit d'un membre qui est connecté

      if (!isset($_SESSION['pseudo'])) {

      // si ce n'est pas le cas, on le redirige vers l'accueil

      header ('Location: index.php');

      exit();

      }

      ?>

      <html>

      <head>

      <title>Espace membre</title>

      </head>

      <body>

      <a href="membres.php">Retour à l'accueil</a><br /><br />

      <?php

      // on teste si notre paramètre existe bien et qu'il n'est pas vide

      if (!isset($_GET['num_message']) && empty($_GET['num_message'])) {

      echo 'Aucun message reconnu.';

      }

      else

      {

      $host = 'localhost';

      $user = 'root';

      $pass = '';

      $db = 'mabase';

      // connection à la DB

      mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );

      mysql_select_db($db) or die ('Erreur :'.mysql_error());

      // on prépare une requete SQL selectionnant la date, le titre et l'expediteur du message que l'on souhaite lire, tout en prenant soin de vérifier que le message appartient bien au membre connecté

      $sql = "SELECT titre, date, message, membres.num as num_expediteur ".

      "FROM messages, membres ".

      "WHERE num_destinataire = ".$_SESSION['num']." ".

      "AND messages.num_message = ".$_GET['num_message'];

      // on lance cette requete SQL à MySQL

      $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

      $nb = mysql_num_rows($req);

      if ($nb == 0) {

      echo 'message non reconnu.';

      }

      else {

      // si le message a été trouvé, on l'affiche

      $data = mysql_fetch_array($req);

      echo $data['date'] , ' - ' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['num_expediteur']))) , ' ]<br /><br />';

      echo nl2br(stripslashes(htmlentities(trim($data['message']))));

      echo '<br /><br /><a href="supprimer.php?num_message=' , $_GET['num_message'] , '">Supprimer ce message</a>';

      }

      mysql_free_result($req);

      }

      ?>

      <br /><br /><a href="deconnexion.php">Déconnexion</a>

      </body>

      </html>

      samedi 24 septembre 2005 à 17:22:54 | Re : message interne

      Anthomicro

      Salut,

      if (!isset($_GET['num_message']) && empty($_GET['num_message'])) {

      remplace-le par ça :

      if (!isset($_GET['num_message']) OR empty($_GET['num_message']) OR !is_numeric($_GET['num_message'])) {

      rajoute aussi un mysql_close() après le mysql_query()

        samedi 24 septembre 2005 à 17:44:22 | Re : message interne

        01cod10

        La correction n'a rien donné.J'ai enlevé cette partie

        // on teste si notre paramètre existe bien et qu'il n'est pas vide

        if (!isset($_GET['num_message']) OR empty($_GET['num_message']) OR !is_numeric $_GET['num_message'])) {

         echo 'Aucun message reconnu.';

        }

        else

         {

        Voici le message que j'ai

        Notice: Undefined index: num_message in c:\easyphp1-8\www\web\liremessage.php on line 41
        Erreur SQL !
        SELECT titre, date, message, membres.num as num_expediteur FROM messages, membres WHERE num_destinataire = 2 AND messages.num_message =
        Erreur de syntaxe près de '' à la ligne
        1

        samedi 24 septembre 2005 à 17:46:20 | Re : message interne

        01cod10

        voici la ligne 41

        $sql = "SELECT titre, date, message, membres.num as num_expediteur ".

        "FROM messages, membres ".

        "WHERE num_destinataire = ".$_SESSION['num']." ".

        "AND messages.num_message = ".$_GET['num_message'];

        samedi 24 septembre 2005 à 17:48:45 | Re : message interne

        Anthomicro

        il ne reconnait pas le num_message

        je précise que ton url pour consulter un message doit être de cette forme :

        url.php?num_message=x ou x étant un nombre.

        Par contre quelle est ta version de php ? (tu peux l'obtenir en utilisant la fonction phpinfo() qui va te générer du code html)

        tu tapes <?php phpinfo() ?> dans ton fichier et hop :-)


          samedi 24 septembre 2005 à 18:01:11 | Re : message interne

          01cod10

          PHP Version 4.3.10


          1 2 3

          Cette discussion est classée dans : message, mysql, sql, data, pseudo


          Répondre à ce message

          Sujets en rapport avec ce message

          *** où est lerreur ? [ par kodiask ] $db = mysql_connect('******', '******', ''); mysql_select_db('*****',$db); $sql = 'SELECT nom,prenom FROM *****'; $req = mysql_query($sql) or die('Err Pb de script entre php et mysql pour afficher une table [ par FloTheShark ] Salut à tous Voilà g free, donc host, sql.free.fr et ainsi de suite je veux faire afficher une table(ce qu'il y a à l'intérie UPDATE de plusieurs enregistrements dans une boucle [ par kd ] Bonjour à tous, j'essaie depuis un bout de temps de modifier un ensemble d'enregistrement dans une base à l'intérieur d'une boucle mais j'ai une erreu bonjour j'ai un probleme avec un INSERT INTO [ par timolerigolo ] Bonjour,Voila j'ai une page d'inscription avec 2 INSERT INTO et je voudrais alimanté 2 requéte SQL mé le problème cé que sa alimante que une seule req Je narive pas a faire marcher mé Header je n'est rien compris [ par timolerigolo ] Bonjour ou Bonsoir,Voila j'ai des formulaire avec des page Verif et j'aimeré faire une redirection avec un Header mé sa ne marche pas...voila un bouh afficher résultats requête SQL dans un tableau [ par titsuisse ] Bonjour,Tout d'abord, je suis débutant donc j'ai un peu de peine avec php. Voilà, j'ai une base SQL qui comporte plusieurs tables. J'ai une page (test envoyer des données récupérer dans une autre page php [ par titsuisse ] Bonjour,Je suis débutant en php et je suis coincé. Voilà mon problème. Je veux faire un site de petites annonces. J'ai plusieurs tables. J'ai une page prob verif donné [ par cobrachris ] Bonsoir, désolé de vous déranger encore une fois.J'ai encore un problème, j'ai créer un espace membre, ainsi qu'un formulaire d'inscription (vraiment pb control if else....pour inscription [ par laubro ] Bonjour,je vousdrais en fait lors de l'envoi d'un form d'inscription (pseudo, pass et mail)  faire un control voir si le pseudo n'existe pas déja dans Modifier les enregistrements d'une base donée [ par GillesWebmaster ] Bonjour,j'aimerais savoir comment on fait pour créer un petit "module" qui modifie les enregsitrement d'un livre d'or:2pages: -livreor.php            


          Nos sponsors


          Sondage...

          Comparez les prix

          CalendriCode

          Mai 2012
          LMMJVSD
           123456
          78910111213
          14151617181920
          21222324252627
          28293031   

          Consulter la suite du CalendriCode

          A découvrir



           
          Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
          CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
          CodeS-SourceS.com© est une marque déposée tous droits réservés

          Google Coop CodeS-SourceS Google Coop CodeS-SourceS
          Temps d'éxécution de la page : 1,576 sec (3)

          Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales