Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[PHP] mal funzionamento sessioni

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

[PHP] mal funzionamento sessioni

Postdi Xavier » 04/09/06 08:12

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>&nbsp;</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>&nbsp;</p>
<p>&nbsp;</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
Ciò che molti non capiscono è una banalità per altri..
----------------------------------------------------------
Siederò sulla sponda del fiume aspettando che passi il tuo cadavere.
Xavier
Utente Junior
 
Post: 55
Iscritto il: 11/08/06 13:53

Sponsor
 

Postdi Triumph Of Steel » 04/09/06 12:55

servirebbe vedere la pagina di root com'è...
hai postato la pagina che dici essere giusta :P

cmq controlla di aver inserito per sicurezza:
session_start();
nelle pagine in cui usi la sessione, all'inizio di tutto il codice.
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi Xavier » 06/09/06 07:45

Ma io nel file php.in avevo impostato l'auto start delle sessioni..

cmq sia ho provato entrambi i metodi (ho usato l'auto start ed anche all'inizio di ogni singola pagina session_start())

ma non ottengo risultati..

la prima volta che loggo non funziona, poi faccio logout e rientro e allora le sessioni partono..

Qualcuno sa spiegarmi il perchè..

grazie anticipatamente per l'aiuto
Ciò che molti non capiscono è una banalità per altri..
----------------------------------------------------------
Siederò sulla sponda del fiume aspettando che passi il tuo cadavere.
Xavier
Utente Junior
 
Post: 55
Iscritto il: 11/08/06 13:53

Postdi rebol » 07/09/06 12:36

Se vuoi realizzare pagine web protette da password forse questo articolo può esserti utile.
HITOTSU JINKAKU KANSEI NI TSUTOMURU KOTO
HITOTSU MAKOTO NO MICHI O MAMORU KOTO
HITOTSU DORYOKU NO SEISHIN O YASHINAU KOTO
HITOTSU REIGI O OMONZURU KOTO
HITOTSU KEKKI NO YU O IMASHIMURU KOTO
rebol
Utente Senior
 
Post: 129
Iscritto il: 11/09/02 14:12
Località: In the middle of nowhere


Torna a Programmazione


Topic correlati a "[PHP] mal funzionamento sessioni":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti