Salve a tutti...
ho una pagina con un modulo e uno script php per il login e usando le sessioni.
Lo script controlla nel database se esiste l'utente e poi tramite un header:Location mi rimanda alla pagina del login che mi stampa il nome dell'utente.
Il problema è che quando inserisco nome e password , mi rimanda alla pagina di login, ma mi esce fuori ancora il modulo invece di stampare il nome...praticamente non mi registra la sessione.
Ho provato sia con i register_global attivati sia disattivati, ho provato usando session_register() e anche $_SESSION['nome'], ma non ne vuole sapere.
Però se dallo script , invece di fare un header:location gli dico di stampare il risultato della sessione con echo $_SESSION['utente'], me lo stampa....
sapete dove sta il problema?
ah...io lavoro sotto linux.
Vi posto i codici:
con session_register()
pagina col modulo index.php
)
Codice PHP:
<?php
session_start();
if (empty($utente))
{echo "
<FORM action=\"/scripts/login.php?\" method=\"POST\">
<div class=\"form_text\">username</div>
<INPUT type=\"text\" name=\"name\" class=\"form_input\">
<div class=\"form_text\">password</div>
<INPUT type=\"password\" name=\"pass\" class=\"form_input\">
<INPUT type=\"submit\" name=\"login\" value=\"login\" class=\"form_button\">
</FORM>
";}
else
{
echo $utente;
}
script per il login:
Codice PHP:
<?php
session_start();
session_register("utente") ;
if (!empty($_POST['name']) && !empty($_POST['pass']))
{
$user=$_POST["name"];
$pass=$_POST["pass"];
mysql_connect("localhost","user","password") or die("no database found");
mysql_select_db("database")or die ("no database");
$r="select * from utenti where username= '$user' and password= '$pass'";
$res=mysql_query($r);
$result=mysql_fetch_array($res);
if ($result["username"]==$user and $result["password"]==$pass)
{
$utente=$result["username"];
header("Location:/prova.php?");}
else
{echo"non sei registrato";}
}
else
{header("Location:http:/prova.php?");}
?>
e questi usando $_SESSION['xxx']
pagina index.php:
Codice PHP:
<?php
session_start();
if (empty($_SESSION['utente']))
{echo "
<FORM action=\"/scripts/login.php?\" method=\"POST\">
<div class=\"form_text\">username</div>
<INPUT type=\"text\" name=\"name\" class=\"form_input\">
<div class=\"form_text\">password</div>
<INPUT type=\"password\" name=\"pass\" class=\"form_input\">
<INPUT type=\"submit\" name=\"login\" value=\"login\" class=\"form_button\">
</FORM>
";}
else
{
echo $_SESSION['utente'];
}
script per il login:
Codice PHP:
<?php
session_start();
if (!empty($_POST['name']) && !empty($_POST['pass']))
{
$user=$_POST["name"];
$pass=$_POST["pass"];
mysql_connect("localhost","user","password") or die("no database found");
mysql_select_db("database")or die ("no database");
$r="select * from utenti where username= '$user' and password= '$pass'";
$res=mysql_query($r);
$result=mysql_fetch_array($res);
if ($result["username"]==$user and $result["password"]==$pass)
{
$_SESSION['utente']=$result["username"];
header("Location:/prova.php?");}
else
{echo"non sei registrato";}
}
else
{header("Location:http:/prova.php?");}
?>