MINI CHAT

amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 - 21 déc. 2006 à 13:49
cs_bonhommecrea Messages postés 44 Date d'inscription dimanche 14 mars 2010 Statut Membre Dernière intervention 13 mars 2011 - 18 août 2010 à 11:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40805-mini-chat

cs_bonhommecrea Messages postés 44 Date d'inscription dimanche 14 mars 2010 Statut Membre Dernière intervention 13 mars 2011
18 août 2010 à 11:38
Merciu pour le script, il fonctionne bien, seulement change les <textarea> par des
, les textarea peuve être facilement modifiée, pas les div :)
cirkooo Messages postés 35 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 26 décembre 2012
24 juil. 2009 à 11:40
Merci,ce script fonctionne, et çà, c'est énorme, merci beaucoup, car l'ayant pris ailleurs, je cherchais l'erreur (que je n'ai toujours pas trouvé d'ailleurs) depuis des mois. Merci, beaucoup, on peut tester, essayer, modifer.
carpiste92 Messages postés 1 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 30 janvier 2008
30 janv. 2008 à 10:48
bonjour
je cherche un exemple MINI CHAT
merci
thierry--92@hotmail.fr
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
25 déc. 2006 à 22:16
Bonjour,
en fait, je me suis trompé, je sais pas kes k il m a arrivé pour dire une betise,
normalement ajax c du javascript et ...,
mais la bibliotheque XAJAX, nous facilite la tache pour programmer en php et c'est a elle de convertir en javascript...
Je voulais dire ça au debut, mais ...
Bon courage
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
23 déc. 2006 à 19:07
$kankrelune->mode('groumf',true);

Et xajax ça génère quoi... du... du... du javascript... .. .

Bref je ne dirais qu'une chose... BOULET !!! .. .

$kankrelune->mode('groumf',false);

Désolé Malalam... mais y a des fois je ne puis m'empêcher... ça soulage... .. .

Sans rancune aucune... et noyeux Joël à tous... .. .

@ tchaOo°
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
22 déc. 2006 à 20:37
bah poour apprendre ajax facilement,(comme c etait le cas pour moi).
veuillez aller voir :
http://www.siteduzero.com/tuto-3-7876-1-application-ajax-facile-avec-php-et-xajax.html
le site principal est :
www.xajaxproject.org/
et si vous avez des problèmes ou des remarques :
http://community.xajaxproject.org/
Bon courage.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 déc. 2006 à 20:33
En réponse à Younes => Ajax, c'est du javascript, point barre. Du javascript qui appelle un script serveur, qui lui peut être en de nombreux langages, dont PHP.
Ajax, pour soutenir Kankrelune, c'est un ancronyme qui, grosso merdo, est un mot un peu plus sexy pour parler d'une méthode permettant de réaliser des requêtes xmlhttp.
Mais la base, c'est le javascript.
Donc, la remarque de Kankrelune concernant le "et si javascript est désactivé? Ajax nécessite une méthode alternative, n'utilisant pas javascript, et qui n'est pas forcément à la portée du débutant" est parfaitement juste.
Ou alors, si tu as trouvé une méthode pour faire de l'Ajax, sans javascript, avec uniquement du php et du sql, fais en part à la communauté, s'il te plait, tu deviendras vite célêbre :-)
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
22 déc. 2006 à 18:35
Merci mais je sais bien ce que sont les requêtes asynchrones le terme ajax commence à me gonfler... depuis deux ans c'est le terme à la mode utilisé (pour ne pas dire tartiné) à toute les sauces bien souvent pour rien... chez moi ajax c'est pour récurer les chiottes... lOoOl... ...

Pour revenir au sujet ajax c'est du javascript dont les xmlhttprequest... après le traitement de fond peut biensur être en php mais aussi en asp, ruby, coldfusion, etc... quel que soit le langage utilisé en tache de fond le code javascript générant les xmlhttprequest ne changera pas, hormis l'extension du fichier appelé... en conclusion ajax n'est pas et ne sera jamais du php (voir différence langage interprété coté client/coté serveur)... .. . ;o)

@ tchaOo°
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
22 déc. 2006 à 17:29
en reponse à kankrelune , ajax, ça peut etre avec du php/mysql....,
et pour tout le monde et sutout l auteur , voici un tuto tres bien, et c avec ce tuto que j ai bien appris ajax :
http://www.siteduzero.com/tuto-3-7876-1-application-ajax-facile-avec-php-et-xajax.html

il contient aussi un mini-chat simple.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 déc. 2006 à 15:27
Angelz => il y a de nombreuses années, j'ai aussi débuter. Il y a pas mal de codes ici dont je suis l'auteur, et dont je ne suis pas fier... ;-)
Je sais à quel point il est difficile de débuter. Certes, PHP est un langage répandu, extrèmement bien documenté (je parle là de la bible : php.net), et que l'on peut trouver sur le net énormément de ressources (resources en anglais hein...), de tutoriaux, d'aide sur divers forums...le problème est qu'il y a en réalité peu de tutoriaux aboutis et bien codés (beaucoup sont vieux, à la décharge de leurs créateurs...donc ce n'est pas forcément leur faute. Sauf que PHP a beaucoup évolué, les créateurs de ces tutos aussi...mais que leurs tutos, pas forcément. Et je ne dirai pas ce que je pense des tuto du Site du Zéro.). Que sur les forums, ce ne sont pas forcément des "phpistes" réellement bons qui répondent...et que les ressources, de la même manière, ne sont pas forcément correctement codées.
Et pour un débutant, malheureusement, il est difficile, voire impossible, de faire un tri...vu qu'il débute!

Donc...bon courage, Angelz... ;-) Un conseil quand même, tu apprendras plus en lisant la doc sur php.net que n'importe où ailleurs. Elle fait foi.
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
22 déc. 2006 à 15:17
merci merci pour ces infos encore bcp bcp a apprende :)
sinon pour "repondre" a malalam, je suis entierement d'accord avec toi.
ce code je le savais n'est evidement pas la pour etre reutilise, je pense que des chat tt fait ici il doit y en avoir deja pas mal lol
je l'ai poster pour comme tu dis avoir des conseils de pro :)
c'est comme ca que je pense pouvoir progresser
mais pq pas cree en effet une section debutant car je trouve se site et les gens qui y reponde tres complet et competant en plus (enfin je crois lol)
merci de laisse le code qui je pense pourra en aider d'autre qui debute :)

pour le reste je lire ca trnaquillement ce soir :)
merci encore a tous
j'ai plus apris en 2 jour avec vous qu'en 2 semaine de lecture lol
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 déc. 2006 à 15:09
tartuffe => il y a plusieurs façons de voir les choses ;-)
Tu peux toujours vérifier tout ce que tu veux via PHP, grâce aux fonctions de base. Même si là, dans ton exemple, je vois mal ce que tu sécurises dans le cadre d'une requête sql basée sur des données utilisateur : trim () ne fait pas grandchose si ce n'est supprimer les caractères invisibles en début et en fin de chaîne. Ca ne sécurise rien du tout. "'", l'apostrophe est pour mysql, comme pour php d'ailleurs, un caractère à échapper. IL y en a d'autres avec mysql. Des caractères qui, potnetiellement, peuvent permettre à un utilisateur peu scrupuleux de détourner une requête, comme le souligne Couou. trim () ne t'aidera pas, là.
On peut toujours panser à addslashes (), qui est LA fonction d'échappement de caractère de PHP. Tu m'aurais mis cette fonction dans cet exemple, j'aurais compris...mais ce n'est pas le cas.
Néanmoins, addslashes () ne prend en compte que les caractères posant potentiellement un problème avec PHP, pas avec mysql (même si, pour le moment, ce sont les mêmes, grosso modo). mysq_real_escape_string (), lui, est basé sur l'api mysql pour php, et donc, évoluera en fonction du moteur de mysql. Bref, il sera toujours à jour...pour mysql, contrairement à addslashes () qui lui se fiche éperduement de mysql.
cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 3
22 déc. 2006 à 14:39
Sympa cette discussion...

Je voudrais revenir sur "mysql_real_escape_string"....
Au cas où effectivement la requête à une tête de type :
- select * from table where chp1=".$_post['mavariable']
je comprends l'intérêt de "mysql_real_escape_string".

Lorsqu'il y a des traitements avant, type :
- if(strlen(trim($_post[mavariable]))<250 && strlen(trim($_post[mavariable]))>5)
{$variable_post="where chp1= ".(trim($_post[mavariable]));}
else
{$variable_post="";}
- select * from table $variable_post']
doit on utiliser "mysql_real_escape_string" ?

Et dans l'absolu, doit on TOUJOURS utiliser "mysql_real_escape_string" avec des requêtes construitent avec des variables GET et POST ?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 déc. 2006 à 13:38
injection sql, c'est détourner une requette pour lui donner un comportement anormal (violer des droits genre afficher des mots de passes, supprimer des données ...) on la fait en ajoutant du code dans des cookies, post ou get...

malalam, faudrait si possible aussi mettre une catégorie "codes à pomper tout faits" ou on ne verrait pas de librairies... Comme ça, on pourrait comparer les gens qui ne font que piquer des sources avec ceux qui codent vraiment, pour conclure que sur les 800 000 membres, peu sont ceux qui sont actifs et utiles...
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
22 déc. 2006 à 12:44
Angelz... la doc php est ton amie... .. .

http://fr2.php.net/nom_de_la_fonction

Sinon rien à rajouter à ce qu'a dit Malalam... .. .

@ tchaOo°
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 déc. 2006 à 12:10
N'empêche, plus je vois de codes défiler, plus je me dis qu'un espace "présentation de codes de débutants" serait approprié.
Il faudrait un espace "codes utiles", qui sont de bons codes finalisés, correctement codés, et réutilisables, et un espace pour les débutants, montrant leurs codes dans le but d'être critiqués et corrigés.
Parce que je me suis posé la question sur ton ode : je le laisse, ou je le supprime...clairement, - désolé -, il n'a pas sa place en tant que code réutilisable. Mais il est intéressant de par les commentaires laissés par Kankrelune, concernant les corrections à y apporter. Bref, pédagogiquement, c'est intéressant. Mais les utilisateurs de CS risquent de s'y perdre.
Donc, en tant qu'admin, je préviens : ce code reste, mais n'a aucun intérêt pour une éventuelle réutilisation. IL a un intérêt didactique grâce aux corrections et remarques apportées par les membres, uniquement.
Et il reste.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 déc. 2006 à 12:06
Hello,

- CONCACTNATION ça n'existe pas. Tu parles sans doute de concaténation. Dans ce cas, c'est le fait de "coller" deux chaînes pour n'en faire qu'une :
$a = 'hello';
$b = 'world';
$c = $a.$b;
echo $c;
$c est une concaténation de $a et de $b, et vaut 'hello world'. L'opérateur de concaténation en php est le point : .
Avec un echo, on peut ne pas concaténer, vu que c'est une structure fonctionnant comme une fonction: son but est d'afficher vers la sortie écran les paramètres qui lui sont passés:
echo $a, $b; // va afficher hello world
echo $a.$b // va afficher aussi hello world

Une injection sql est le fait d'injecter du code SQL dans une requête sql...heu...en gros, si tu as un formulaire qui demande un pseudo et un mot de passe, et que le mec te passe un truc qui est une requête sql à la place, c'est une injection. Si tu ne te prémunis pas de ça, tu peux avoir des problèmes. Je ne vais pas rentrer dans les détails de ce qui peut être fait, mais mysql_real_escape_string () est effectivement une fonction PHP permettant d'échapper automatiquement les données qui lui sont passées en paramètres. Notament l'apostrophe qui peut être utilisée dans le cadre d'une injection.
La XSS c'est du cross scripting. C'est une injection, mais ça s'applique aussi à des langages de scripts, pas qu'au sql.
A la place du pseudo ou du mot de passe ou du message, le mec peut balancer du html, ou du javascript, par exemple. Et ce code peut poser des problèmes...dans le meilleur des cas, à ton affichage. Dans le pire...bah...ça peut aller loin.
htmlentities () te prémunit de ça vu que ça transforme les tags html en entitéss html non interprétées. Donc, si on balance du javascript, il ne sera pas interprété, et sera simplement affiché.
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
22 déc. 2006 à 11:50
bon je vais alors demander.
la CONCACTATION je capte pas...
qlq peut eclerer ma lanterne
je c pas qd metre les . lol

sinon qu'est que la faille injection ainsi que la xss permanente?
-----------------------
mysql_query('INSERT INTO minichat VALUES(\'\', \''.mysql_real_escape_string($pseudo).'\', \''.mysql_real_escape_string($message).'\')');
-----------------------
mysql_real_escape_string >> c une fonction ?
merci bcp
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
22 déc. 2006 à 10:33
Ton code présente toujours la faille à la SQL injection (la plus grave)... prend le code nettoyé que je t'ai mis... regarde le et plutot que de ne changer que ce que tu comprend demande des explications sur ce que tu ne comprend pas... .. .

@ amezghal

{
echo htmlentities($donnee['pseudo']).' >>>> '.htmlentities($donnee['message']);
}

@ tchaOo°
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 déc. 2006 à 10:32
on n'est pas obligé d'utiliser ajax pour éviter le rechargement... sinon, les IRC cgis n'utiliseraient qu'ajax, or c'est bien plus vieux que ça...
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
22 déc. 2006 à 03:32
Ce qui me fait rire c est la correction du 21/12/2006 23:09:30 sans parler du 21/12/2006 23:12:17 qui corrige lol
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
21 déc. 2006 à 23:55
une autre remarque a la ligne 80 tu fermes la balise php,et juste apres tu le re ouvres.

================================
{
?>
<?php echo htmlentities($donnee['pseudo']); echo ">>>>"; echo htmlentities($donnee['message']); // on affiche les donnees recuilli grace a un echo
}
?>
===============================
fo mieux ecrire:
==============================
{
echo htmlentities($donnee['pseudo']); echo ">>>>"; echo htmlentities($donnee['message']); // on affiche les donnees recuilli grace a un echo
}
?>
=============================
bon prog
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
21 déc. 2006 à 23:50
Bien fait dans cette MAJ mais ya une ptite remarque:
-il suffit de se connecter a la BD une seul fois. si tu vois bien tu trouves le contraire ( ligne 53, apres ligne 62).
bon prog
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
21 déc. 2006 à 23:06
voila jai retravailler un peu le code grace au info que vous m'avez donné, mais pas mal de chose m'echappe, par manque de connaissance je pense.
j'ai donc changer uniquement ce que j'ai compris pour le reste je crois que je vais d'abord finir le cour de SDZ pour appronfondir le reste et j'y reviendrai
merci beaucoup pour votre aide
a tres bientot car je ne laisse pas tombe ;)
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
21 déc. 2006 à 17:38
Ton commentaire concernant les requetes n'a pas lieu d'être sur ce script puisque le chat n'est pas rechargé... c'est un mauvais point d'ailleur il faut recharger la page pour voir les nouveaux message... qui plus est ajax n'empeche en rien les requetes elles sont juste effectuées en tache de fond... .. .

Ce que je trouve abhérant c'est que depuis un an ou deux les gens bavent sur des technologies bien plus vieilles que ça à cause d'un effet de mode... mieux vaut un chat bien codé sans ajax que mal codé avec !!! .. .

Oui ajax c'est bien mais encore faut il savoir s'en servir... qui plus est il est totalement injustifié de dire à un débutant en php d'utiliser Ajax... déja qu'il se concentre à apprendre le php il verra ensuite pour ajax... .. .

@ tchaOo°
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
21 déc. 2006 à 17:30
autre chose pense a travaillé avec les sessions, pour éliminer le test du pseudo chaque fois, (yavai une tuto sur SDZ é_è), et met en considération les remarques de kankrelune,
n'hesiter po à poster une MAJ
bon prog
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
21 déc. 2006 à 17:16
AJAX n'est que du JavaScript, bon pour un chat en fait beaucoup de requettes sql, pour extraire les nouveaux messages, cela provoque un mauvais clignotement, se qui est po bien pour un chat.
le role d'AJAX c de faire ces operations mais en cache.

bon si tu veux en savoir voici une bonne tuto:
http://gael-donat.developpez.com/web/intro-ajax/
bon prog
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
21 déc. 2006 à 16:12
N'hésite pas à poser des questions sur ce qui t'échappe... c'est comme ça qu'on apprend... comme ça et avec la doc php... .. .

http://fr2.php.net/nom_de_la_fonction

@ tchaOo°
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
21 déc. 2006 à 16:02
waou waou
encore bcp de chose a apprendre moi
merci de toute c correction, je v relier ca plus attentivement ce soir, j'avou que pas mal de chose m'echappe, mas cela doit etre normal au debut:)
mais merci pour tt ces conseils je v etudier ca
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
21 déc. 2006 à 15:10
Pour répondre à amezghal...

Ajax c'est du détail... c'est pas utile d'autant plus quand on débute... faut arrêter de ne jurer que par Ajax c'est de la poudre aux yeux... qui plus est Ajax est basé sur du javascript ici c'est le php qui nous interesse... et tu fais quoi si le navigateur n'a pas le javascript d'activé... il faut donc mettre en place des alternatives et c'est bien trop compliqué pour un débutant... .. .

Quand au test du pseudo il est obligatoire (ça évite les floodeur sans nom) et c'est surement pas ça qui ralenti... .. .

@ tchaOo°
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
21 déc. 2006 à 15:07
Hello... .. .

Bon ton code marche... ok... cependant comme tu t'en doute il y a beaucoups à dire... .. .

Tout d'abord ce script présente des failles que dis je des gouffres de sécurité... une belle faille à la sql injection... .. .

mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");

Avec ça tu risque de te faire plomber ta base de données...

Et une belle faille xss permanente...

echo $donnee['pseudo'];?><? echo ">>>>";?><? echo $donnee['message'];

avec ça tu risque d'avoir des insertions défigurant ton site (au mieux) ou volant/réécrivant les cookies de ton site ou faisant une redirection sur un autre site... .. .

Donc dans l'ordre... .. .

déja met <?php et non pas <? ton code n'en sera que plus portable (compatible)... ensuite tu ouvre et referme 2 fois ta connection à mysql... c'est inutile et consome des resources pour rien... tu ouvre la connection tout au début du script et la ferme quand tu as finis tes requetes... .. .


if (isset($_POST['pseudo']) AND isset($_POST['message']))

Il serait bien de vérifier si un message est envoyé... non ? ça évitera les messages vides... donc...

if(isset($_POST['pseudo']) && !empty($_POST['pseudo']) && isset($_POST['message']) && !empty($_POST['message']))

Mais comme il serait bien d'éviter les message avec un espace dedans autant instancier $pseudo et $message avant... donc...

if(isset($_POST['pseudo']))
$pseudo = trim($_POST['pseudo']);
else
$pseudo = '';

if(isset($_POST['message']))
$message = trim($_POST['message']);
else
$message = '';

if(!empty($pseudo) && !empty($message))

voila qui est mieux... ensuite...

mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");

alors ça c'est pas beau et c'est dangereux... il ne faut JAMAIS faire confiance aux données soumises par l'internaute et toujours les traiter comme des données potentiellement dangereuses... .. .

mysql_query('INSERT INTO minichat VALUES(\'\', \''.mysql_real_escape_string($pseudo).'\', \''.mysql_real_escape_string($message).'\')');

Au passage ton champs id ne sert strictement à rien vu que tu ne fera jamais de "SELECT ... WHERE id=valeur"... .. .

?>
<?

Ca non plus ça sert à rien... .. .

$data = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0, 10")

Il ne faut pas faire de select * quand tu connais les champs à récupérer... c'est une perte de temps et de performances... donc...

$data = mysql_query('SELECT pseudo,message FROM minichat ORDER BY ID DESC LIMIT 0, 10')

Ensuite...

while ($donnee = mysql_fetch_array($data))

Et si ton tableau est vide ? ta boucle s'arrete... donc...

while(false !($donnee mysql_fetch_array($data)))

Ensuite...

<? echo $donnee['pseudo'];?><? echo ">>>>";?><? echo $donnee['message']; ?>

Bon je ne vais pas revenir sur le ?><?... tes echo multiple sont inutile et tu risque une attaque xss à afficher les données en brut sans les traiter... qu'est ce qui se passe si je poste du html et/ou du javascript ? donc...

<?php echo htmlentities($donnee['pseudo']).' a dit : '.htmlentities($donnee['message']); ?>

<? // on verifi si la variable $pseudo existe
if (isset($pseudo)) { echo $pseudo;// si oui on affiche le pseudo a la place du champ text
}
else // sinon on affiche le champ texte
{?> <? }?>

Ca c'est pas con du tout mais j'aimerais bien savoir comment tu fais pour récupérer le pseudo à partir du second post... .. ?

<?php

if(!empty($pseudo))
echo '';
else
echo '';

?>

ton code n'est surement pas valide XHTML car les balise non refermées (br, input,etc..) doivent se finir par un /> et non pas juste un >

Tu fais un or die(...) pour les requetes... c'est un peu crade mais c'est bien... cependant tu ne le fais pas pour la connection à la base de données et la selection de la base... sinon il faudrait faire un garbage collector... parce que tu nettoie jamais ta table des vieux enregistrements donc au bout d'un moment ça risque d'être le bordel dans ta table... .. .

on reprend tout depuis le début...

<?php

// on se connecte a la BDD
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('site_php_module') or die(mysql_error());

// on verifie que les variable $_POST['pseudo'] et $_POST['message'] existe
if(isset($_POST['pseudo']))
$pseudo = trim($_POST['pseudo']);
else
$pseudo = '';

if(isset($_POST['message']))
$message = trim($_POST['message']);
else
$message = '';

// un message a été posté ?
if(!empty($pseudo) && !empty($message))
{
if(time()%5 === 0) // garbage collector
{
// surement optimisable en une seule requete
$result = mysql_query('SELECT COUNT(pseudo) FROM minichat');
$count = mysql_fetch_rows($result);

if($count[0] > 10)
mysql_query('DELETE FROM minichat LIMIT '.($count[0]-10));
}

// on enregistre dans la BDD les infos recupeter dans les variables $pseudo et $message
mysql_query('INSERT INTO minichat (`pseudo`,`message`) VALUES(\'\', \''.mysql_real_escape_string($pseudo).'\', \''.mysql_real_escape_string($message).'\')');
}

// on va recupere les données dans la table minichat, on les classe par ordre DESCendant dans une LIMITe de 10 entree(les 10 derniere vu que c ds un ordre DESC) dans la variable $Data
$result = mysql_query('SELECT pseudo,message FROM minichat ORDER BY ID DESC LIMIT 0, 10') or die(mysql_error()); //
mysql_close(); //on ferme la connection MySql

?>


Mini Chat


<textarea cols="120" rows="30">
<?php

while(false !($row mysql_fetch_assoc($result)))
echo htmlentities($row['pseudo']).' a dit : '.htmlentities($row['message']);

?>
</textarea>




<form action="minichat.php" method="post">
Pseudo :
<?php // on verifi si la variable $pseudo existe si oui on affiche le pseudo a la place du champ text
if(!empty($pseudo))
echo ''.$pseudo.'';
else // sinon on affiche le champ texte
echo '';
?>
Message :


</form>



www.angelz.be






Voili voilou... je met 4/10... .. .

@ tchaOo°
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
21 déc. 2006 à 14:23
merci
c quoi AJAX ?
je debute vraiment sorry ;)
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
21 déc. 2006 à 13:49
c trop basique, et trop lent,pense a utiliser AJAX.
- il ne faut po vérifier l'existence du pseudo chaque fois sa ralenti, pense aussi a voire les exemples existent dejà sur le site , yona qui sont tres complets.
allez bon prog
Rejoignez-nous