logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [PHP] chatbox
Username:
Password:
Pages: [1] 2
  Imprimer  
Auteur Fil de discussion: [PHP] chatbox  (Lu 13820 fois)
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« 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
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
kokotchy
Profil challenge

Classement : 1034/54324

Membre Junior
**
Hors ligne Hors ligne
Messages: 56


Voir le profil
« #1 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);
Journalisée
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #2 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 .
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
Folcan

Profil challenge

Classement : 509/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #3 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.
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #4 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

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
J'ai fait un test tou simple ca ne marche pas , pourtant elle n'a pas l'air d'etre interdite :
Code:
chown	chmod	get_current_user
php_uname putenv set_time_limit
getmyuid getmypid dl
ini_alter ini_restore ini_set
exec passthru system
popen pclose leak
mysql_list_dbs listen chgrp
disk_total_space disk_free_space rmdir
realpath tmpfile link
shell_exec proc_open chroot
openlog closelog syslog
flock socket_create_listen socket_accept
socket_listen sleep usleep
umask set_include_path restore_include_path
symlink
A moins que fopen soit pareil que popen .
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
Perfect Slayer

Profil challenge

Classement : 3033/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1974


Voir le profil WWW
« #5 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
Journalisée

Newbie Contest Staff :
(¯`·._.· [ Perfect Slayer ] ·._.·´¯)
Status :
Administrateur / Programmeur PHP / Optimisateur
Citation :
Sécurité, efficacité et rapidité riment avec Perfect(ion)
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #6 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
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #7 le: 10 Septembre 2005 à 11:27:01 »

Code:
$db = Mysql_Connect($serveur,$user,$password)OR Die('Erreur de connexion'.mysql_error());
 Mysql_Select_Db($basename,$db)OR Die('base inexistance ou non joignable'.mysql_error());
$sql="INSERT INTO chatbox VALUES ('','".$login."','".$time."','".$messg."')";
Mysql_Query($sql) OR Die('Erreur SQL !'.$sql.'<br />'.mysql_error());

header ("location:http://zone2test.free.fr/index.php");
J'ai un probleme , peut-etre vient t'il du header  , mais lorsque je veux inserer des données dans la BDD , il n'y a pas d'erreur et pas d'insertion , d'ou cela peut-il venir ?

A moins que le probleme  vient de ce script :
Code:
$db = Mysql_Connect($serveur,$user,$password)OR Die('Connexion impossible'.mysql_error());
Mysql_Select_Db($basename,$db)OR Die('base inexistance ou non joignable'.mysql_error());
$req = Mysql_Query("SELECT login,time,messg FROM chatbox order by id");
$res = mysql_fetch_array ($req);
{
$loginm = $res['login'] ;
$heurem = $res['time'] ;
$msg = $res['messg'] ;
Mais il m'affiche le pseudo , message et heure d'une fois ou j'avais essayé et  que ca avait marché .
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #8 le: 10 Septembre 2005 à 17:24:56 »

C'est résolu mais comment faire afficher plusieurs commentaire et non qu'un seul ?
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
kokotchy
Profil challenge

Classement : 1034/54324

Membre Junior
**
Hors ligne Hors ligne
Messages: 56


Voir le profil
« #9 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,...)
Journalisée
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #10 le: 14 Septembre 2005 à 20:00:43 »

bon merci des indications dès que j'ai un peu de temps je test ca .
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #11 le: 14 Septembre 2005 à 20:53:51 »

C'est bon un chtit :
Code:
for ( $i=0; $i<5; $i++){
$res = mysql_fetch_array ($req);
{
$loginm = $res['login'] ;
$heurem = $res['time'] ;
$msg = $res['messg'] ;}
Et ca marche , je vous fait tous la bise et merci
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
kokotchy
Profil challenge

Classement : 1034/54324

Membre Junior
**
Hors ligne Hors ligne
Messages: 56


Voir le profil
« #12 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 ?
Journalisée
comtezero

Profil challenge

Classement : 2123/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #13 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 .
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
Folcan

Profil challenge

Classement : 509/54324

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #14 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...
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Pages: [1] 2
  Imprimer  
 
Aller à: