Alexpe77
04-05-2008, 12:13
Ho un problema da risolvere in apparenza (e penso non solo) semplice con le sessioni in PHP. Lo script permette di loggarsi e questo funziona. Il problema sorge quando ricarico la pagina e mi cade la sessione. Riporto di seguito i codici in questione. La pagina è in php.
parte del form:
<? if(!isset($_POST['uid']) AND !isset($_SESSION['uid']))
{
?>
<form name="form1" method="post" ACTION=<? echo $PHP_SELF; ?>
<table height="47" cellpadding="0">
<tr>
<td align="right" valign="middle">
utente
<input name="uid" type="text" size="8" maxlength="10">
<br>
password</span> <input name="pwd" type="password" size="8" maxlength="10">
<br> <input type="submit" name="Submit" value="Invia">
</td>
</tr>
</table>
</form>
<?
}
else
{
session_register("uid");
session_register("pwd");
$sql = "SELECT user, password FROM utenti WHERE user = '$uid' AND password = '$pwd'";
$result = mysql_query($sql); if (mysql_num_rows($result) == 0) {
session_unregister("uid");
session_unregister("pwd");
?>
<table width="162" border="0" cellpadding="0">
<tr>
<td valign="top">utente o password errati o non vi siete registrati. <br>
Per riprovare clikkate <a href="<?=$PHP_SELF?>">qui</a>.
</td>
</tr>
</table>
<?php
}
else
{
$username = mysql_result($result,0,"user");
Mysql_query("UPDATE utenti SET last_login=NOW() WHERE
user='$username'");
?>
<table width="162" border="0" cellpadding="0">
<tr>
<td width="158" height="90" align="center"><b>Benvenuto<br>
<?=$username?>
</b>
<br><b>
<a href="logout.php">logout
</a></b></td>
</tr>
</table>
<?
}
}
?>
parte della sessione presente ad inizio codice:
<?php
include('connessione.php');
session_start();
session_register("username");
if (isset($_POST['uid'])) $uid = $_POST['uid'];
if (isset($_POST['pwd'])) $pwd = $_POST['pwd'];
if (isset($_SESSION['uid'])) $uid = $_SESSION['uid'];
if (isset($_SESSION['pwd'])) $pwd = $_SESSION['pwd'];
session_register("password");
session_register("uid");
session_register("pwd");
mysql_query("SET lc_time_names = 'it_IT'");
?>
il file connessione.php funziona correttamente.
parte del form:
<? if(!isset($_POST['uid']) AND !isset($_SESSION['uid']))
{
?>
<form name="form1" method="post" ACTION=<? echo $PHP_SELF; ?>
<table height="47" cellpadding="0">
<tr>
<td align="right" valign="middle">
utente
<input name="uid" type="text" size="8" maxlength="10">
<br>
password</span> <input name="pwd" type="password" size="8" maxlength="10">
<br> <input type="submit" name="Submit" value="Invia">
</td>
</tr>
</table>
</form>
<?
}
else
{
session_register("uid");
session_register("pwd");
$sql = "SELECT user, password FROM utenti WHERE user = '$uid' AND password = '$pwd'";
$result = mysql_query($sql); if (mysql_num_rows($result) == 0) {
session_unregister("uid");
session_unregister("pwd");
?>
<table width="162" border="0" cellpadding="0">
<tr>
<td valign="top">utente o password errati o non vi siete registrati. <br>
Per riprovare clikkate <a href="<?=$PHP_SELF?>">qui</a>.
</td>
</tr>
</table>
<?php
}
else
{
$username = mysql_result($result,0,"user");
Mysql_query("UPDATE utenti SET last_login=NOW() WHERE
user='$username'");
?>
<table width="162" border="0" cellpadding="0">
<tr>
<td width="158" height="90" align="center"><b>Benvenuto<br>
<?=$username?>
</b>
<br><b>
<a href="logout.php">logout
</a></b></td>
</tr>
</table>
<?
}
}
?>
parte della sessione presente ad inizio codice:
<?php
include('connessione.php');
session_start();
session_register("username");
if (isset($_POST['uid'])) $uid = $_POST['uid'];
if (isset($_POST['pwd'])) $pwd = $_POST['pwd'];
if (isset($_SESSION['uid'])) $uid = $_SESSION['uid'];
if (isset($_SESSION['pwd'])) $pwd = $_SESSION['pwd'];
session_register("password");
session_register("uid");
session_register("pwd");
mysql_query("SET lc_time_names = 'it_IT'");
?>
il file connessione.php funziona correttamente.