Tchat php5, javascript->ajax

Soyez le premier à donner votre avis sur cette source.

Vue 10 075 fois - Téléchargée 2 400 fois

Description

Un petit script de tchat utilisant php5 et javascript et Ajax.

AMÉLIORATION PRÉVUES :
=>Installation facile
=>Plusieurs design css
=>Message en privé
=>Création de salon
=>Liste des connectés
=>Modérateurs
=>Shootbox

Source / Exemple :


<?php
	/**

  • remplir les 'define'
    • /
define('s', 'localhost'); /* l'adresse du serveur */ define('u', 'USER'); /* nom de l'administrateur */ define('p', 'PASSWORD'); /* mot de passe de l'administrateur */ define('b', 'BDD'); /* nom de la base de donnees */ /* *
  • REDIRECTION
    • /
function redirection($url, $time=0) { if (!headers_sent()) { header("refresh: $time;url=$url"); exit; } else { echo '<meta http-equiv="refresh" content="',$time,';url=',$url,'">'; } } /**
  • LES CONNEXIONS
    • /
class Connexion { /* Connexion a mysql */ public static function connect() { $mysqli = new mysqli(s, u, p); if (mysqli_connect_errno()) { printf("La connexion mysql est impossible : %s\n", mysqli_connect_error()); exit(); } if(!$mysqli->select_db(b)) { printf("La connection à la base : ".$base." impossible : %s\n", mysqli_connect_error()); exit(); } return $mysqli; } /* Connexion tchat */ public static function connect_tchat($pseudo) { $_SESSION['pseudo'] = $pseudo; redirection('chat.php'); } } /**
  • NETTOYAGES DES ENTREES
    • /
class Nettoyage { // Nettoyer variable texte public static function text($var) { $var = filter_var($var, FILTER_SANITIZE_STRING); return $var; } } /**
  • LES MESSAGES
    • /
class Message { /* liste des messages tchat */ public static function liste_tchat() { $Q = Connexion::connect()->query("SELECT * FROM message ORDER BY date DESC LIMIT 15"); $D = array(); while($R=$Q->fetch_assoc()) { $D[]=$R; } for($I=count($D)-1; $I>=0;$I--) { @$RES .= '<strong>'.$D[$I]['pseudo'].'</strong> : '.htmlentities($D[$I]['message']).'<br />'; } if(!empty($RES)) { return $RES; } else { $RES = "Il n'y à aucun message."; return $RES; } } /* Ajout d'un message */ public static function ajout_message($pseudo, $message) { if(Connexion::connect()->query("INSERT INTO message VALUE(NULL, '".Nettoyage::text($pseudo)."', '".Nettoyage::text($message)."', '".time()."')")) { return true; } else { return false; } } } ?>

Conclusion :


Première fois que j'utilise l'ajax, il faut bien apprendre !
N'hésitez pas à me dire ce que vous en pensez, et à me faire part des amélioration possible.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Bonjour je ne sais pas si on va me répondre mais est ce que quelqu'un peu me donner les tables à créer dans la BDD ? Merci
Messages postés
28950
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 juillet 2020
333 > Nourson
Bonjour.
Tu as ta réponse dans le fichier aide.html.
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
Salut JejeScript et tous,

Je reviens vers vous car nous n'avons pas trouvé réellement la solution au problème de rafraichissement de la page en Ajax qui est le véritable problème.

La solution serait que si, d'un poste client, on envoi (ou poste) un message, le serveur réagi et envoi un retour chez les autres personnes connectées au chat sans faire c'est tests asynchrone en Ajax.

Il y a plusieurs solutions, un serveur APE.
Lien : http://www.ape-project.org/docs/server/
Je vous avoue que c'est compliqué. Mais, sur tout les forums ou j'ai croisé une discussion similaire, ils se retournent souvent sur NodeJS et Socket.IO.
Et là (enfin la solution miracle :)) pour moi, le top.
Je bosse sur un serveur dédié et mon administrateur système m'a installé le serveur cela les doigts dans le nez (Linux). Sur mon poste (localhost) sur Windows, il m'a fallu 2 minutes et rien de plus.

Voici un très bon tuto et en plus en français :)
Lien : http://www.grafikart.fr/tutoriels/nodejs/nodejs-socketio-tchat-366

Pour faire simple, coté poste client et serveur, cela fonctionne uniquement en JavaScript.
Donc, si vous maitrisé le JavaScript ;)
Pour ceux qui maitrise l'object, imaginé qu'a chaque fois qu'un poste client ajoute un nouveau message, le même object s'incrémente et peut retourné la totalité de la discussion à un nouveau poste qui c'est connecté dans un temps ultérieur à la discussion et cela sans base de données.
:)

Bien à vous tous,

Stay
Bonjour à tous,

Je suis désolé ces derniers temps, je ne suis spas présent, pas mal de chose à réglé quelques soucis personnels font que je n'ai pas vraiment de temps.

Mais une fois que tout sera réglé, et que ça tournera un peu plus rond pour moi, je reviendrai ! "rire"

Cordialement.
Messages postés
14
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
5 janvier 2012

petit décrassage... Pour éviter le rafraîchissement permanent, mais avoir les nouveaux messages automatiquement, regarde du coté de nodeJS et socket.IO...
Afficher les 27 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.