IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème avec ma page repondre.php [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Par défaut problème avec ma page repondre.php
    Bonjour à tous,
    actuellement codeur d'un jeux( mon premier site) <lien url="http://www.theunfinished.net">www.theunfinished.net</lien>
    je faisait la messagerie et j'ai eu un problème avec la requête suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['userid'].'", "'.$id_d.'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")'; 
          mysql_query($sql) or die('Erreur SQL !'. addslashes($sql) .'<br />'.mysql_error());
          mysql_close();
    voilà la page entière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
    include('config.php');
    ?>
    <!DOCTYPE html>
    	<html>
    		<head>
    			<meta charset="utf-8"/>
    			<!--[if lt IE 9]>
                <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    			<![endif]-->
    			<link rel="stylesheet" href="Pagination.css" />
    			<title> envoyer </title>
    		</head>
     
    <body>		
     
    			<img src="Image/l.png" alt="ban"/><br /><br /><br />
     
     
    <?php
    include('nav.php');
    ?>
    <body>
    <section>
    <?php
    $req = $bdd->prepare('SELECT id_expediteur FROM messages WHERE id=:username');
    $req->execute(array("username"=>$_GET['id_message']));
    $data = $req->fetch();
    $req->closeCursor();
    $id_d = (int)$data["id_expediteur"];
    $req2 = $bdd->prepare('SELECT username FROM users WHERE id=:username');
    $req2->execute(array("username"=>$id_d));
    $data2 = $req2->fetch();
    $req2->closeCursor();
    $pseudo = $data2["username"];
     
     
    if (empty($_POST['titre']) || empty($_POST['message'])) { 
        $erreur = 'Au moins un des champs est vide.'; 
       } 
       else { 
          // si tout a été bien rempli, on insère le message dans notre table SQL	  
          $sql = 'INSERT INTO messages VALUES("", "'.$_SESSION['userid'].'", "'.$id_d.'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['message']).'")'; 
          mysql_query($sql) or die('Erreur SQL !'. addslashes($sql) .'<br />'.mysql_error());
          mysql_close();
         ?> <a href="messagerie.php">Messagerie</a><br /><br />
    	 <?php echo " Message envoyé <br /><br />";
       }  
     
    ?>
    <br />
    <a href="Page_d_accueil.php">Retour à l'accueil</a><br /><br />
    Envoyer un message :<br /><br />
     
       <form action="repondre.php" method="post">
       <?php echo" Pour "; echo $pseudo;?>
        <br />
    	Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>"><br />
       Message : <textarea rows="15" cols="40" name="message"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea><br />
       <input type="submit" name="go" value="Envoyer">
       </form>
     
    <br /><br /><a href="deconnection.php">Déconnexion</a>
     
    </section>		
    <?php include('footer.php'); ?>
    </body>		
    </html>

    quand je fais echo $id_d; sa me met bien 40 comme sa devrait le faire mais quand j'envoie sur la base de donnée sa me laisse 0
    que faire?
    cordialement

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Une chose me surprend vraiment.
    Au début du script tu utilises des requêtes préparées (PDO très certainement), ce qui est parfait, rien à dire.

    Mais après, tu utilises les fonctions mysql_*. Ca ne va plus.
    Pourquoi utiliser 2 façons radicalement différentes pour interroger ta Bdd, une correcte (PDO) et l'autre obsolète, qui n'évoluera plus, etc ...
    A part polluer ton code je ne vois aucun intérêt.


    Mise à part cela, l'erreur est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    , id_destinataire="'.$id_d.'",
    Corrige comme ceci pour voir :

    L'idéal serait de toujours utiliser une requête préparée (PDO), comme au début.
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $msg_stmt = $bdd->prepare('INSERT INTO messages
    (userid, id_d, la_date, titre, message)
    VALUES (:userid, :id_d, NOW, :titre, :message)');
    $msg_stmt->bindValue(':userid', $_SESSION['userid'], PDO::PARAM_INT);
    $msg_stmt->bindValue(':id_d', $id_d, PDO::PARAM_INT);
    $msg_stmt->bindValue(':titre', $_POST['titre'], PDO::PARAM_STR);
    $msg_stmt->bindValue(':message', $_POST['message'], PDO::PARAM_STR);
    $msg_stmt->execute();
    (En espérant que ce soit bien PDO, sinon il faudra l'adapter)

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Par défaut
    Oui c'est bien PDO
    j'ai changer ce que vous m'avez dit rien y fait sa upload toujours la valeur 0 dabords
    en PDO j'avais mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $req = $bdd->prepare('INSERT INTO messages (id_expediteur, id_destinataire, date, titre, message)VALUES(:expediteur, :destinataire, :date, :titre, :message)');
        $req->bindValue('expediteur',$_SESSION['userid'],PDO::PARAM_INT);
    	$req->bindValue('destinataire',$id_d,PDO::PARAM_INT);
    	$req->bindValue('date',date("Y-m-d H:i:s"),PDO::PARAM_STR);
    	$req->bindValue('titre',$_POST['titre'],PDO::PARAM_STR);
    	$req->bindValue('message',$_POST['message'],PDO::PARAM_STR);
    	$req->execute();
    	$req->closeCursor();
    toujours 0 même avec sa

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    En faite je n'avais pas fais attention, mais c'est normal.

    Lorsqu'on affiche le formulaire avant l'envoie, les coordonnées sont récupérées par GET ($data et $data2).
    Cela sous entend qu'on viendrait d'une page précédente lors d'un clic sur un lien.

    Mais une fois qu'on valide (submit) le formulaire, les informations sont envoyés par la méthode POST.
    Donc toutes les requêtes du début qui servent à récupérer les coordonnées ($data et $data2) sont vide car on a plus les paramètres en GET.

    Il faudrait les rajouter dans le formulaire pour après les récupérer en POST tout comme le titre et le message.

    Par ailleurs, les requête SQL doivent "planter", des erreurs auraient dû être renvoyées, mais cela n'a pas l'air d'être le cas, ce qui n'est franchement pas pratique.
    Faudrait faire afficher les messages d'erreurs de Php (activer la directive display_errors du php.ini).



    Autre aspect, il serait mieux d'éviter de faire tous ces traitement en pleins corps HTML, il est bien mieux de le faire avant le doctype, avant de renvoyer le moindre contenu, en somme, de séparer les traitements et la partie HTML.
    Calquer son code Php par rapport au HTML est très restrictif, ça n'a rien avoir d'ailleurs.
    D'ailleurs, tôt ou tard on risque d'avoir une erreur classique genre : Warning ... Header allready sent ... (problème lié à l'entête).
    De plus, il faudrait rajouter une redirection (un header) afin de rafraichir (si on peu dire) cette même page afin d'éviter un double envoie de mail dans le cas où l'internaute à la mauvaise idée de l'actualiser.


    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
    // Partie traitements
    include('config.php');
     
    // Envoie de mail SI validé
    $msg = '';
    if (isset($_POST['go'], $_GET['id_expediteur'], $_GET['id_message'], $_POST['titre'], $_POST['message'])
        && (int)$_GET['id_message'] > 0 && (int)$_GET['id_destinataire'] > 0) {
        //
        if (!empty($_POST['titre']) && !empty($_POST['message'])) {
            //
            $req = $bdd->prepare('INSERT INTO messages (id_expediteur, id_destinataire, date, titre, message)VALUES(:expediteur, :destinataire, NOW, :titre, :message)');
            $req->bindValue('expediteur', (int)$_SESSION['userid'], PDO::PARAM_INT);
            $req->bindValue('destinataire', (int)$_GET['id_expediteur'], PDO::PARAM_INT);
            $req->bindValue('titre', $_POST['titre'], PDO::PARAM_STR);
            $req->bindValue('message', $_POST['message'], PDO::PARAM_STR);
            $req->execute();
     
            // Actualisation de la page
            header('Location: repondre.php?send=true&id_expediteur='.(int)$_GET['id_expediteur'].'&id_message='.(int)$_GET['id_message']);
            exit();
        }
        else {
            $msg = 'Au moins un des champs est vide.';
        }
    }
     
    // Récupération des coordonnées
    $id_d = 0;
    $pseudo = '';
    if (isset($_GET['id_message'], $_GET['id_expediteur'])
        && (int)$_GET['id_message'] > 0 && (int)$_GET['id_destinataire'] > 0) {
        //
        $req = $bdd->prepare('SELECT id_expediteur FROM messages WHERE id=:username');
        $req->execute(array("username" => (int)$_GET['id_message']));
        $data = $req->fetch();
        $req->closeCursor();
     
        $id_d = (int)$data["id_expediteur"];
        $req2 = $bdd->prepare('SELECT username FROM users WHERE id=:username');
        $req2->execute(array("username" => (int)$id_d));
        $data2 = $req2->fetch();
        $req2->closeCursor();
        $pseudo = $data2["username"];
    }
    else {
        $msg = 'Erreur : Pas de message ni de ';
    }
     
    // SI le mail est envoyé
    if (isset($_GET['send']) && $_GET['send'] == 'true') {
        $msg = '<a href="messagerie.php">Messagerie</a><br /><br />';
        $msg .= 'Message envoyé <br /><br />';
    }
     
    // Partie HTML
    ?>
    <!DOCTYPE html>
    	<html>
    		<head>
    			<meta charset="utf-8"/>
    			<!--[if lt IE 9]>
                <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    			<![endif]-->
    			<link rel="stylesheet" href="Pagination.css" />
    			<title> envoyer </title>
    		</head>
     
    <body>
     
    	<img src="Image/l.png" alt="ban"/><br /><br /><br />
     
    <?php
    include('nav.php');
    ?>
    <body>
    <section>
    <?php
    // $msg ici ---
    echo $msg;
    ?>
    <br />
    <a href="Page_d_accueil.php">Retour à l'accueil</a><br /><br />
    Envoyer un message :<br /><br />
     
    <form action="repondre.php?id_message=<?php echo (int)$_GET['id_message']; ?>&id_expediteur=<?php echo (int)$_GET['id_expediteur']; ?>" method="post">
        Pour <?php echo $pseudo; ?>
        <br />
        Titre : <input type="text" name="titre" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>" /><br />
        Message : <textarea rows="15" cols="40" name="message"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea><br />
        <input type="submit" name="go" value="Envoyer" />
    </form>
     
    <br /><br /><a href="deconnection.php">Déconnexion</a>
     
    </section>		
    <?php include('footer.php'); ?>
    </body>		
    </html>
    (code pas testé, donc en espérant n'avoir pas fait d'erreur)

    Un point qu'il faudrait préciser cependant, sinon il y a un risque d'erreur (de confusion).
    Quel différence il y a t-il entre la valeur de $_GET['id_expediteur'] qu'on reçoit et de "id_expediteur" dans la table "message" ?
    Est-ce la même où pas ?
    (entre $_GET['expediteur'] et $id_d finalement)
    Si ce n'est pas la même alors il faudrait rajouter $id_d dans le formulaire dans un champ caché (en POST), et les traitement pour la récupérer aussi.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Par défaut
    hmm non sa marche pas mais c'est normal je ne récupère pas de$_get pour l'id destinataire et celui a aucun moment
    pourtant sa m'affiche les bonnes valeur dans le code source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form action="repondre.php?id_message=110&id_expediteur=40" method="post">
        Pour     <br />
        Titre : <input type="text" name="titre" value="" /><br />
        Message : <textarea rows="15" cols="40" name="message"></textarea><br />
        <input type="submit" name="go" value="Envoyer" />
    </form>
    je comprends plus trop trop ce qui se passe!
    mais quand je fais un echo des valeur $_get de userid et id_expediteur sa m'affiche respectivement
    1 et 0
    1 etant mon id

    Maintenant j'envoie id_expediteur via mon url pour voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
    include('config.php');
    ?>
    <!DOCTYPE html>
    	<html>
    		<head>
    			<meta charset="utf-8"/>
    			<!--[if lt IE 9]>
                <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    			<![endif]-->
    			<link rel="stylesheet" href="Pagination.css" />
    			<title> Messagerie </title>
    		</head>
     
     
    <img src="Image/l.png" alt="ban"/><br /><br /><br />
     
    <?php
    include('nav.php');
    ?>
     
    <body>
    <section>
    <center>
     
    <?php
    $req2 = $bdd->prepare('SELECT id_expediteur FROM messages WHERE id=:username');
    $req2->execute(array("username"=>$_GET['id_message']));
    $data = $req2->fetch();
    $req2->closeCursor();
    $id_expediteur =(int)$data["id_expediteur"];
    // on teste si notre paramètre existe bien et qu'il n'est pas vide
    if (!isset($_GET['id_message']) || empty($_GET['id_message'])) { 
       echo 'Aucun message reconnu.';  
    }  
    else {    
       // 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, users.username as expediteur FROM messages, users WHERE id_destinataire="'.$_SESSION['userid'].'" AND id_expediteur=users.id AND messages.id="'.$_GET['id_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['expediteur']))) , ' ]<br /><br />'; 
          echo nl2br(stripslashes(htmlentities(trim($data['message'])))); 
     
          // on affiche également un lien permettant de supprimer ce message de la boite de réception
          echo '<br /><br /><a href="supprimer.php?id_message=' , $_GET['id_message'] , '">Supprimer ce message</a>'; 
    	   // on affiche également un lien permettant de repondre ce message de la boite de réception
          echo '<br /><br /><a href="repondre.php?id_message=' , $_GET['id_message'] , '&amp;id_expediteur =', $id_expediteur ,'">r&eacute;pondre au message</a>'; 
       } 
       mysql_free_result($req); 
       mysql_close();  
     
    }  
    ?>
    <br /><br /><a href="deconnexion.php">Déconnexion</a>
    </section>		
    <?php include('footer.php'); ?>
    </body>		
    </html>
    mais l'url de repondre.php est:
    http://www.theunfinished.net/repondr..._expediteur=40

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Si toi même tu ne sais pas d'où viennent tes données, à quoi elles correspondent, ça risque d'être un peu compliqué.

    non sa marche pas mais c'est normal je ne récupère pas de$_get pour l'id destinataire et celui a aucun moment
    pourtant
    Pourtant c'est le cas.

    C'est ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $req = $bdd->prepare('SELECT id_expediteur FROM messages WHERE id=:username');
    $req->execute(array("username"=>$_GET['id_message']));
    $data = $req->fetch();
    $req->closeCursor();
    $id_d = (int)$data["id_expediteur"];
    $req2 = $bdd->prepare('SELECT username FROM users WHERE id=:username');
    $req2->execute(array("username"=>$id_d));
    $data2 = $req2->fetch();
    $req2->closeCursor();
    $pseudo = $data2["username"];
    On récupère "id_expediteur" dans la table "messages" grâce à $_GET['id_message'].
    Cette donnée une fois obtenue est stockée dans : $id_d.

    C'est cette même données ($id_d) qui est exploitée lors de la requête d'insertion une fois avoir validé le formulaire.
    Du moins, c'est ce qui était prévu au départ.
    Mais il y a un problème à cause des données en GET et POST.


    A mon avis, ce qui crée des confusions entre destinataire et expéditeur, c'est que les noms utilisés dans le code ne sont justement pas correctes.
    Il y a amalgame.

    L'identifiant de l'expéditeur c'est la personne elle même, celle qui navigue : $_SESSION['userid']


    Donc l'identifiant que l'on reçoit au départ (en GET) pour créer le formulaire devrait être le destinataire.
    $_GET['id_expediteur'] correspond normalement au destinataire, au niveau du nom j'entends, pas de sa valeur.
    Sa valeur est théoriquement correcte (du moins faut l'espérer).
    Pourquoi avoir nommer celle-ci id_expediteur ???


    Ma question c'est : Est-ce que la valeur de ce $_GET['id_expediteur'] (qui est en faite le destinataire ici) correspond à la valeur de 'id_expediteur' de la table "message" ?
    Normalement ils doivent correspondre, être les mêmes.
    C'est juste une confirmation de ta part que je fais, histoire que je ne me trompe pas, sait on jamais.


    Mais j'ai fais des erreurs, faudrait corriger comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $msg = '';
    if (isset($_POST['go'], $_GET['id_expediteur'], $_GET['id_message'], $_POST['titre'], $_POST['message'])
        && (int)$_GET['id_message'] > 0 && (int)$_GET['id_expediteur'] > 0) {
    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $id_d = 0;
    $pseudo = '';
    if (isset($_GET['id_message'], $_GET['id_expediteur'])
        && (int)$_GET['id_message'] > 0 && (int)$_GET['id_expediteur'] > 0) {


    En faite, et là c'est pour tenter de bien se comprendre, et pour ça il faut commencer par le début, et le début c'est l'étape d'avant.
    Normalement on devrait avoir une page qui affiche un message qu'à reçu le "userid".
    A cette étape, le "userid" c'est le destinataire, et l'expéditeur c'est celui qui a envoyé le message.

    Le "userid" veut lui répondre, lui envoyer un message.
    Lorsque le "userid" va cliquer sur le lien il va cette fois afficher la page actuelle (le code ici).
    Et bien cette fois les rôles vont s'inverser :
    - le "userid" devient l'expéditeur.
    - la personne à qui le message sera envoyé sera le destinataire.
    Donc c'est pour cette raison que je dis qu'il y a confusion entre les noms utilisés dans ce code (mais les valeurs elles devraient être correctes).

    A mon sens il aurait plus judicieux de nommer le paramètre "id_destinataire" dans le lien de la page précédente.
    Ce qui fait qu'ici on recevrait cette donnée en GET avec : id_destinataire.
    Et $_SESSION['userid'] reste inchangé, c'est bien l'expéditeur.


    Mais encore, si tout cela est bien correcte, cette requête serait inutile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req = $bdd->prepare('SELECT id_expediteur FROM messages WHERE id=:username');
    $req->execute(array("username"=>$_GET['id_message']));
    $data = $req->fetch();
    $req->closeCursor();
    $id_d = (int)$data["id_expediteur"];
    Vu qu'on obtient déjà "id_expediteur" en GET, cela ne sert à rien de le récupérer une 2ème fois.

    Autant rechercher son "pseudo" directement dans la table "user" avec $_GET['id_expediteur'] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req2 = $bdd->prepare('SELECT username FROM users WHERE id=:username');
    $req2->execute(array("username" => (int)$_GET['id_expediteur']));
    $data2 = $req2->fetch();
    $pseudo = $data2["username"];
    Donc ne conserver que cette requête là.


    J'espère ne pas avoir semer le trouble.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EasyPHP] EasyPHP 1.8 ... problème avec les pages en local !
    Par Franck.H dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 06/04/2007, 14h12
  2. Problème avec RDB$DATABASE et PHP
    Par Darkdaemons dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 16/01/2006, 14h53
  3. (Petit ?) problème avec une page contenant du Flash
    Par ologram dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 18h45
  4. problème avec une page web sous firefox!
    Par 3psilOn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/11/2004, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo