Problême $_Get id Ajax

Salut Salut besoin d'aide j'ai créé un system de messagerie(chat) entre deux utilisateur en php et javaScript tout fonctionne parfaitement
Messagerie.php
//Messagerie.php

 if(isset($_SESSION['user_id']) || isset($_GET['id'])){ 
        $user_one = htmlspecialchars(trim($_SESSION['user_id']));
        $id_too = htmlspecialchars(trim($_GET['id'])); /*comme vous pouvais le constaté 
                                                                              je recup le $_GET id*/



Toujours Messagerie.php
<script type="text/javascript"> 

            $('#envoi').click(function(e){
                e.preventDefault();

                var message = encodeURIComponent($('#message').val());

                message = message.trim();

                $('#message').val(null);

                if(message != ""){
                    $.ajax({
                        url : 'send_message.php?message=' + message,
                        type : 'GET',
                        dataType : "html",
                        success : function(data){
                            $("#message_recept").append(data);
                        }
                    });
                }
            });
</script>


send_message.php

//je fait la même recup

if(isset($_SESSION['user_id']) || isset($_GET['id'])){ 
        $user_one = htmlspecialchars(trim($_SESSION['user_id']));
        $id_too = find_user_by_id($_GET['id']); /* ici le problême jarrive pas a la recupré 
                                               *dans send_messagerie
                                                *pourtant j'en besoin pour faire l'insertion 
                                                 dans ma table*/ 

$q = $db->prepare("INSERT INTO chat_prive (id_pseudo, id_to, message, date_message) 
                               VALUES (:id_pseudo, :id_to, :message, NOW())");
                    $q->execute([
                            'id_pseudo' => $_SESSION['user_id'],
                            'id_to' => $id_too, //ici
                            'message' => $message
                            ]);

2 réponses

  1. Modérateur
    Bonjour,


    Salut besoin d'aide j'ai créé un system de messagerie(chat) entre deux utilisateur en php et javaScript tout fonctionne parfaitement

    Faudrait savoir.... tout fonctionne parfaitement....ou tu as besoin d'aide ???

    Et si tu as besoin d'aide... une explication DETAILLEE de ton souci serait la bienvenue...
    Car coller du code sans aucune explication ne nous sert à rien !

    Au passage.... il me semble que les variables de SESSION ne sont pas transmises en AJAX.
    Il vaut mieux que tu ajoutes l'id de l'utilisateur directement dans les variables que tu envoies en ajax.

    Ensuite, il est préférable de faire du POST que du GET.
    Tu auras, en règle générale, moins de souci dans la transmission des variables.

    Pense également à ajouter le "error" dans ton ajax
    var datas = {user_id:variabecontenantidutilisateur , message:message};
     $.ajax({
                            url : 'send_message.php,
                            type : 'POST',
                            data : datas ,
                            dataType : "html",
                            success : function(data){
                                $("#message_recept").append(data);
                            },
                            error: function(jqXHR, textStatus, errorThrown) {
                                            alert('Erreur Ajax' + textStatus);
                            }
    });
    

    En post, pou récupérer les variables dans send_message.php
    $message = !empty($_POST['message']) ? $_POST['message'] : NULL;
    $user_id= !empty($_POST['user_id']) ? $_POST['user_id'] : NULL;
    


    0
    1. Salut,
      Ton code est rempli de truc bizarre (voir commentaire) :
      if(isset($_SESSION['user_id']) || isset($_GET['id'])){ // ici tu dis soit la session user_id OU Get id
              $user_one = htmlspecialchars(trim($_SESSION['user_id'])); // comment tu fais si c'est le Get id ici ? et pourquoi utilise tu htmlspecialchars ?
              $id_too = find_user_by_id($_GET['id']); // ton problème doit venir de cette fonction qui doit rien te retourné
      
      0
      1. Merci merci "cette fonction « find_user_by_id contient tout les informations sur la table users " même si je l’énerve ce pareil »
        0
      2. dans ton javascript, tu met :
        url : 'send_message.php?message=' + message,
        je ne voit pas de &id=... donc il est forcément vide coté php
        0
      3. url : 'send_message.php?message=&id=' + message + id, je veut essayer sa bv
        0
      4. je crois que tu comprends pas ce que tu écris... lol id=message ????
        0