Titre: [PHP] chatbox Posté par: comtezero le 02 Septembre 2005 à 21:57:41 Bonsoir a tous ,
pour la création d'une chatbox , je me pose plusieurs question , -est-ce que je peux utiliser les fonctions fopen fwrite pour copier le message dans un .txt puis apres remplacer dans la chatbox par le message contenu dans le .txt , je suis sur la bonne voie de cette maniere ? - Apres ce que je vois pas du tout c'est comment faire pour qu'un message n'écrase pas le précédent et s'inscrit autre part ( comme celui du site qui s'inscrit dans la boite superieur ) , quelqu'un peut me mettre sur la voie et me dire si il s'agit de la bonne méthode ? Please Titre: [PHP] chatbox Posté par: kokotchy le 03 Septembre 2005 à 15:46:37 pourquoi ne pas stocké dans une base de donnée ?
si tu ouvres le fichier avec a+, tu vas écrire le message a la fin du fichier $fp = fopen('fichier','a+'); fwrite($fp,'bonjour'); fclose($fp); Titre: [PHP] chatbox Posté par: comtezero le 04 Septembre 2005 à 11:21:27 Tu es sur que ca marche ,j'avais deja essayé mais ca n'avait pas marcher la c'est pareil alors que pour les challenges le fopen avait marchais mais ca ne se passe pas sur mon serveur ni en fwrite , Free doit bloquer ca non ? vu que le chmod est aussi bloqué . Peut etre que ca marcherait en ecrivant dans un php et non txt .
Titre: [PHP] chatbox Posté par: Folcan le 04 Septembre 2005 à 12:00:17 non ca fonctionne bien avec un .txt, sur NC c'est comme cela que c'est fais en tout cas !
Apres il ets vraiue que Free est en safe mode donc bloke peut etre ce type de commande. Il faudra alors passer par la base de donnée (qui a mon gout est plus simple, tu stock tu recupere). Si tu veux faire avec un .txt, il faut tout dabord que ton script recupere linterité de ton .txt, le separe correctement (par ligne par exemple), puis ajoute a la fin. Titre: [PHP] chatbox Posté par: comtezero le 04 Septembre 2005 à 12:08:48 ok je vais le faire par la bdd , et je re-essayerais plus tard par mon txt . Ca ne ralentie pas trop le site par la base de données ?
Citation Warning: fopen(http://zone2test.free.fr/test.txt): failed to open stream: HTTP wrapper does not support writeable connections. in /var/www/free.fr/2/b/zone2test/test2.php on line 2 J'ai fait un test tou simple ca ne marche pas , pourtant elle n'a pas l'air d'etre interdite :Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/free.fr/2/b/zone2test/test2.php on line 3 Warning: fclose(): supplied argument is not a valid stream resource in /var/www/free.fr/2/b/zone2test/test2.php on line 4 Code: chown chmod get_current_user Titre: [PHP] chatbox Posté par: Perfect Slayer le 06 Septembre 2005 à 17:36:47 bah c'est tout bete par txt (c'est moi qui est codé le chat de NC)... Pour que ca efface pas son conten, il faut :
soit bien configurer les droits d'écriture (pointeur en fin du fichier, sinon il remplace le début du fichier) soit recopier tout le contenu du fichier + le nouveau message (en passant, tu traites ce que tu récupère pour supprimer les messages trop vieux) Voilà, avec ca, t'as le fonctionnement. Tu mets 3 fonctions (et pas plus lol) et ca marche bien. ++ Perfect Slayer Titre: [PHP] chatbox Posté par: comtezero le 06 Septembre 2005 à 19:44:05 oui mais j'ai l'impression que Free le bloque , les droits en écriture ne peuvent pas etre modifié par le ftp . Meme le plus simple des scripts avec fwrite ne marche pas . Faudra que j'essaye sur un local .
merci Titre: [PHP] chatbox Posté par: comtezero le 10 Septembre 2005 à 11:27:01 Code: $db = Mysql_Connect($serveur,$user,$password)OR Die('Erreur de connexion'.mysql_error()); A moins que le probleme vient de ce script : Code: $db = Mysql_Connect($serveur,$user,$password)OR Die('Connexion impossible'.mysql_error()); Titre: [PHP] chatbox Posté par: comtezero le 10 Septembre 2005 à 17:24:56 C'est résolu mais comment faire afficher plusieurs commentaire et non qu'un seul ?
Titre: [PHP] chatbox Posté par: kokotchy le 12 Septembre 2005 à 21:12:35 avec free, je crois que tu ne peux pas ouvrir de fichier 'à l'extérieur'.
Pour ouvrir un fichier ligne par ligne, tu as le bete file qui mets dans un array avec pour chaque cellule une ligne du fichier. pour ta question avec plusieurs commentaires, il faut faire une boucle ;) $res = mysql_fetch_array ($req); { $loginm = $res['login'] ; $heurem = $res['time'] ; $msg = $res['messg'] ; tu as le bloc avec $loginm qui ne sera jamais exécuté puisque il n'y a rien (pas de while, for, if, switch,...) Titre: [PHP] chatbox Posté par: comtezero le 14 Septembre 2005 à 20:00:43 bon merci des indications dès que j'ai un peu de temps je test ca .
Titre: [PHP] chatbox Posté par: comtezero le 14 Septembre 2005 à 20:53:51 C'est bon un chtit :
Code: for ( $i=0; $i<5; $i++){ Titre: [PHP] chatbox Posté par: kokotchy le 15 Septembre 2005 à 07:02:30 {
$loginm = $res['login'] ; $heurem = $res['time'] ; $msg = $res['messg'] ;} normalement ca c'est censé ne rien faire oO pourquoi dis-tu que ca marche ? Et pourquoi faire une boucle avec for si tu peux limité les éléments avec le LIMIT de mysql ? Titre: [PHP] chatbox Posté par: comtezero le 15 Septembre 2005 à 17:17:33 pourtant ca marche nikel la boucle ca affiche plusieurs champ differents , comme celui de NC , a vrai dire le for me paraissait sympa et j'ai meme pas vu qu'il y avait un limit dans mysql , j'ai hésité avec while mais j'ai testé lui en premier et il marchais alors je n'ai pas plus chercher .
Titre: [PHP] chatbox Posté par: Folcan le 15 Septembre 2005 à 22:49:43 Oui je comprend pas bien, la ca te fou juste dans des variables mais si tu ne les affichent pas derriere ca sert pas a grand chose...
Titre: [PHP] chatbox Posté par: comtezero le 16 Septembre 2005 à 18:15:18 je n'ai mis que le script de la boucle sinon j'echo mes variables plus tard .
Titre: [PHP] chatbox Posté par: popop le 14 Mai 2006 à 16:13:06 (ps:je tiens dabord à préciser que je suis encore un débutant quiapprend le php!!)
Bon je vous explique mon probleme: je suis en train de faire une chatbox ( pas d'en le ut de m'en servir tout de suite juste pour comprendre le fonctionnement). mais je comprend pas un truc: quand je me sert de mysql_fetch_array() firefox me di ceci:"Fatal error: Call to undefined function: mysql_array()" pourtant je suis sur (en tout cas presque) de ne pas avoir fait d'erreur de script, de plus j'ai comparé avec un exemple type et il n'y a pas d'erreur possible :? si quelqu'un pouvait m'expliquer d'ou vient le probleme **orthographe !** sympas :o Titre: [PHP] chatbox Posté par: the lsd le 14 Mai 2006 à 16:27:31 Ben moi je veux bien t'aider mais sans le code source c'est pas tres facile... ;)
Enjoy The lsd Titre: [PHP] chatbox Posté par: popop le 14 Mai 2006 à 16:36:12 scuse **No Sms** oublié!!! :rolleyes:
ps:je rappel que j'ai fait ce script just pour comprendre le fonctionnement d'une chatbox pas pour en faite une toute belle... <html> <?php if(isset($_POST['pseudo']) AND isset($_POST['message'])) { if($_POST['pseudo']!=NULL AND $_POST['message']!=NULL) { mysql_connect("localhost","root",""); mysql_select_db("chat"); $message = htmlentities ($_POST['message']); $pseudo = htmlentities ($_POST['pseudo']); mysql_query("INSERT INTO chat('ID', 'pseudo', 'message'); VALUES('', '$pseudo', '$message')"); mysql_close(); } } ?> <form action="chat.php" method="post"> pseudo:<input type="text" name="pseudo"/><br/> message:<input type="text" name="message"/><br/> <input type="submit" value="valider"/> </form> <?php mysql_connect("localhost","root",""); mysql_select_db("chat"); $reponse=mysql_query("SELECT * FROM chat ORDER BY ID DESC LIMIT 0‚10"); while($donnee= mysql_fetch_array($reponse) ) mysql_close(); { ?><p><strong><?php echo $donnee['pseudo'];?></strong>:<?php echo $donnee['message'];?></p> <?php } ?> </html> merci d'avance!! Titre: [PHP] chatbox Posté par: the lsd le 14 Mai 2006 à 17:56:02 Je pense que l'erreur peut venir de la :
Code: while($donnee= mysql_fetch_array($reponse) ) J'aurai mis un truc du genre : Code: while($donnee= mysql_fetch_array($reponse) ) Enjoy The lsd Titre: [PHP] chatbox Posté par: popop le 14 Mai 2006 à 20:11:54 bah jcomprend plus rien ce matin sa marchait pas la je réessaye et sa marche niquel :shock:
mais par contre je comprend pas pourquoi il ne m'affiche pas les dix derniers post? Titre: [PHP] chatbox Posté par: the lsd le 14 Mai 2006 à 22:32:29 Il te les affiche tous?
Tu as essayé sur FireFox et Internet Explorer ou juste sur un seul? Ca vient peut etre de la (je pense pas mais sait on jamais) Enjoy The lsd Titre: [PHP] chatbox Posté par: Shenryu le 15 Mai 2006 à 09:21:14 Euh juste un conseil pour que tes scripts soient moins longs à exécuter... Ouvre une seule fois la base et ferme la une seule fois... C'est sans doute le truc le plus long en php alors si tu l'exécute avant chaque requête tu n'en finira pas.
Tu peux également remplacer les AND par des &&... Je ne savais pas que AND existait en php d'ailleurs. Il ne t'affiche pas les 10 derniers posts parce que ta boucle n'est pas bonne comme l'a montré the lsd dans son premier post. Regarde il t'a même mis la réponse ^^ Au passage, je te conseille de jeter un coup d'oeil pour la sécurité des données entrées dans ton input. Regarde du côté du magic quote (addslashes()), les manipulations de string histoire d'interdire certains caractères ou des les remplacer, mysql_real_escape_string(), htmlspecialchars() qui empêche l'interprétation du html... Et n'oublies pas d'effacer le cache de ton navigateur (surtout ie), il arrive qu'il t'affiche la même chose alors que tu as changé ton code. Titre: [PHP] chatbox Posté par: popop le 15 Mai 2006 à 16:52:29 j'ai fait les modifications que vous m'avez dire c'est a dire que j'ai laissé qu'une seule ouverture de mysql et une seule fermeture qui se situe la ou lsd la mise mais sa ne m'affiche toujours pas les dix derniers post :rolleyes:
Titre: [PHP] chatbox Posté par: the lsd le 15 Mai 2006 à 17:01:10 Tu es sur que les variables arrivent dans la base de données? Ca peut etre utile pour savoir si ca vient du script d'insertion de données ou du script d'affichage. Si elles sont bien dans la BDD c'est que ca vient de l'affichage.
A ta place je mettrai ca : Code: mysql_connect("localhost","root","") or DIE ("Erreur de connexion à la BDD pour l'insertion de données"); Code: mysql_connect("localhost","root","") or DIE ("Erreur de connexion à la BDD pour l'affichage de données"); Enjoy The lsd Titre: [PHP] chatbox Posté par: Shenryu le 16 Mai 2006 à 13:18:06 fais également des :
Code: mysql_query("SELECT * ......") or DIE ("Erreur requête x"); Est-ce que tu as vérifié que tes données étaient bien insérées dans la base. Titre: [PHP] chatbox Posté par: the lsd le 26 Mai 2006 à 08:37:52 Alors tu a trouvé ce qui clochait ou pas popop ?
Enjoy The lsd |