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