Salve a tutti , dunque ho un problema , ho creato un sito con registrazione e login , l'utente una volta loggato entra in una parte privata attraverso il salvataggio dei dati in una sessione.
quando finisce di fare quello che deve basta che clicca su esci e tutto va a meraviglia.
Successivamente ho pensato che siccome volevo tenere traccia e stampare gli utenti online , ho creato una tabella dinamica in phpmyadmin dove vengono salvati momentaneamente gli utenti online e al logout cancellati.
quindi la tabella risulta vuota quando si escce e con n elementi a seconda di chi si logga.
il mio problema rimane quando invece di fare il logout tramite pulsante chiudo la pagina.
se vado a ricaricare mi ritorna nella pagina privata e non distrugge la sessione, vi posto il codice di modo che potete dare un'occhiata:
Codice PHP:
<?php
include 'header.php';
?>
<div id="wrapper">
<?php
$p = $_GET['azione'];
// login.php?azione=login
if($p == "login"){
if(!isset($_POST['invia'])){ ?>
<form method="post" action="#" id="formlogin">
<h2 align="left">Login</h2>
<hr noshade></hr>
<label for="username"align="left">Username</label>
<input type="text" name="username" id="username" />
<label for="password" align="left">Password</label>
<input type="password" name="password" id="password" />
<input type="submit" align="left" name="invia" id="login" value="Accedi" />
<hr noshade></hr>
</form>
<?php } else {
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
if($username == "" || $password == ""){
echo "Attenzione, devi compilare tutti i campi";
} else {
$password_cript = md5($password);
$recuperadati = mysql_query("SELECT * FROM utente WHERE username = '$username' AND password = '$password_cript'");
$verificadati = mysql_num_rows($recuperadati);
if($verificadati == 1){
$sessione = mysql_fetch_array($recuperadati);
$_SESSION['utente'] = $sessione['username'];
echo "<label>Login effettuato con successo!</label>";
header("Refresh: 2; URL= index.php");
} else {
echo "Dati non presenti nel database!";
}
$ut=$_SESSION['utente'];
$prendionline=mysql_query("SELECT username FROM utente WHERE username='$ut'");
$rows = mysql_fetch_array($prendionline);
$username = $rows['username'];
$immettionline=mysql_query("INSERT INTO utente_online (username) VALUES ('$username')");
$stampautenteonline=mysql_query("SELECT * FROM utente_online");
$conta=mysql_num_rows($stampautenteonline);
$i=0;
while ($i < $conta)
{
$username=mysql_result($stampautenteonline,$i,"username");
$i++;
}
}
}
// login.php?azione=logout
} elseif ($p == "logout"){
session_destroy();
$ut=$_SESSION['utente'];
$eliminautentionline = mysql_query("DELETE FROM utente_online WHERE username='$ut'");
echo "
<h3><center>Ciao ciao ".$ut." torna presto,ti aspettiamo</center></h3>";
header("Refresh: 2; URL= index.php");
}
?>
</div>
</body>
</html>