Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Refresh

  1. #1

    Refresh

    Salve sono un neofita di php....mi serviva un aiuto...ho una pagina che da questo codice

    ----------------------------------------------------
    <?PHP
    include "config.inc.php";

    $USERNAME=$_POST['USERNAME'];
    $PASS=$_POST['PASS'];
    $TIMESTAMP=time(); //questo va qui altrimenti sotto non lo riconosco!

    $sqlonline = "SELECT USER_ONLINE,VER_ONLINE FROM ONLINE WHERE USER_ONLINE = '$USERNAME'";
    $contonline = mysql_query($sqlonline) or die(mysql_error());
    $numonline = mysql_num_rows($contonline);

    // Utente non online
    if ($numonline == 0)
    {
    /*GESTIONE DATA DI INGRESSO*/
    // setto data e ora in base alla linga locale
    setlocale (LC_TIME,"it_IT");
    // metto data e ora in un array
    $DATA1 = time();

    $date_time_array = getdate($DATA1);

    $hours = $date_time_array['hours'];
    $minutes = $date_time_array['minutes'];
    $seconds = $date_time_array['seconds'];
    $month = $date_time_array['mon'];
    $day = $date_time_array['mday'];
    $year = $date_time_array['year'];

    $DATA1 = mktime($hours,$minutes,$seconds,$month,$day,$year) ;
    //echo strftime('%H : %M - %A %d %B %Y',$DATA_PROBLEMA);
    //fine formattazione data
    $DATAINGWAR = strftime('%H : %M - %d/%m/%y',$DATA1);

    $sql = "SELECT USERS.ID_USER,USERS.USERNAME,USERS.PASS,USERS.CORP ORAZIONE_TIPO,USERS.STATO_TIPO,USERS.FUNZIONE_TIPO ,USERS.URLAVATAR,USERS.SESSO,USERS.URLSESSO,USERS. RAZZA,USERS.URLRAZZA,USERS.FORZA,USERS.INTELLIGENZ A,CORPORAZIONI.CORPORAZIONE,CORPORAZIONI.CARICA,CO RPORAZIONI.SIMBOLO,FUNZIONI.FUNZIONE,STATO.STATO FROM USERS
    INNER JOIN CORPORAZIONI
    ON USERS.CORPORAZIONE_TIPO = CORPORAZIONI.ID_CORPORAZIONE
    INNER JOIN FUNZIONI
    ON USERS.FUNZIONE_TIPO = FUNZIONI.ID_FUNZIONE
    INNER JOIN STATO
    ON USERS.STATO_TIPO = ID_STATO
    WHERE USERNAME = '$USERNAME' AND PASS = '$PASS'";
    $conteggio = mysql_query($sql,$connessione)or die(mysql_error());
    $num = mysql_num_rows($conteggio);

    //Dati di login corretti
    if ($num == 1)
    while($ROW = mysql_fetch_array($conteggio))
    {
    //DATI GENERALI DEL PG
    $ID_USER=$ROW["ID_USER"];
    $USERNAME=$ROW["USERNAME"];
    $PASS=$ROW["PASS"];
    $URLAVATAR=$ROW["URLAVATAR"];
    $SESSO=$ROW["SESSO"];
    $URLSESSO=$ROW["URLSESSO"];
    //DATI SULLA CORPORAZIONE
    $CORPORAZIONE_TIPO=$ROW["CORPORAZIONE_TIPO"];
    $CORPORAZIONE=$ROW["CORPORAZIONE"];
    $CARICA=$ROW["CARICA"];
    $SIMBOLO=$ROW["SIMBOLO"];
    //DATI SULLO STATO
    $STATO_TIPO=$ROW["STATO_TIPO"];
    $STATO=$ROW["STATO"];
    //DATI SULLA FUNZIONE
    $FUNZIONE_TIPO=$ROW["FUNZIONE_TIPO"];
    $FUNZIONE=$ROW["FUNZIONE"];
    //STATISTICHE DEL PG
    $FORZA=$ROW["FORZA"];
    $INTELLIGENZA=$ROW["INTELLIGENZA"];
    $URLRAZZA=$ROW["URLRAZZA"];

    //*************sessione*****************
    session_start();
    session_unset();
    session_destroy();
    session_start();
    $_SESSION['ID_USER']=$ID_USER;
    $_SESSION['USERNAME']=$USERNAME;
    $_SESSION['PASS']=$PASS;
    $_SESSION['URLAVATAR']=$URLAVATAR;
    $_SESSION['SESSO']=$SESSO;
    $_SESSION['URLSESSO']=$URLSESSO;
    $_SESSION['CORPORAZIONE_TIPO']=$CORPORAZIONE_TIPO;
    $_SESSION['CORPORAZIONE']=$CORPORAZIONE;
    $_SESSION['CARICA']=$CARICA;
    $_SESSION['SIMBOLO']=$SIMBOLO;
    $_SESSION['STATO_TIPO']=$STATO_TIPO;
    $_SESSION['STATO']=$STATO;
    $_SESSION['FUNZIONE_TIPO']=$FUNZIONE_TIPO;
    $_SESSION['FUNZIONE']=$FUNZIONE;
    $_SESSION['FORZA']=$FORZA;
    $_SESSION['INTELLIGENZA']=$INTELLIGENZA;
    //DATI SUGLI ONLINE
    $_SESSION['LOCAZIONE']='Mappa';
    $_SESSION['LAST']='login.php';
    //*************sessione*****************

    // Stato = Libero o Arrestato
    if ($STATO_TIPO == '1' OR $STATO_TIPO == '2')
    {
    //AGGIORNAMENTO TABELLA USERS
    $sql = "UPDATE USERS SET DATAINGRESSO='$DATAINGWAR',INGRESSOIP='$_SERVER[REMOTE_ADDR]' WHERE USERNAME='$USERNAME'";
    $query = @mysql_query ($sql, $connessione)or die(mysql_error());
    //FINE AGGIORNAMENTO TABELLA USERS

    //INSERIMENTO NEGLI ONLINE


    $sqlupd = "INSERT INTO ONLINE (USER_ONLINE,SESSO_ONLINE,RAZZA_ONLINE,SIMB_ONLINE ,LUOGO_ONLINE,STATO_ONLINE,LAST_ONLINE,VER_ONLINE) VALUES ('$_SESSION[USERNAME]','$_SESSION[URLSESSO]','$URLRAZZA','$_SESSION[SIMBOLO]','$_SESSION[LOCAZIONE]','$_SESSION[STATO]','$_SESSION[LAST]','$TIMESTAMP')";
    $queryupd = @mysql_query ($sqlupd, $connessione)or die(mysql_error());

    if ($STATO_TIPO == '1')
    {
    header("Location: main.php");
    }
    else if ($STATO_TIPO == '2')
    {
    $_SESSION['LOCAZIONE']='Prigione';
    $_SESSION['LAST']='ChatFrameSet.php?LOCAZIONE=Prigione';
    header("Location: main2.php");
    }
    }
    // Stato = Esiliato
    else if ($STATO_TIPO == '3')
    {
    session_start();
    session_unset();
    session_destroy();
    echo "<link rel='stylesheet' href='stile.css' type='text/css'>";
    echo "<div align=center class=RedTit>Sei stato esiliato.</div>";
    echo "
    ";
    echo "
    ";
    echo "<div align=center>Torna alla pagina di login</div>";
    }
    // Stato = Manutenzione
    else if ($STATO_TIPO == '4')
    {
    session_start();
    session_unset();
    session_destroy();
    echo "<link rel='stylesheet' href='stile.css' type='text/css'>";
    echo "<div align=center class=RedTit>Spiacente, ma l'accesso è consentito solo allo staff.
    Tutti gli utenti verranno avvisati della riapertura tramite una newsletter.
    Torna presto a trovarci ^___*</div>";
    echo "
    ";
    echo "
    ";
    echo "<div align=center>Torna alla pagina di login</div>";
    }
    }

    //Dati di login sbagliati
    else if ($num == 0)
    {
    echo "<link rel='stylesheet' href='stile.css' type='text/css'>";
    echo "<div align=center class=RedTit>Accesso non consentito.
    I dati inseriti non sono corretti.</div>";
    echo "
    ";
    echo "
    ";
    echo "<div align=center>Torna alla pagina di login</div>";
    }
    }

    // Utente online o sessione non scaduta
    else if ($numonline == 1)
    while($ROW2 = mysql_fetch_array($contonline))
    {
    $USER_ONLINE=$ROW2["USER_ONLINE"];
    $VER_ONLINE=$ROW2["VER_ONLINE"];

    $DIFFERENZA=($TIMESTAMP-$VER_ONLINE);

    // La sessione è scaduta, l'utente non è collegato ed occorre aggiornare le variabili locali e di server
    if ($DIFFERENZA > 70)
    {
    session_start();
    session_unset();
    session_destroy();

    $sql = "DELETE FROM ONLINE WHERE USER_ONLINE='$USERNAME'";
    $query = mysql_query ($sql, $connessione)or die(mysql_error());
    echo "<link rel='stylesheet' href='stile.css' type='text/css'>";
    echo "<div align=center class=RedTit>Per ragioni di sicurezza sei pregato di reinserire i tuoi dati.</div>";
    echo "
    ";
    echo "
    ";
    echo "<div align=center>Torna alla pagina di login</div>";
    }
    // La sessione è attiva, l'utente è collegato
    else if ($DIFFERENZA < 70)
    {
    echo "<link rel='stylesheet' href='stile.css' type='text/css'>";
    echo "<div align=center class=RedTit>Attenzione: l'utente risulta online.
    Riprova ad accedere fra 60 secondi.</div>";
    echo "
    ";
    echo "
    ";
    echo "<div align=center>Torna alla pagina di login -</div>";
    }
    }
    @mysql_close ($connessione);
    ?>
    --------------------------------------------------------------------

    il codice dovrebbe far si che l'utente connesso quando preme la x per chiudere il browser dopo qualche istante si scolleghi dal gioco...
    il fatto è che quando l'utente esce premendo il tasto che porta a logout.php va tutto bene mentre se esce chiudendo il browser rimane sempre online....che soluzione potrei trovare???



    grazie mille

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.