Partage
  • Partager sur Facebook
  • Partager sur Twitter

Chatbox

    17 mars 2011 à 22:38:56

    Bonjour a tous !
    Voilà mon souci, j'ai une chatbox qui marche, le problème c'est que je veux pour le pseudo utiliser la session au lieu d'un input.

    Et la ça bloque, forcement, je stocke le pseudo, et via un id j'essaie de l'utiliser avec le JS, hors, il ne récupère rien, ce qui donne un résultat plutôt gênant : aucun pseudo !


    Voici le code :

    <?php
    session_start();
    
    //chemin vers la fonction lire_info_utilisateur -> aucun souci ici !
    
    		$infoscb = lire_infos_utilisateur($_SESSION['id']);
    		$pseudo = stripslashes($infoscb['nom_utilisateur']);
    
    
    //
    // Notre fonction PHP pour afficher les messages :
    //
    
    function afficher()
    {
            $reponse = new xajaxResponse();// Création d'une instance de xajaxResponse pour traiter les réponses serveur.
            $chat = '';// Initialisation de la variable $chat.
            $fichier_texte = fopen('./chat.txt', 'r');// On ouvre notre fichier texte en lecture seule.
            $chat = fread($fichier_texte, filesize('./chat.txt'));// On lit notre fichier et on stocke son contenu dans la variable $chat
            fclose($fichier_texte);//On ferme notre fichier texte.   
            $reponse->assign('block', 'innerHTML', $chat);// Enfin, on remplace le contenu du div 'block' par le contenu de $chat
            return $reponse;
    }
    
    //
    // Notre fonction PHP envoyer pour envoyer un message :
    //
    function envoyer($posteur, $message)
    {
            $reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur.
            $fichier_texte = fopen('./chat.txt', 'a');//On ouvre notre fichier texte en écriture seule.
            fwrite($fichier_texte, '<tr style="border-collapse: collapse; width: 800px;"><td class="message" style="width: 800px;"><font color="#ED8900">['. htmlentities(date("H:i:s")) .']</font> - <strong>' . htmlentities($posteur) . ': </strong>' . htmlentities($message) . '</td></tr>');// On stocke le message dans notre fichier.
            fclose($fichier_texte);// On ferme notre fichier texte.
            $reponse->clear('message', 'value');// On vide le champ contenant le message de l'utilisateur.
            $reponse->call('xajax_afficher');// On appelle la fonction afficher pour afficher les messages pour que l'utilisateur voie son message à l'écran.
            return $reponse;
    }
    
    //
    // Ouverture de la librairie xajax, instanciation d'un objet de la classe xajax, puis déclaration de nos fonctions PHP.
    //
    require_once('./xajax_core/xajax.inc.php');
    $xajax = new xajax(); //On initialise l'objet xajax.
    $xajax->register(XAJAX_FUNCTION, 'afficher');// On enregistre nos fonctions.
    $xajax->register(XAJAX_FUNCTION, 'envoyer');
    $xajax->processRequest();// Fonction qui va se charger de générer le Javascript, à partir des données que l'on a fournies à xAjax APRÈS AVOIR DÉCLARÉ NOS FONCTIONS.
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
            <head>
                    <title>Chat xAjax</title>
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                    <style type="text/css">
                    th.cb { background: #0000FF; }
                    td.cb { background: #FF0000; }
                    td.message { background: #00FF00; border: 1px solid black; border-collapse: collapse; }
                    </style>
                    <?php $xajax->printJavascript(); /* Affiche le Javascript */?>
                    <script type="text/javascript">
                    function refresh()// Code javascript qui va appeler la fonction afficher toutes les 5 secondes.
                    {
                            xajax_afficher();
                            setTimeout(refresh, 5000);
                    }
                    </script>
            </head>
            <body>
                    <table style="border-collapse: collapse;"><tr><th class="cb">Chatbox</th></tr>
                    <tr><td class="cb"><table style="border-collapse: collapse; width: 800px;"><div id="block" style="height: 200px; overflow: auto;"></div></table></td></tr>
                    <tr><th class="cb">
                    <form action="">
                              <label><b id="posteur"><?php echo $pseudo; ?></b></label>
                              <label>Message : <input type="text" size="50" id="message" /></label>
                              <input type="submit" value="Envoyer" onclick="xajax_envoyer(document.getElementById('posteur').value, document.getElementById('message').value); return false;" />
                    </tr></table>
                    </form>
                    <script type="text/javascript">
                            refresh();//On appelle la fonction refresh() pour lancer le script.
                    </script>
            </body>
    </html>
    


    Merci d'avance, la je bloque un peu !
    • Partager sur Facebook
    • Partager sur Twitter
      22 mars 2011 à 15:23:49

      Dans le fichier ou tu as ta fonction lire_infos_utilisateur, tu as bien un session start ?
      • Partager sur Facebook
      • Partager sur Twitter

      Chatbox

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown