Chat in PHP!!

  • Creatore Discussione Creatore Discussione sbobby
  • Data di inizio Data di inizio

sbobby

Utente Attivo
26 Gen 2006
791
0
0
Roma
Ragazzi ho bisogno di un vostro piccolo ma fondamentale aiuto!!!
Ho inserito una chat php senza database nel mio sito a questo indirizzo www.cflgroup2001.it/Chat.htm (sta dentro un iframe, la pagina del login è www.cflgroup2001.it/chat/login.php) ma vorrei sapere come faccio a fare queste cose e se è possibile farle:

-vorrei che nella pagina principale della Chat non mi venisse visualizzato solo in numero di utenti on-line ma anche il loro nome;

-vorrei che i messaggi che vengono immessi si cancellassero dopo un certo periodo di tempo e non rimanessero per sempre (o comunque finchè non viene raggiunto il limite impostato di 20 messaggi)!!!

Per accedere alla chat usate come nickname e password "SBOBBY" !!

Spero possiate e vogliate aiutarmi...Grazie!!:p
 
E' difficile postare tutto il codice qui anche perchè sono più pagine...Vi avevo dato l'indirizzo proprio per farvelo vedere...Comunque:

<html>
<head>
<title>Persone online</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
function apri(nick_ut)
{
window.open("profilo.php?nick=" + nick_ut,nick_ut,"width=500, height=280, left=200");
}
</script>
</head>

<body bgcolor="#E7E9FA">
<?
include("config.php");

$ar_online=file($file_online);
$dim=count($ar_online);

for ($i=0;$i<$dim;$i++)
{
$ut_online=chop($ar_online[$i]);
$utente=explode("|",$ut_online);
$nick_ut=$utente[0];
$data=$utente[1];
$orario=$utente[2];

$parti_data=explode("/",$data);
$giorno=$parti_data[0];
$mese=$parti_data[1];
$anno=$parti_data[2];

$parti_orario=explode(":",$orario);
$ora=$parti_orario[0];
$minuti=$parti_orario[1];
$secondi=$parti_orario[2];

$ts=mktime($ora,$minuti,$secondi,$mese,$giorno,$anno);
$diff=time()-$ts;
$min_trascorsi=$diff/60;

if ($min_trascorsi<$min_online)
{
$array_on[]=$nick_ut;
}
}
$ar_unico=array_unique($array_on);
$dim_unico=count($ar_unico);
echo "<font face=\"Verdana\" size=\"1\">$dim_unico persone online</font>";
?>

</body>
</html>

Questo è il codice della pagina online.php che credo serva a vedere gli utenti online...Anche se nella chat viene visualizzato solo il numero di essi e non il loro nome!!! Come posso fare in modo che venga visualizzato il nome??!!

Direi che per ora va bene solo questo problema, quello di cancellare i messaggi lo affronteremo dopo...Una cosa alla volta!!! Grazie...
 
Suppongo che $nick_ut sia la variabile che si porta dietro i nomi degli utenti, ma non posso esserne sicuro senza riferimenti, prova a stamparne le chiavi dentro il ciclo e vedi cosa ti visualizza.:byebye:
 
What's??!!
Non ho capito molto bene cosa dovrei fare...
Credo che la prima parte del codice sia per capire se un utente è ancora on-line oppure no, la secondo per riportare il numero di utenti on-line...ma io vorrei visualizzasse il nome di essi...Purtroppo non sono molto esperto di PHP...spero possiate aiutarmi!!!
 
Visto che l'altro mio problema sembra molto complicato, ve ne espongo un altro...

<?
if (!(file_exists($file_mess)))
{fopen($file_mess,"w");}

$rows_file=file($file_mess);
$rows_file_ord=array_reverse($rows_file);
$count=count($rows_file_ord);

if ($count<$num_messag)
{
for ($i=0;$i<$count;$i++)
{
$dati_utente=explode("|",$rows_file_ord[$i]);
$nick=$dati_utente[0];
$msg=$dati_utente[1];

$nick=stripslashes($nick);
$msg=stripslashes($msg);

$msg = str_replace('[em1]','<img src="emoticons/em1.gif">',$msg);

for ($x=1;$x<19;$x++)
{
$img="em".$x;
$img2="[".$img."]";
$path="<img src=\"emoticons/$img.gif\">";
$msg = str_replace("$img2","$path",$msg);
}
echo "<b><a href=\"java-script:apri('$nick');\"><font face=\"verdana\" size=\"1\" color=\"#000000\">$nick</font></a>: </b>"."<font face=\"verdana\" size=\"1\">".$msg."</font><br>";
}
}
else
{

for ($i=0;$i<$num_messag;$i++)
{
$online_ut[$i]=$rows_file_ord[$i];
$dati_utente=explode("|",$rows_file_ord[$i]);
$nick=$dati_utente[0];
$msg=$dati_utente[1];

$nick=stripslashes($nick);
$msg=stripslashes($msg);

for ($x=1;$x<19;$x++)
{
$img="em".$x;
$img2="[".$img."]";
$path="<img src=\"emoticons/$img.gif\">";
$msg = str_replace("$img2","$path",$msg);
}

echo "<b><font face=\"verdana\" size=\"1\"><a href=\"java-script:apri('$nick');\"><font face=\"verdana\" size=\"1\" color=\"#000000\">$nick</font></a>: </b>"."<font face=\"verdana\" size=\"1\">".$msg."</font><br>";
}
$online_ut=array_reverse($online_ut);
fopen($file_mess,"w");
$ins_msg=fopen($file_mess,"a+");
for ($i=0;$i<$num_messag;$i++) fwrite($ins_msg,$online_ut[$i]);
fclose($ins_msg);
}
?>

Ragazzi questo è il codice della pagina della chat che raccoglie e visualizza i messaggi salvati su un file di testo...E' possibile fare in modo che questi messaggi vengano cancellati dopo un certo periodo di tempo e non rimangano salvati nella chat per sempre??!!
Restano salvati solo gli utlimi messaggi inseriti (grazie al pannello di configurazione che è questo:
codice PHP:

<?
$homepage="http://www.cflgroup2001.it"; // L'indirizzo dell'homepage del tuo sito

$file_online="online.txt"; // File contenente gli utenti online

$file_reg="registro.txt"; // File degli utenti registrati alla chat

$file_mess="messaggi.txt"; // File dei messaggi inviati agli autenti

$min_online="5"; // Minuti entro il quale si considera online un utente

$time_refresh="5"; // Time di refresh dei messaggi (secondi)

$num_messag="20"; // Numero di messaggi più recenti che vuoi visualizzare

?>

) ma vorrei che dopo un po' si cancellassero tutti...si può fare?? Mi date una mano??!!

Grazie...:cool:
 
Scusa ma, $num_messag="20"; indica la memorizzazione degli ultimi 20 messaggi...

quindi visualizzi solo quelli...
 
Si visualizzo solo quelli...ma volevo un modo per farli cancellare tipo dopo 24 ore, quando ormai sono inutili insomma!!!

Comunque per me è più importante risolvere il primo problema...
 
Ragazzi del problema dei messaggi non mi importa nulle...in fondo non ci sono troppi problemi se restano salvati per sempre: in ogni caso mi basta cancellare il file di testo dove sono salvati!!!

Mi interessa davvero risolvere l'altro problema, quello relativo agli utenti connessi...Ora riesco solo a vedere quanti sono connessi, ma vorrei mi venisse visualizzato il loro nick!! Io ho messo un po' le mani al codice e ora mi visualizza solo il tuo nick, ma non quello degli altri utenti eventualmente connessi...Il codice è questo:

<?
include("config.php");

$ar_online=file($file_online);
$dim=count($ar_online);

for ($i=0;$i<$dim;$i++)
{
$ut_online=chop($ar_online[$i]);
$utente=explode("|",$ut_online);
$nick_ut=$utente[0];
$data=$utente[1];
$orario=$utente[2];

$parti_data=explode("/",$data);
$giorno=$parti_data[0];
$mese=$parti_data[1];
$anno=$parti_data[2];

$parti_orario=explode(":",$orario);
$ora=$parti_orario[0];
$minuti=$parti_orario[1];
$secondi=$parti_orario[2];

$ts=mktime($ora,$minuti,$secondi,$mese,$giorno,$anno);
$diff=time()-$ts;
$min_trascorsi=$diff/60;

if ($min_trascorsi<$min_online)
{
$array_on[]=$nick_ut;
}
}
$ar_unico=array_unique($array_on);
$dim_unico=count($ar_unico);
echo "<font face=\"Verdana\" size=\"1\">$dim_unico utenti: <br /> $nick_ut</font>";
?>

Credo sia assolutamente possibile riuscire ad ottenere questa cosa, ma io non è che sono molto esperto...Spero voi possiate aiutarmi!!!:)

PS: la chat è sempre all'indirizzo www.cflgroup2001.it/chat/login.php con nick e password SBOBBY !!!
 
Ragazzi, nessuno sa darmiuna mano???
Non credo sia un problema impossibile o troppo difficile...si tratta solo di scrivere poche righe di codice per visualizzare i nick degli utenti online...Io perchè ci capisco poco e niente, sennò non vi starei a rompere!! Ve ne sarò riconoscente...
 
Io ne ho fatta una in ASP e mi apoggio alle Application. Dentro ci butto tutto diviso da |, quindi per i mex:

data|utente|stanza|messaggio|ecc ecc

per gli utenti

stanza|data|utente

data la modifico ogni volta che invia un messaggio. C'è un controllo, che se la data (Now()) supera di 5 min la data dell'ultimo messaggio inviato, chiude la sessione e butta fuori.

Puoi scaricare la chat dal mio sito e dare una guardata all'algoritmo, qualche parte è pure commentata.

Ciao. :byebye:
 
geko chat

Ciao volevo proporti uno SCRIPT PHP, si tratta di una CHAT OPENSOURCE veramente completa, sicura ed accessibile anche da un semplice cellulare !!!

Lo script lo trovate qui http://www.4shared.com/file/12013032.../gekochat.html

Consultate il file LEGGIMI.TXT al suo interno per l installazione sul vostro server !!!

La chat comprende:

- MODULO DI REGISTRAZIONE/VALIDAZIONE DEI NICK DI REGISTRAZIONE DA PARTE DELLO STAFF
- DUE STANZE PUBBLICHE
- AGGIUNTA/RIMOZIONE MEMBRI STAFF (MODERATORI E AMMINISTRATORI)
- GALLERY UTENTE, in cui e' possibile commentare/votare tutte le foto presenti ed aggiungere una didascalia a ciascuna di essa
- BLOG PERSONALE componente ATTIVABILE/DISATTIVABILE dal WEBMASTER, una sorta di diario in cui gli utenti possono creare categorie, inserire POST, commentarli, video youtube ecc...
- SONDAGGI componente ATTIVABILE/DISATTIVABILE dal WEBMASTER
- AVVISI CHAT
- LISTA SMILE
- AUTOLOGIN
- RICERCA AVANZATA UTENTI (NICK/SESSO/ETA/REGIONE/FOTO)
- MODULO CAMBIO PASSWORD
- COLORE TESTO MODIFICABILE
- REFRESH AUTOMATICO PAGINE CHAT (SOLO PER PC)
- PROFILO PERSONALE
- POSSIBILITA' DI SELEZIONARE UN AVATAR TRA I TANTI DISPONIBILI
- STANZE PRIVATE, e' possibile aprire una discussione privata con uno o piu' utenti
- MESSAGGISTICA PRIVATA (MP)
- MSG PRIVATI FLASH (visibili direttamente in chat dal solo MITT/DEST)
- GESTIONE DI SMILE da parte di MOD/ADMIN/WEBMASTER a scelta
- BANN NICK
- BANN IP/PROXY
- BANN ISP
- BANN BROWSER
- CONTROLLO INGRESSI UTENTI (SIA DA FORM LOGIN CHE DA AUTOLOGIN)
- STATISCHE GIORNALIERE
- RICONOSCIMENTO DEGLI UTENTI CHE CHATTANO DA DISPOSITIVI MOBILI (CELLULARE)
- FILTRO ANTISPAM COMPLETAMENTE PERSONALIZZABILE
- STANZA PRIVATA ACCESSIBILE SOLO DAI MEMBRI DELLO STAFF

E TANTO ALTRO.....
 

Discussioni simili