Bonjour a tous j'ai une discussion instantané mais j'arrive pas a envoyer a la base de donne le destinataire

J'ai 4 page = index.php , recup_msg.php , envoie_msg , chat.js .

La page recup_msg = affiche les msg de la BDD.

La page index.php = affiche et envoie les msg a la base de donne .

La page chat.js se charge de faire tous se travaille .

voila mon code .

Page index :

<?php
include('body/header.php');
$get_pseudo = $_GET'pseudo'];
if(isset($_GET'pseudo']) && !empty($_GET'pseudo']))
{

?>

        <div class='chat'>
            <div class='messages'></div>
            <textarea class='entree' placeholder="Veuillez saisir votre texte ici (Shift+Entrée pour un saut de ligne)"></textarea>
        </div>

    <?php
    }else{
    header("Location:index");
    }
    ?>

    <?php
    include('body/footer.php');
    ?>

Page recup_msg

<?php
$affiche_query = mysql_query("SELECT id_membre FROM messages_test");
$row_user = mysql_fetch_array($affiche_query);
$from_user_one = $row_user'id_membre'];
$query = mysql_query("
SELECT
messages_test.id_membre,
messages_test.message_membre,
utilisateurs.id_membre,
utilisateurs.pseudo
FROM messages_test
INNER JOIN utilisateurs ON utilisateurs.id_membre = messages_test.id_membre
ORDER BY temps ASC
") or die (mysql_error());
$messages = array();
while($rows = mysql_fetch_assoc($query))
{
    $messages] = $rows;
}
foreach($messages as $message)
{
?>
        <a href='#'><?php echo $message'pseudo'];?></a>
        <p><?php echo nl2br($message'message_membre']);?></p>
<?php

}
?>

Page envoie_msg :

<?php
$messages = trim(htmlentities(mysql_real_escape_string($_POST'messages'])));
$membre = trim(htmlentities(mysql_real_escape_string($_POST'membre'])));
$pseudo = $_SESSION'pseudo'];

            $select_pseudo_id = mysql_query("SELECT id_membre,pseudo FROM utilisateurs WHERE pseudo='$pseudo'");
            $run_pseudo_id = mysql_fetch_array($select_pseudo_id);
            $select_pseudo_exp = $run_pseudo_id'id_membre'];

            // $select_pseudo_id_dest = mysql_query("SELECT id_membre,pseudo FROM utilisateurs WHERE pseudo='$get_pseudo'");
            // $run_pseudo_id_dest = mysql_fetch_array($select_pseudo_id_dest);
            // $select_pseudo_dest = $run_pseudo_id_dest'id_membre'];

$query = mysql_query("
INSERT INTO messages_test (id_membre,id_membre_dest,message_membre) VALUES ('$select_pseudo_exp','$membre','{$messages}')
") or die (mysql_error());
?>

Page chat.js

//la function qui va recuperer les info de la base de donne
function recup_msg()
{
    $.post('index.php?page=recup_msg',function(data){
        $('.chat .messages').html(data);
    });
}
setInterval(recup_msg,2000);
recup_msg();
//la function qui va envoyer les donne vers la base de donne
function envoi_msg()
{
$('.chat .entree').keyup(function(e){
    var messages = $('.chat .entree').val();
    messages = $.trim(messages);
    var membre = "<?php echo $get_pseudo;?>";
    membre = $.trim(membre);
        if(messages !== "" && e.keyCode === 13 && e.shiftKey === false)
        {
                        $.post('index.php?page=envoie_msg',{messages:messages},function(){ 
                        recup_msg();
                                                $('.chat .entree').val('');
                        });

        }
});
}
envoi_msg();

Voila je voudrai juste comment envoyer a la page le GET'pseudo'] de la page index : index.php?page=chat&pseudo=user.

Merci a vous et bonne journé

8 réponses


TU mets du php dans ton js ... a moins de générer le js dynamiquement a chaque requête http (ce qu'il ne faut pas faire !!!!) tu ne peux pas faire ca.
Voici une solution:

Index.php:

<div class='chat'>
    <div class='messages'></div>
    <textarea class='entree' placeholder="Veuillez saisir votre texte ici (Shift+Entrée pour un saut de ligne)"></textarea>
    <input id="pseudo" type="hidden" value=" <?php echo $get_pseudo;?>" /> // Stockage du pseudo dans un champ caché de index.php
</div>

chat.js

$('.chat .entree').keyup(function(e){
    var messages = $('.chat .entree').val();
    messages = $.trim(messages);
    var membre = $.trim( $("#pseudo").val() ); // Récupératiode la valeur de champ caché;
    /**
     * RESTE DE TA FONCTION JS ...
     */
});

merci mais je fais comment pour envoyer a la vase de donne le pseudo du dest ?

Hein ??

comment je vais faire pour envoyer a ma base de donne le input hidden ?

Ah !
ben un truc comme ca non ?

$.post('index.php?page=envoie_msg&membre=' + membre,{messages:messages},function(){ 
    // ...
);

dans ton JS

et

$membre = trim(htmlentities(mysql_real_escape_string($_GET'membre'])));

dans envoie_msg.php, par exemple

Bonjour merci beaucoup pour ton aide voila :
Je ne suis pas fort en JS j'ai juste copier/coller se code mais en php j'ai des notions enfin se que je voudrai faire c'est faire une discussion instantané entre deux personne A & B comment faire pour envoyer a la BDD la discussion de A et B et les message sans que l'utilisateur C n'est accés au message de A & b j'éspère que vous avez compris mercii :D

alors ? svp

Et bien tu fais une vérification que le message correspond bien à un message envoyé ou reçu par le compte sur lequel tu es connecté :)