Ciao, ho un piccolo problema, non riesco a fare un logout. Se avete un attimo di tempo potete dare un occhio al mio script?
Mi spiego, il sito intanto on line gira su un server windows:
ho una pagina di login:
1) "login.php":
Codice PHP:
<html>
<head>
<title>LOGIN UNIVOCO</title>
</head>
<link rel=stylesheet href="style4.css" type="text/css">
<body>
<h1>LOGIN UNIVOCO</h1>
<form method="post" action="homepage.php">
Username: <input type="text" name="txt_username">
Password: <input type="password" name="txt_password">
<input type="submit" value="login">
</form>
</body>
</html>
se clicco e vado sulla homepage.php funziona tutto regolarmente, se notate in fondo a questo script c'è il link "esci" che va su "homepage_prova.php"....
2) "homepage.php":
Codice PHP:
<?php
//Includo i file per la connessione
//e per la verifica Utente
require_once('db_conn.php');
require_once('datediff.php');
require_once('verify.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Area Privata</title>
</head>
<link rel=stylesheet href="style3.css" type="text/css">
<body>
<?php
//testare la sessione
echo @$login_err;
//Controllo che l' utente sia loggato
if(IsSet($_SESSION['logged'])){
echo "solo il webmaster puo' vedere questo"."
";
echo "
Benvenuto utente: ".@$_SESSION['logged'][0];
//echo "
Ultima Visita: ". date("d-m-Y H:i:s", @$_SESSION['logged'][1]);
?>
Area privata
<link rel=stylesheet href="style3.css" type="text/css">
<p class="posizione1">
[url="iscrizioni.php"]verifica gli utenti iscritti[/url]
[url="homepage_prova.php"]Esci[/url]
</p>
<?php
}else
echo "
Non sei autenticato !"."
[url='login.php']login[/url]"."
";
?>
</body>
</html>
Se clicco su homepage_prova.php la prima volta, lo script mi distrugge tutte le sessioni e i cookie, e fino qui tutto ok.
3) "homepage_prova.php":
Codice PHP:
<?php
// logout.php
// Unset di tutte la variabili di sessione
$_SESSION = array();
// Distruggi l'eventuale cookie con l'ID di sessione (se esiste)
if (isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time() - 90000);
// Distruggi la sessione, inseriamo la riga comunque,
//una volta che PHP
// viene aggiornato ad una versione senza il bug,
//questa funzionerà nuovamente
session_destroy();
// Redirigi alla pagina destinazione
header("Location: " . $_SERVER['HTTP_REFERER']);
?>
Il problema è che, quando entro col mio login e subito dopo vado sul link "iscrizioni.php" che mi permette di visualizzare alcuni dati, da qui, se clicco poi su "esci" (che è lo stesso link di uscita della prima pagina privata), lo fa niente! Cioè non funziona piu'!
Funziona solo la prima volta ma se inizio a navigare non mi fa il logout.
Secondo voi quale è il problema?
4) file "iscrizioni.php":
Codice PHP:
<?php
//Includo i file per la connessione
//e per la verifica Utente
require_once('db_conn.php');
require_once('datediff.php');
require_once('verify.php');
?>
<html>
<head>
<body>
<?php
//Controllo che l' utente sia loggato
if(IsSet($_SESSION['logged'])){
echo "
username: ".@$_SESSION['logged'][0];
echo '
';
echo "mail selezionate:"."
";
$utenti_mail="SELECT * FROM utenti" ;
$utenti_mail2 = mysql_query($utenti_mail,$connessione);
while($utenti_mail3 = mysql_fetch_array($utenti_mail2)) {
echo"
","[b]".$utenti_mail3['indirizzo_email']."[/b]";
echo "
";
}
}
?>
[url="homepage.php"]Torna all'homepage[/url]
[url="homepage_prova.php"]Esci[/url]
</body>
</html>