Partage
  • Partager sur Facebook
  • Partager sur Twitter

chat xajax amélioré

écriture dans fichiers multiples

    16 janvier 2009 à 23:50:35

    bonjour à tous, j'ai suivi le tuto xajax dans le but de réaliser un chat.
    j'essaye maintenant de l'améliorer pour permettre des discussions privées entre les membres de mon site.
    pour ce faire j'aimerai modifier par javascript le fichier dans lequel les fonction xajax écrivent.
    j'ai fait de nombreux essais, mais pas moyen d'y parvenir

    si quelqu'un pouvait m'aider, je luis en serai très reconnaissant!

    merci ;)
    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2009 à 1:13:14

      on peut pas t'aider sans tes codes mon petit...
      • Partager sur Facebook
      • Partager sur Twitter
        17 janvier 2009 à 16:44:47

        les codes sont ceux du tuto :http://www.siteduzero.com/tutoriel-3-3 [...] et-xajax.html


        les modifiactaions que je veux faire concernent les lignes 9 et 22;
        je voudrai donc modifier en javascript le fichier dans lequel écrire (dans le code si dessous tout les dialogues sont enregistrés dans chat.txt)

        et donc le code:

        <?php
        //
        //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 le stocke dans la variable $chat
                fclose($fichier_texte);//On ferme notre fichier texte   
                $reponse->assign('block', 'innerHTML', $chat);//Enfin, on change 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 ecriture seule
                fwrite($fichier_texte, addslashes('<strong>' . htmlentities($posteur) . ':</strong>' . htmlentities($message) . '<br />'));//On stocke dans notre fichier
                fclose($fichier_texte);//On ferme notre fichier texte
                $reponse->clear('message', 'value');//On vide le champ contenant le message du posteur
                $reponse->call('xajax_afficher');//On appelle la fonction afficher pour afficher les messages et aussi pour que le posteur voit 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 APRES AVOIR DECLARE 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=iso-8859-1" />
                        <?php $xajax->printJavascript(); /* Affiche le Javascript */?>
                        <script type="text/javascript">
                        function refresh()//script javascript qui va appeler le fonction afficher toutes les 5 secondes
                        {
                                xajax_afficher();
                                setTimeout(refresh, 5000);
                        }
                        </script>
                </head>
                <body>
                        <div id="block"></div>
                        <form action="">
                                <fieldset>
                                 <legend>Entrer ici votre message :</legend>
                                 <div>
                                  <label>Nom : <input type="text" size="15" id="posteur" /></label><br />
                                  <label>Message : <input type="text" size="50" id="message" /></label><br />
                                  <input type="submit" value="Envoyer" onclick="xajax_envoyer(document.getElementById('posteur').value, document.getElementById('message').value); return false;" />
                                 </div>
                                </fieldset>
                        </form>
                        <script type="text/javascript">
                                refresh();//On appelle la fonction refresh() pour lancer le script
                        </script>
                </body>
        </html>
        


        le code de base est en php, mais les modifications que je veux faire sont bien en javascript

        merci!
        • Partager sur Facebook
        • Partager sur Twitter
          18 janvier 2009 à 1:01:37

          je ne vois pas ton problème, si tu veux, j'ai posté un topic avec les mêmes questions (je vais poster les codes finaux, inspire toi si tu veux ;) )
          • Partager sur Facebook
          • Partager sur Twitter
            18 janvier 2009 à 23:59:29

            en fait, c'est bon, comme le php est interprété sur serveur, je ne pensait pas qu'en rajoutant un accés bdd directement dans la fonction ca marcherait!

            en ajoutant le nom de fichier en paramètre, ca fonctionne très bien

            très fort le xajax^^

            function envoyer( $posteur,$message, $file)
            {
                   $reponse = new xajaxResponse();
             if($message!="" && $file!="" ){
                    $fichier_texte = fopen('./'.$file.'.chat', 'a');//On ouvre notre fichier texte en ecriture seule
                    fwrite($fichier_texte, addslashes('<strong>' . htmlentities(utf8_decode($posteur )) . ': </strong>' . htmlentities(utf8_decode($message)) . '<br />'));//stockage dans fichier
                    fclose($fichier_texte);//On ferme notre fichier texte
            
                    $reponse->clear('chat_msg', 'value');//On vide le champ contenant le message du posteur
             }
                   $reponse->call('xajax_afficher',$file);//On appelle la fonction afficher pour afficher les messages et aussi pour que le posteur voit son message Ã  l'écran
                    return $reponse;
            }
            • Partager sur Facebook
            • Partager sur Twitter

            chat xajax amélioré

            × 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