Buon giorno a tutti quanti voi..
Ho un piccolo problema con le sessioni.
- Uso le sessioni per trasmettere info da una pagina all'altra
- Ho una pagina di login dove inserisco nome utente e password
- Tramite questa pagina il browser mi ridireziona ad una pagina per l'utente oppure ad una pagina per administrator e mi setta la sessione ($_session["utente"] = nome_utn inserito)
Detto questo:
Quando mi posiziono nella pagina di login ed inserisco i dati (nome utente e password) e poi premo il bottone logga, tutto sembra funzionare bene.
Ma quando mi trovo o nella pagina di root oppure in quella di utente mi accorgo che la sessione non ha riportato i dati prima inseriti.
Quindi io premo il bottone logout che mi riporta alla login.php, qui rifaccio tutto il processo e questa volta tutto funziona davvero, ossia la session trasmette i dati da me impostati da una pagina all'altra..
Qua sotto il codice della log.php ossia, la pagina che analizza i dati inseriti, quarda se nel db esiste l'utente, setta la session, e ridireziona il broswer nella pagina che volevo:
------------------------------------------------------------------------------------
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="my_css.css">
</head>
<body>
<table width="60%" border="0" align="center">
<tr>
<td><div align="center"><img src="/gestore/immagini/banner.jpg" width="100%"></div></td>
</tr>
</table>
<p> </p>
<?php
include("dbconfig.php");
//ricavo i valori della form precedente
$nome = $_POST["nick"];
$password = $_POST["psw"];
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connesione");
mysql_select_db("gestore", $db)
or die ("Errore nella selezione del database");
//creo la query
$sql = "SELECT * FROM Tbl_Utente WHERE nick='$nome' and password='$password'";
//invio tale query al db
$result = mysql_query ($sql, $db);
//ricavo i dati dal db
$row = mysql_fetch_array ($result);
//numero di riche contenente i dati
$num = mysql_num_rows($result);
if ($num == 0) { //cioè non c'è nessun dato all'interno del db
//utente no trovato
echo "
<table width='60%' border='0' align='center'>
<tr>
<td><div align='center'><h2 class='title'>Modulo di Direzione</h2></div></td>
</tr>
</table>
<br>
<br>
<table width='60%' border='1' align='center'>
<tr>
<td colspan='3'><div align='center'><br>Il nome non è presente nel database
oppure hai sbagliato la password.<br>
Cosa vuoi vare?<br><br>
</td>
</table>
<br>
<br>
<table width='40%' border='0' align='center'>
<tr>
<td><div align='center'><a href='registra.php?n=$nome&p=$password'><b>Registra
Utente</b></a></div></td>
<td><div align='center'><a href='login.php'><b>Ritorna al Login</b></a></div></td>
<td><div align='center'><a href='index.php'><b>HomePage</b></a></div></td>
</tr>
</table>
";
}
else
{//utente esistente
if ($row["diritto"] == 0)
{//utente semplice
mysql_close ($db);
//provo con la session
$_SESSION["utente"] = $nome;
header("Location: http://192.168.100.140/gestore/usr_page.php"); // Ridireziona il browser per INTERNET
//header("Location: http://localhost/Gestore/usr_page.php"); // Ridireziona il browser per RETE LOCALE
exit;
}
else
{//utente roo
mysql_close ($db);
//provo con la session
$_SESSION["utente"] = $nome;
header("Location: http://192.168.100.140/gestore/root_page.php"); // Ridireziona il browser PER INTERNET
//header("Location: http://localhost/Gestore/root_page.php"); // Ridireziona il browser per RETE LOCALE
exit;
}
}
?>
<p> </p>
<p> </p>
<table width="60%" border="0" align="center">
<tr>
<td><div align="center"><img src="/gestore/immagini/downpage.jpg" width="100%"></div></td>
</tr>
</table>
</body>
</html>
------------------------------------------------------------------------------------
Grazie mille per l'aiuto e per il tempo che mi date..
Alessandro