ciao a tutti.
Sto cercando di creare un cookie al login del mio db.
Il codice e':
<?php
setcookie ("cookie",$valore);
include "config.php";
$user=$_POST['username'];
$pwd=$_POST ['pwd'];
$db=mysql_connect ($db_host, $db_user, $db_password);
if ($db==FALSE)
die ("Errore nella connessione del database.");
mysql_select_db ($db_name,$db);
$query="SELECT id,nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd'";
$result=mysql_query ($query,$db);
if($num_righe = mysql_num_rows($result))//restituisce il numero di righe in un risultato
{
while($row=mysql_fetch_array($result))
if ($row[nome]=="Admin" && $row[password]=="root")
{$valore ="$row[id]|$row[livello]";
Header("Location: admin.php");
}
else
{
$query="SELECT nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd' AND livello='0'";
$result=mysql_query ($query, $db);
if ($num_righe=mysql_num_rows($result))
{
echo ("Spiacente, in attesa dell'autorizzazione dell'admin.Riprova piu tardi.
");
echo ("<a href=\"home.php\">Torna alla home page</a>
");
}
else
{
header("location:login_utente_succ.php");
}
}
}
else
echo ("Non sei registrato");
mysql_close($db);
?>
in top_foot.php ho 2 funzioni, top() e foot() che contengono it ag htmol di apertura e chiusura pagina.
Quindi siccome setcookie deve essere fatto prima dei tag html, e' corretto dove lo metto io a inizio pagina?
Cookie sara' il suo nome, e valore lo voglio impostare successivamente , anche perche inizialmente non so chi sta loggando.
Quindi eseguo questo pezzo:
$query="SELECT id,nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd'";
$result=mysql_query ($query,$db);
if($num_righe = mysql_num_rows($result))//restituisce il numero di righe in un risultato
{
while($row=mysql_fetch_array($result))
if ($row[nome]=="Admin" && $row[password]=="root")
{$valore ="$row[id]|$row[livello]";
Header("Location: admin.php");
}
e dovrei estrapolare in row[nome] Admin e $row[password] root giusto?
le query mi sembra esatte.
E se tutto funziona come dovrebbe perche' non mi imposta il cookie?
infatti nella pagina admin.php inizio cosi:
<?php
include "config.php";
include "top_foot.php";
echo ("A");
if (isset ($_COOKIE["cookie"])) {
echo top();
echo ("Tabella degli utenti
");
...faccio le operazioni se il cookie esiste e quindi se l'utente e' loggato in modo corretto..
}
else
{
echo ("Utente non registrato.");
}
eseguendo il tutto, loggando come admin e root mi stampa "Utente non registrato"
E quindi l'unica cosa e' che ho sbagliato a impostare il cookie, se no non avrebbe senso che non mi entri nell'if.
Dove ho sbagliato in poche parole?