Ho un problema con la mia login , non riesco a fare funzioanre il sistema dei cookie , e la login non recupera i dati dai cookie...Mi potete aiutare?Grazie
Codice login :
Codice:
Codice PHP:
<?
$logout = $_GET['logout'];
if( $logout == '1' ) //se viene richiesto di fare logout
{
$nickname=$_SESSION['nick'];
$sql="UPDATE anagrafica SET Online='NO' WHERE Nick='$nickname'";
$connection=mysql_connect("$db_host","$db_user","$db_password")or die ("Connessione non avvenuta");
$db=mysql_select_db("$db_database",$connection) or die ("Database non trovato");
mysql_query($sql) or die ("Query fallita:".mysql_error());
//cancello il contenuto di tutte le variabili, distruggo l`intera sessione
$_SESSION = array();
session_destroy();
//cancello i cookies
setcookie('nick','');
setcookie('pwd','');
//rinfresco la pagina
//(dopo il refresh apparirà la schermata di login "normale")
header("refresh: 1 ; URL=.index2.php");
ob_end_flush();
}
else //non è richiesto di fare il logout ma il login
{
if( isset($_SESSION['loggato']) ) //se l`utente è già loggato
{
//stampo la stringa di benvenuto e il link di logout
echo "Utente : [b]".$_SESSION['nick']."</font>
";
echo "Livello : [b]".$_SESSION['autorizzato']."</font>
";
echo "<form method='post' action='index2.php?logout=1' style='display:inline'>
<input name='logout' class='bottone' type='submit' value='Logout'></form>";
//se l`utente è amministratore faccio apparire anche il link Pannello
if($_SESSION['autorizzato'] == 'admin')
echo "[url='?content=../pannello/pannello.htm']Pannello[/url]";
//NOTA: i cookies vengono ignorati!
}
else //se l`utente non si è ancora autenticato ( = la sessione non è stata ancora creata )
{
//vedo se nei cookies sono mantenute informazioni relative a un precedente login:
//posso sfruttare queste per l`autenticazione!
//controllo che entrambe le info siano presenti nel cookie
if( isset($_COOKIE['nick']) && isset($_COOKIE['pwd']) )
{
//per comodità salvo le variabili del cookie in due variabili del programma
$username = $_COOKIE['nick'];
$password = $_COOKIE['pwd'];
//mi connetto al DB
$connection=mysql_connect("$db_host","$db_user","$db_password")or die ("Connessione non avvenuta");
$db=mysql_select_db("$db_database",$connection) or die ("Database non trovato");
//eseguo la query
$query="SELECT * FROM `anagrafica` WHERE Nick ='$username' AND Pwd='$password'";
$result=mysql_query($query) or die ("Query fallita: " . mysql_error());
$row=mysql_fetch_array($result);
if($_REQUEST['nick']==$row['Nick']) //se esiste un match
{
//creo la sessione e imposto i valori
$_SESSION['loggato']=1;
$_SESSION['autorizzato']=$row['autorizzato'];
$_SESSION['nick']=$row['Nick'];
//creo i cookies
$scadenza=time()+3600; // 600 = 60 secondi x 10 minuti
setcookie('nick',$username,$scadenza);
setcookie('pwd',$password,$scadenza);
$sql2="UPDATE anagrafica SET Online='SI' WHERE Nick='".$_SESSION['nick']."'";
mysql_query($sql2) or die ("Query fallita:".mysql_error());
//rinfresco direttamente la pagina
//al riavvio la pagina vedrà che $_SESSION['loggato'] vale 1 e imposterà la pagina di conseguenza
header('refresh: 1');
}
else //non esiste un match
{
//il cookie contiene probabilmente informazioni falsificate
//occorre fare uscire un avviso: User / Pwd errato
}
}
else //se non ci sono sufficienti info nel cookie o se i cookies sono disabiliti: autenticazione manuale
{
$user = $_POST['nick'];
$passw = $_POST['pwd'];
//se è in corso una richiesta di autenticazione la gestisco
if($user != "" && $passw != "")
{
//mi connetto al DB
$connection=mysql_connect("$db_host","$db_user","$db_password")or die ("Connessione non avvenuta");
$db=mysql_select_db("$db_database",$connection) or die ("Database non trovato");
$query="SELECT * FROM `anagrafica` WHERE Nick ='$user' AND Pwd='$passw'";
$result=mysql_query($query) or die ("Query fallita: " . mysql_error());
$row=mysql_fetch_array($result);
if($_REQUEST['nick']==$row['Nick']) //se esiste un match
{
//creo la sessione e imposto i valori
$_SESSION['loggato']=1;
$_SESSION['autorizzato']=$row['autorizzato'];
$_SESSION['nick']=$row['Nick'];
//creo i cookies
$scadenza=time()+3600; // 600 = 60 secondi x 10 minuti
setcookie('nick',$user,$scadenza);
setcookie('pwd',$passw,$scadenza);
$sql3="UPDATE anagrafica SET Online='SI' WHERE Nick='".$_SESSION['nick']."'";
$result=mysql_query($sql3) or die ("Query fallita:".mysql_error());
//rinfresco direttamente la pagina
//al riavvio la pagina vedrà che $_SESSION['loggato'] vale 1 e imposterà la pagina di conseguenza
header('refresh: 1');
}
else //non esiste un match
{
//occorre fare uscire un avviso: User / Pwd errato
?>
Nick o psw errati
<form style="display:inline">
<input name="riprova" class="bottone" type="submit" onClick="history.back()" value="RIPROVA"></form>
<?
}
}
else //altrimenti faccio apparire la form "normale"
{
?>
<form method='post' action='index2.php' style="display:inline">
<input type="text" name="nick" style="border:none" size="5" value="NICK">
<input type="submit" class="bottone" value="ENTRA ">
<input type="password" name="pwd" style="border:none" size="5" align="right" value="PASS :">
</form>
<form method="post" action="?content=registrazione.php" style="display:inline">
<input name="reg" class="bottone" type="submit" value="NUOVO">
</form>
<? }
}
}
}
ob_end_flush();
?>
Non funziona il sistema dei cookie.
In pratica non logga l'utente automaticamente, x cui credo o non crea il cookie, opp nel cookie non sono inserite le info giuste, oppure la login non recupera i dati dal cookie.
La login funziona da sempre....Il probl apunto è ke ho aggiunto i cookie, ma nn funziano....
Per favore, se potete aiutarmi mi fate un grande favore...