Visualizzazione risultati 1 fino 7 di 7

Discussione: [php] Problema sessione e Log utenti

  1. #1
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito [php] Problema sessione e Log utenti

    Ciao, sto facendo un sito, ed ho un problema con la sessione degli utenti collegati,
    il problema deriva dalla lista utenti. in pratica, di tanto in tanto gli utenti vengono
    tutti esclusi dalla lista presenti ... se avessi le APPLICATION VARIABLE dell'ASP potrei
    gestire delle variabili sessione globali coinvolgenti tutti gli utenti, ma il db è l'unica
    soluzione attualmente possibile.

    Codice PHP:
    // INCLUDE ALL'INTERNO DEL SITO
    // CONTROLLO UTENTI COLLEGATI
    $timecontroll=date('i');
    $row=mysql_query("SELECT * FROM t_utenti WHERE log<>'' ");
    while(
    $logutenti=mysql_fetch_array($row)) {
    $timemax=$logutenti[log]+10;
    $timemin=$logutenti[log]-10;
    if(
    $timecontroll>"$timemax" || $timecontroll<"$timemin") {

    $raw="UPDATE t_utenti SET log='' WHERE username='$logutenti[username]'";
    $logout=mysql_query($raw); } }



    // questo script ricarica ogni 5 minuti la pagina, richiamando anche la INCLUDE di cui sopra
    // SCRIPT CHE AGGIORNA IL LOG
    $minuti=date('i');
    $row="UPDATE t_utenti SET log='$minuti', data='$data', ip='$user_ip' WHERE username='$userconnect' ";
    $session=mysql_query($row);
    uhm da cosa può dipendere tutto ciò? Mi consigliate un metodo alternativo per la
    gestione della lista presenti?
    Ultima modifica di araim : 18-03-2009 alle ore 17.13.38

  2. #2
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Sta roba non può funzionare.

    Ovviamente il problema è nel controllo.
    date('i') dovrebbe restituire valori tra 0 e 59

    Se sono le 01 e l'utente si è collegato 2 minuti (59) prima
    $timemax diventa 69
    $timemin diventa 49
    e il cotnrollo fallisce.

    Cerca in rete ci sono molti tutorial su come gestire gli utenti.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  3. #3
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito

    Cerco un po in giro, vedo se riesco a trovare soluzioni alternative,
    anche se mi piacerebbe studiare da me una possibile soluzione...

    ADD:
    una soluzione però potrebbe essere quella di togliere il time max,
    lasciando soltanto il timemin... mh...
    -----------------------------------------------------
    me so sbajato a fa un aggiornamento sulla pagina, ed ha creato un doppio topic XD argh
    Ultima modifica di araim : 18-03-2009 alle ore 18.19.37

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    No, il problema è che utilizzi una data come se fosse un intero
    59 minuti + 10 non fa 09 ma 69.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  5. #5
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito

    sisi, so che è una data, ma io tengo in memoria un "numero" perché a me
    interessa trattare con il numero. Ciò che dici è giusto, non lo discuto.

    Però devo pur trovare una soluzione "semplice" ed ottimale per le necessità
    che ho nel sito :P

  6. #6
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    usa la unixepoch
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  7. #7
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito

    Codice PHP:

    $minuti
    ='120';

    list(
    $g, $m, $a, $o, $mi )=explode('-',date( "d-m-Y-H-i",mktime( date("H"),date("i")+"$minuti",date("s"),date("m"),date("d"),date("Y") ) ) );
    trovata su un sito internet ed usata per gestire i BANN degli utenti, ora però
    questo script non funziona più, come mai?? cosa sbaglio?


    Questo sotto è il mio script di controllo degli utenti connessi, cos'ha che non va?
    Codice PHP:
    // CONTROLLO UTENTI COLLEGATI
    $row=mysql_query("SELECT * FROM t_utenti WHERE log<>'' ");
    while(
    $logutenti=mysql_fetch_array($row)) {

    list(
    $ora, $min)=explode(':',"$logutenti[log]");

    list(
    $omn, $mimn)=explode(':', date( "H:i", mktime( date("H"),date("i")-10) ) );
    list(
    $omx, $mimx)=explode(':', date( "H:i", mktime( date("H"),date("i")+10) ) );

    // SE L'UTENTE E' COLLEGATO CONTROLLO CHE IL SUO LOG SIA COMPRESO IN UN RANGE DI 20 MINUTI DALL'ORA ATTUALE
    if( ($ora>$omn && $min>$mimn) && ($ora<$omx && $min<$mimx) ) { /* LOG */ }
    else {
    /* NO-LOG */ $raw="UPDATE t_utenti SET log='' WHERE username='$logutenti[username]'"; $logout=mysql_query($raw); }

    }
    Naturalmente la pagina che include questo script ha un altro script che tiene in aggiornamento il campo di LOG

    ADD: manca l'uguale nella IF ... ora funziona, altrimenti quel controllo non è mai "vero"

    U_U' non funziona...


    Ho fatto una correzione, ora pare funzionare, secondo voi è corretto così??

    Codice PHP:

    <?php

    include('./connect.php');

    // CONTROLLO UTENTI COLLEGATI
    $row=mysql_query("SELECT * FROM t_utenti WHERE log<>'' ");
    while(
    $logutenti=mysql_fetch_array($row)) {

    list(
    $ora, $min)=explode(':',"$logutenti[log]");

    list(
    $omn, $mimn)=explode(':', date( "H:i", mktime( date("H"),date("i")-10) ) );
    list(
    $omx, $mimx)=explode(':', date( "H:i", mktime( date("H"),date("i")+10) ) );

    /*echo " <script language=\"Javascript\">";
    echo " onload: window.alert('$logutenti[username]: ($ora>=$omn && $ora<=$omx) && ($min>=$mimn || $min<=$mimx)'); ";
    echo " </script> ";*/

    if( ($ora>=$omn && $ora<=$omx) && ($min>=$mimn || $min<=$mimx) ) { /* LOG */ }
    else {
    /* NO-LOG */ $raw="UPDATE t_utenti SET log='' WHERE username='$logutenti[username]'"; $logout=mysql_query($raw); }

    }

    ?>
    Ultima modifica di araim : 19-03-2009 alle ore 19.51.58

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •