Ciao a tutti,
sto creando un area riservata per il momento é in fase di costruzione e di test.
Ho un porblema che non riesco a risolvere, praticamente mi loggo come Admin e qui tutto bene poi sul secondo pc che ho mi loggo come michel e fin qui anche tutto bene, ora al momento del logout dell'utente admin, mi va a impostare la sessione a 0 cioé non loggato, pero mi sono accorto che se l'utente michel effettua anche lui il logout non funziona correttamente perche al logout di admin mi ha messo la sessione a 0 (non loggato).
Spero di essermi spiegato se no ci riprovo.
Il mio codice é questo:
Codice PHP:
// Avvio la sessione
session_start();
// Funzione controlla username and password
function checkLogin($user, $pass) {
$sid = session_id();
$_SESSION['auth'] = 0;
include"config.inc.php";
mysql_select_db($database_name, $conn) or die ("Errore nel selezionare il database: " . mysql_error());
$sql = "SELECT * FROM tb_login WHERE lg_usr = '$user' AND lg_pwd = '$pass'" ;
$query = mysql_query($sql) or die ("Errore nella query" . mysql_error());
$result = mysql_fetch_assoc($query);
$usr = $result['lg_id'];
$uname = $result['lg_usr'];
if(mysql_num_rows($query) > 0 )
{
header("Location: admin.php?action=LoginOk" . "&usr=" . $usr . "&sid=" . $sid );
mysql_select_db($database_name, $conn) or die ("Errore nel selezionare il database: " . mysql_error());
$sql = "UPDATE tb_login SET lg_session = '$sid', lg_useronline = '1', lg_first = NOW() WHERE tb_login.lg_id = '$usr'";
$query = mysql_query($sql);
$_SESSION['username'] = $uname;
$_SESSION['auth'] = 1;
exit();
} else {
header("Location: login.php?action=LoginFail");
exit();
}
}
// Funzione verivica se si é loggati
function verifyAuth() {
if(isset($_SESSION['auth']) && $_SESSION['auth'] == 1){
} else {
header("Location: login.php?action=LoginFail");
exit();
}
}
// Funzione per il logout
function logOut() {
header("Refresh:15; URL=login.php?action=LogOut");
include"config.inc.php";
$usrid = $_GET['usr'];
mysql_select_db($database_name, $conn) or die ("Errore nel selezionare il database: " . mysql_error());
$sql = "UPDATE tb_login SET lg_session = '', lg_useronline = '0', lg_last = NOW() WHERE tb_login.lg_id = '$usrid'";
$query = mysql_query($sql);
session_unset();
session_destroy();
echo "<html>";
echo "<head>";
echo "<link href='stylecss.css' rel='stylesheet' type='text/css'>";
echo "<body>";
echo "
";
echo "<table width='600' align='center' border='1' cellpadding='0' cellspacing='0' >";
echo "<tr>";
echo "<td bgcolor='#CCCCCC'>";
echo "
";
echo "<div align='center' class='TestoLogOut'>";
echo "Logout in corso, tra qualche secondo sarai reindirizzato alla pagina di login.</br>";
echo "Se il tuo browser non supporta il reindirizzamento automatico clicca ";
echo "[url='login.php?action=LogOut']qui[/url]";
echo "</div>";
echo "
";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</body>";
echo "</head>";
echo "</html>";
exit();
}
Il problema credo che sia nella funzione di logout quando eseguo il session_unset e session_destroy, come posso risolvere?
EDIT:
se volete vedere ho messo online il tutto qui , provate ad entrare con tutti e due gli utenti e poi a fare un login di uno e nellatra pagina fate un rafresh, sparira la sessione impostata a 1, giusto per farvi vedere cosa intendo.
1 utente
Username : test
password : test
2 utente
username : mich
password : mich70
Grazie Michel