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?");}
?>