• User Attivo

    Come devo fare per inserire l'ora nei messaggi in chat?

    ciao volevo domandare se qualcuno di voi sa darmi una mano nel modificare il codice php di una chat cosicchè questa nei messaggi degli utenti compaia prima del nik l'ora in cui è stato scritto il messaggio, qui sotto posto il codice della pagina messaggi:

    <html>
    <head>
    <title>Messaggi degli utenti</title>
    <?
    include("config.php");
    echo "<meta http-equiv="refresh" content="$time_refresh">";
    ?>
    <script language="javascript">
    function apri(nick_ut)
    {
    window.open("profilo.php?nick=" + nick_ut,nick_ut,"width=500, height=300, left=200");
    }
    </script>

    </head>
    <body>
    <?
    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*);
    $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="javascript:apri('$nick');"><font face="verdana" size="2" color="#000000">$nick</font></a>: </b>"."<font face="verdana" size="2">".$msg."</font><br>";
    }
    }
    else
    {
    for ($i=0;$i<$num_messag;$i++)
    {
    $online_ut*=$rows_file_ord*;
    $dati_utente=explode("|",$rows_file_ord*);
    $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="2"><a href="javascript:apri('$nick');"><font face="verdana" size="2" color="#000000">$nick</font></a>: </b>"."<font face="verdana" size="2">".$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*);
    fclose($ins_msg);
    }
    ?>
    </body>
    </html>

    spero che qualcuno di voi sappia aiutarmi...:x :bho: :ciauz:


  • Super User

    in una chat il punto in cui scrivere la data e l'ora di un messaggio è quando l'utente preme invio.
    la pagina che vedo sembra quella che invece mostra le righe di chat quindi il posto sbagliato per fare quello che chiedi.

    in ogni caso, per inserire l'ora prendi il pezzo di codice che scrive il nuovo messaggio nel file e aggiungi prima della variabile che contiene il messaggio questo codice:
    'ora: '.date('H').':'.date('i').' - ';

    ciauz e facci sapere se è andato tutto a buon fine.


  • User Attivo

    @Tymba said:

    in una chat il punto in cui scrivere la data e l'ora di un messaggio è quando l'utente preme invio.
    la pagina che vedo sembra quella che invece mostra le righe di chat quindi il posto sbagliato per fare quello che chiedi.

    in ogni caso, per inserire l'ora prendi il pezzo di codice che scrive il nuovo messaggio nel file e aggiungi prima della variabile che contiene il messaggio questo codice:
    'ora: '.date('H').':'.date('i').' - ';

    ciauz e facci sapere se è andato tutto a buon fine.

    ciao ti rigrazio per la risposta solo che essendo io ignorante in materia non ho capito dove devo inserire, perciò posto il codice da dove si scrive il messaggio così mi indichi il posto esatto:

    <html>
    <head>
    <title>Happy Chat</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language = "JavaScript">
    function textCounter(field, countfield, maxlimit) {
    if(field.value.length > maxlimit){
    field.value = field.value.substring(0, maxlimit);
    }
    else{
    countfield.value = maxlimit - field.value.length;
    }
    }
    </script>
    <script language="javascript">
    function aggiungi(y)
    {
    espressione=document.form_ins.messaggio.value;
    new_espressione=espressione + y;
    document.form_ins.messaggio.value=new_espressione;
    }
    </script>
    <style>
    .stile {
    background:#FFFFFF;
    font-family:verdana;
    font-size:8pt;
    SCROLLBAR-BASE-COLOR: #0099CC;
    SCROLLBAR-ARROW-COLOR: #FFFFFF;
    }
    </style>
    </head>
    <body bgcolor="#FBBEAA">
    <?
    include("config.php");
    $nick=$_GET['nick'];
    $nick=strtolower($nick);
    $nick=stripslashes($nick);
    $password=$_GET['password'];
    $password=strtolower($password);
    $password_cr=crypt($password,$nick);
    $password_cr=str_replace("|","*",$password_cr);

    if (!(file_exists($file_reg)))
    {fopen($file_reg,"w");}
    $utente=$nick."|".$password;
    $utente_ok=0;
    $ut_regist=file($file_reg);
    $dim_reg=count($ut_regist);
    for ($i=0;$i<$dim_reg;$i++)
    {
    $dati_ut=explode("|",$ut_regist*);
    $nick_ut=$dati_ut[0];
    $pass_ut=$dati_ut[1];
    if (($nick==$nick_ut) & ($password_cr==$pass_ut)) $utente_ok=1;
    }
    if ($utente_ok==1)
    {
    if (!(file_exists($file_online)))
    {fopen($file_online,"w");}
    $dim_file=filesize($file_online);
    $dim_max=14000; // Dimensione in bytes massima per ricreare il file online
    if ($dim_file>$dim_max)
    fopen($file_online,"w");
    $ar_orario=getdate();
    $ora=$ar_orario['hours'];
    $minuti=$ar_orario['minutes'];
    $secondi=$ar_orario['seconds'];
    if (strlen($minuti)==1) $minuti="0".$minuti;
    if (strlen($secondi)==1) $secondi="0".$secondi;
    $data=date("d/m/Y");
    $orario=$ora.":".$minuti.":".$secondi;
    $utente=$nick."|".$data."|".$orario."\n";
    $ins_online=fopen($file_online,"a+");
    fputs($ins_online,$utente);
    fclose($ins_online);
    }
    else
    {
    echo "<center><b>Utente non registrato</b><br><br>";
    echo "<a href="javascript:history.back();">TORNA INDIETRO</a></center>";
    exit;
    }
    ?>
    <table width="180" align="center" bordercolor="#000000" bgcolor="#E7E9FA" style="border:1px solid;">
    <tr>
    <td width="208" height="21" colspan="6" bgcolor="#BBC2F2"><div align="center">
    <div align="center"><iframe src="http://www.globalmeteo.altervista.org/chat/messaggi.php" width="170" height="100" scrolling="yes"></iframe>
    </td></tr></table>

    <div align="center">
    <br><table width="180" align="center" bordercolor="#000000" bgcolor="#E7E9FA" style="border:1px solid;">
    <tr>
    <td width="208" height="21" bgcolor="#BBC2F2"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>PERSONE
    ONLINE </strong></font></div></td>
    </tr>
    <tr>
    <td height="21"><iframe width="170" height="50" src="online.php" scrolling="no"></iframe></td>
    </tr>
    </table>
    <br> <table width="180" align="center" bordercolor="#000000" bgcolor="#E7E9FA" style="border:1px solid;">
    <tr>
    <td width="208" height="21" colspan="6" bgcolor="#BBC2F2"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>SIMBOLI METEO - SMILES</strong></font></div></td>
    </tr>
    <tr>
    <td width="30" height="21"><div align="center"><img src="emoticons/em1.gif" width="19" height="19" onClick="aggiungi(' [em1]')"></div></td>
    <td width="30" height="21"><div align="center"><img src="emoticons/em2.gif" width="19" height="19" onClick="aggiungi(' [em2]')"></div></td>
    <td width="30" height="21"><div align="center"><img src="emoticons/em3.gif" width="19" height="19" onClick="aggiungi(' [em3]')"></div></td>
    <td width="30" height="21"><div align="center"><img src="emoticons/em4.gif" width="19" height="19" onClick="aggiungi(' [em4]')"></div></td>
    <td width="30" height="21"><div align="center"><img src="emoticons/em5.gif" width="19" height="19" onClick="aggiungi(' [em5]')"></div></td>
    <td width="30" height="21"><div align="center"><img src="emoticons/em6.gif" width="19" height="19" onClick="aggiungi(' [em6]')"></div></td>
    </tr>
    <tr>
    <td height="21"><div align="center"><img src="emoticons/em7.gif" width="19" height="19" onClick="aggiungi(' [em7]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em8.gif" width="19" height="19" onClick="aggiungi(' [em8]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em9.gif" width="19" height="19" onClick="aggiungi(' [em9]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em10.gif" width="15" height="15" onClick="aggiungi(' [em10]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em11.gif" width="15" height="15" onClick="aggiungi(' [em11]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em12.gif" width="15" height="15" onClick="aggiungi(' [em12]')"></div></td>
    </tr>
    <tr>
    <td height="21"><div align="center"><img src="emoticons/em13.gif" width="16" height="16" onClick="aggiungi(' [em13]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em14.gif" width="15" height="15" onClick="aggiungi(' [em14]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em15.gif" width="15" height="15" onClick="aggiungi(' [em15]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em16.gif" width="15" height="15" onClick="aggiungi(' [em16]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em17.gif" width="15" height="15" onClick="aggiungi(' [em17]')"></div></td>
    <td height="21"><div align="center"><img src="emoticons/em18.gif" width="16" height="16" onClick="aggiungi(' [em18]')"></div></td>
    </tr>

    </table>
    <br> <table width="180" align="center" bordercolor="#000000" bgcolor="#E7E9FA" style="border:1px solid;">
    <tr>
    <td height="21" bgcolor="#BBC2F2"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>MESSAGGIO</strong></font></div></td>
    </tr>
    <tr>
    <td ><form method="GET" action="insert.php" name="form_ins" >
    <table width="170" border="0" align="center">
    <tr>
    <td colspan="2"><div align="center">
    <textarea class="stile" rows="3" onKeyDown="textCounter(this.form.messaggio,this.form.rem,400);" onKeyUp="textCounter(this.form.cjmsg,this.form.rem,400);" cols="20" type="text" name="messaggio"></textarea>
    </div></td>
    </tr>
    <tr>
    <td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Lettere
    rimaste:</font></div></td>
    <td><div align="center">
    <input readonly class="stile" type=text name=rem size=3 maxlength=3 value="400">
    </div></td>
    </tr>
    <tr>
    <td height="26" colspan="2"> <div align="center">
    <?
    echo "<input type="hidden" name="nick" value="$nick">";
    echo "<input type="hidden" name="password" value="$password">"
    ?>
    <input type="submit" name="Submit" value="Invia">

    </div></td>
    </tr>

    </table>
    </form></td>
    </tr>
    </table>
    </body>
    </html>

    ecco il codice...mi basta sapere dove devo mettere il pezzetino dell'ora, grazie mille in anticipo!!!;) :ciauz:

    a proposito volevo anche sapere come posso fare, dato che ti ho postato il codice del corpo principale delle funzioni come mettere un menù a tendina dove scegliere dei simboli meteo e cliccando su una opzione tra quelle che scendono poi a ogni messaggio mi mette sempre quell'immagine....spero tu abbia una dritta anche per questo...ciao!


  • User Attivo

    nessuno che risponde?....non ci cpisco nulla di php...help


  • Super User

    ciao,
    leggedo il codice sembra già lo faccia ed in particolare il codice è questo:
    $ar_orario=getdate();
    $ora=$ar_orario['hours'];
    $minuti=$ar_orario['minutes'];
    $secondi=$ar_orario['seconds'];
    if (strlen($minuti)==1) $minuti="0".$minuti;
    if (strlen($secondi)==1) $secondi="0".$secondi;
    $data=date("d/m/Y");
    $orario=$ora.":".$minuti.":".$secondi;
    $utente=$nick."|".$data."|".$orario."\n";

    come vedi l'orario è già all'interno del messaggio che viene memorizzato.


  • User Attivo

    @Tymba said:

    ciao,
    leggedo il codice sembra già lo faccia ed in particolare il codice è questo:
    $ar_orario=getdate();
    $ora=$ar_orario['hours'];
    $minuti=$ar_orario['minutes'];
    $secondi=$ar_orario['seconds'];
    if (strlen($minuti)==1) $minuti="0".$minuti;
    if (strlen($secondi)==1) $secondi="0".$secondi;
    $data=date("d/m/Y");
    $orario=$ora.":".$minuti.":".$secondi;
    $utente=$nick."|".$data."|".$orario."\n";

    come vedi l'orario è già all'interno del messaggio che viene memorizzato.

    si lo so ma lo inserisce in un file diverso da quello dei messaggi, se non erro lo inserisce sul file "online.php" e penso che serva per capire i minuti in cui l'utente sta in chat per mettere quindi 1,2,3,e così via utenti in linea ed perciò è una cosa diversa, perciò non so come fare per fare comparire l'ora pure sulla pagina messaggi...
    e poi il pezzetto di codice da te dato lo metto o cos'altro?
    e riguardo la richiesta in cui volevo che dal menu a tendina scelgo il simbolo che poi viene messo automaticamente in ogni messaggio come da me spiegato nel terzultimo mio messaggio?....spero che tu sappia consigliarmi e intanto grazie per l'ultimo messaggio...aspetto la prossima risposta! ciao!:ciauz:

    qui sotto ti metto pure il codice della pagina online così spero tu ne tragga beneficio per darmi qualche dritta:

    <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*);
    $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>


  • Super User

    leggendo il codice sembra che il file che salva i dati sia insert.php. il codice sopra indicato è quello di insert.php?

    per quanto riguarda il menu a tendina puoi usare le sessioni ma per capire come usarle è il caso che dia un'occhiata per lo meno alla guida di php altirmneti sarebbe un bagno di sangue 😄


  • User Attivo

    @Tymba said:

    leggendo il codice sembra che il file che salva i dati sia insert.php. il codice sopra indicato è quello di insert.php?

    per quanto riguarda il menu a tendina puoi usare le sessioni ma per capire come usarle è il caso che dia un'occhiata per lo meno alla guida di php altirmneti sarebbe un bagno di sangue 😄

    guarda io ti posto qui sotto pure insert.php poichè il codice che ti ho postato sopra è quello di online.php, spero che con questo tu riesca a dirmi, come e dove, devo inserire il pezzettino di codice da te datomi, così almeno metto a posto quell'ora e poi mi soffermo sul menù a tendina...

    ecco il codice:
    <html>
    <head>
    <title>Inserimento del messaggio</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <?
    include("config.php");
    $nick=$_GET['nick'];
    $password=$_GET['password'];
    $messaggio=$_GET['messaggio'];
    $messaggio=stripslashes($messaggio);
    $messaggio=str_replace("\n"," ",$messaggio);
    $commento=$nick."|".$messaggio."\n";
    $url="chat.php"."?nick=".$nick."&password=".$password;
    $cercamsg = strstr($messaggio,"<");
    $cercamsg2 = strstr($messaggio,">");
    if (empty($messaggio))
    {
    Header("Location: $url");
    }
    elseif ($cercamsg & $cercamsg2)
    {
    Header("Location: $url");
    }
    else
    {
    $apri_file=fopen($file_mess,"a+");
    fputs($apri_file,$commento);
    fclose($apri_file);
    Header("Location: $url");
    }
    ?>
    </body>
    </html>

    ciao e speriamo bene...:ciauz:


  • User Attivo

    nessuno che risponde?...almeno vorrei riuscire a mettere l'ora...:( :arrabbiato: :bho:


  • Super User

    ciao,
    io ti aiuto volentieri ma perdonami, lo faccio se vedo dall'altra parte un bricciolo di voglia di imparare.

    guardiamo un attimo il codice che hai postato (solo quello che interessa)

    @giulio3x said:

    $messaggio=$_GET['messaggio'];

    recupera il messaggio dalla pagina precedente.

    @giulio3x said:

    $messaggio=stripslashes($messaggio);

    trasforma i caratteri strani in caratteri stampabili. maggiori info su it.php.net
    @giulio3x said:

    $messaggio=str_replace("\n"," ",$messaggio);

    converte in uno spazio bianco tutti i caratteri di a capo (che non sono <br>)
    maggiori info su str_replace su it.php.net
    @giulio3x said:

    $commento=$nick."|".$messaggio."\n";

    concatena le stringhe -> qui, prima del nick inserisci il codice per stampare l'ora.
    maggiori info sulla funzione date su it.php.net
    @giulio3x said:

    $apri_file=fopen($file_mess,"a+");

    apre il file di testo in modalità che consente di scriverci dentro (mi pare sovrascrittura. maggiori info su fopen su it.php.net
    @giulio3x said:

    fputs($apri_file,$commento);

    scrive nel file il contenuto della variabile $commento.
    @giulio3x said:

    fclose($apri_file);

    chiude e quindi salva il file
    @giulio3x said:

    Header("Location: $url");

    ti redirige alla pagina contenuta nella variabile $url.

    spero tu sia riuscito a comprendere i commenti e soprattutto il senso del mio messaggio 🙂

    :ciauz:


  • User Attivo

    guarda perdonami ma è arabo per me, forse no guarda se mi dici cosa devo fare è meglio perchè è buio totale....che tristezza...


  • User Attivo

    ciao tymba guarda le ho provate tutte eliminando punti e virgola e mettendo simboli del dollaro ma non funzionava...e per questo sono disperato perchè ormai vorrei farcela anche con i tuoi sugg. ma nulla da fare php è abbastanza difficile sopratutto con chi non lo sa:bho: , spero che tu mi aiuti dandomi il giusto codice perchè prorpio non lo so fare...ciao😢 .


  • User Attivo

    tymba ho fatto altre prove ma nulla...cosa devo fare?....


  • User Attivo

    bho mi sa che...nessuno risponde è un grattacapo...:x


  • User Attivo

    @giulio3x said:

    bho mi sa che...nessuno risponde è un grattacapo...:x

    tymba rispondi...:bho: