Problême $_Get id Ajax

Fermé
John672 Messages postés 3 Date d'inscription mercredi 6 juin 2018 Statut Membre Dernière intervention 8 juin 2018 - Modifié le 6 juin 2018 à 12:28
PhpFullStack Messages postés 10 Date d'inscription vendredi 8 juin 2018 Statut Membre Dernière intervention 10 juin 2018 - 8 juin 2018 à 14:15
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
6 juin 2018 à 12:31
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
PhpFullStack Messages postés 10 Date d'inscription vendredi 8 juin 2018 Statut Membre Dernière intervention 10 juin 2018
Modifié le 8 juin 2018 à 10:23
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
John672 Messages postés 3 Date d'inscription mercredi 6 juin 2018 Statut Membre Dernière intervention 8 juin 2018
8 juin 2018 à 13:54
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
PhpFullStack Messages postés 10 Date d'inscription vendredi 8 juin 2018 Statut Membre Dernière intervention 10 juin 2018
8 juin 2018 à 14:04
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
John672 Messages postés 3 Date d'inscription mercredi 6 juin 2018 Statut Membre Dernière intervention 8 juin 2018
8 juin 2018 à 14:07
url : 'send_message.php?message=&id=' + message + id, je veut essayer sa bv
0
PhpFullStack Messages postés 10 Date d'inscription vendredi 8 juin 2018 Statut Membre Dernière intervention 10 juin 2018
8 juin 2018 à 14:15
je crois que tu comprends pas ce que tu écris... lol id=message ????
0