Newsgroup: it.comp.www.php
Titolo: problemi uso sessioni

il mio problema è che sembra che non riesca a propagare i dati di una 
sessione o perchè la sessione mi viene chiusa o per qualche altro 
sconosciuto problema che non riesco a trovare.
ho una pagina di login e una pagina privata a cui si accede solo nel 
caso in cui nome_utente e password inserite nella pagina di login siano 
giuste.
nella pagina di login ho provato ad usare sia :
(primo caso)
session_register('nome_variabile');
$nome_variabile = "valore";
che :
(secondo caso)
$nome_variabile = "valore";
$_SESSION['nome_variabile'] = $nome_variabile;
ma quando mi viene confermato il login e vado nella pagina privata in 
cui è presente "session_start()", la variabile $nome_variabile è come 
inesistente (nel primo caso) oppure (nel secondo caso)
  $temp = $_SESSION['nome_variabile'] non mi restituisce nulla.
non riesco a capire quale sia il problema.
(nel file php.ini register_globals è ON).
ecco i sorgenti dei file :
login.php (nel file auth.php viene eseguito session_start() )
<?php
switch($action) {
case "login":
	include("auth.php");
	$REMOTE_ADDR=getenv("REMOTE_ADDR");
	session_register("sess_utente");
	session_register("sess_password");
	session_register("sess_privilegi_utente");
	session_register("sess_id_utente");
	session_register("sess_id");
	session_register("sess_ip");
 
	$nome_variabile = "ciao";
	$_SESSION['nome_variabile'] = $nome_variabile;
	function login()
		{
		global $server,$loginsql,$passsql,$db,$log,$pwd,$error,$id_utente;
		global $tabella_utente;
 
		$utente=$log;
		$password=$pwd;
 
		if (!$utente)
			{
			$error="<b>ERROR</b>: the login field is empty";
			return false;
		}
 
		if (!$password)
			{
			$error="<b>ERROR</b>: the password field is empty";
			return false;
		}
 
		$con = mysql_connect($server,$loginsql,$passsql);
 
		if( !$con)
			{
			print("Can't connect to the database.");
			exit();
		}
 
		if( !mysql_select_db($db))
			{
			print("<br>Can't select database: $db<br>".mysql_error());
			exit();
		}
		$query =  " SELECT id_utente, user_name, password FROM $tabella_utente 
WHERE user_name = '$utente' AND password = '$password' ";
		$result = mysql_query($query,$con);
 
		if( !$result)
			{
			print("Incorrect Login/Password request: ".mysql_error());
			exit();
		}
		$lines = mysql_num_rows($result);
 
		if ($lines<1) {
			$error="<b>ERROR</b>: wrong login or password";
			$pwd="";
			return false;
		}
		else
			{
			$res=mysql_fetch_row($result);
			$id_utente_ID=$res[0];
 
			if ($res[1]==$utente && $res[2]==$password) {
				return true;
			}
			else
				{
				$error="<b>ERROR</b>: wrong login or password";
				$pwd="";
			return false;
			}
		}
	}
	if (!login())
		{
		session_destroy();
 
		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
		header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
		header("Cache-Control: no-cache, must-revalidate");
		header("Pragma: no-cache");
		header("Location: login.php");
 
		exit();
	} else
		{
		$sess_utente=$log;
		$sess_password=$pwd;
		$sess_id=session_id();
		$sess_ip=$REMOTE_ADDR;
 
		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
		header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
		header("Cache-Control: no-cache, must-revalidate");
		header("Pragma: no-cache");
		header("Location: edit.php");
 
		exit();
	}
break;
default:
	function checklogin()
		{
		.............
	}
	?>
	<html>
	<head>
	<title>b2 > Login form</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<link rel="stylesheet" href="b2.css" type="text/css">
	</head>
	<body>
	<table width="100%" height="100%">
	<td align="center">
	<table width="200" height="200" class="menutop" style="border : 1px 
solid #999999;">
	<tr height="30"><td height="30" width="200">
	<table height="30" cellpadding="5" cellspacing="0" class="menutop">
	<tr height="30"><td height="30" width="30" background="logo.gif">
	<a href="" class="menutop" style="color: #ff3300">b2</a>
	</td>
	<td><font color="#FFFFFF">/&nbsp;&nbsp;</font><b><font 
color="#0000FF">Login</font><b></td>
	</tr>
	</table>
	</td></tr>
	<tr height="170"><td align="right" valign="bottom" bgcolor="#ffffff" 
height="170">
	<form name="" action="login.php" method="post">
	<input type="hidden" name="action" value="login" />
	<table width="100" class="menutop" style="background-color: #ffffff">
	<tr><td align="right">login</td>
		<td><input type="text" name="log" value="<? echo $log; ?>" size="8" 
class="loginbox">&nbsp;&nbsp;&nbsp;</td></tr>
	<tr><td align="right">password</td>
		<td><input type="password" name="pwd" value="<? echo $pwd; ?>" 
size="8" class="loginbox">&nbsp;&nbsp;&nbsp;</td></tr>
	<tr><td>&nbsp;</td>
		<td><input type="submit" name="submit" value="OK" 
class="loginbox">&nbsp;&nbsp;&nbsp;</td></tr>
	</table>
	</form>
	<?php
	if ($error) echo "<div align=\"center\"><font 
color=\"#FF0000\">$error</font></div>";
	?>
	</td>
	</tr>
	</table>
	<br>
	<a href="register.html">register</a>
	</td>
	</tr>
	</table>
	</body>
	</html>
	<?php
break;
}
?>
pagina privata :
<?php
session_start();
if(isset($_SESSION['nome_variabile']))
{
	$var = $_SESSION['nome_variabile'] ;
	print("l'utente della sessione e' $var");
}
else
{
	print("Errore nella sessione");
}
session_destroy();
exit()
?>

 		header("Location: edit.php");
Se ne e' discusso svariate volte.
http://www.php.net/session#40366
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

usando altri script che ho trovato su internet ho notato che sia in 
windows che in linux ho problemi con il mantenimento di valori 
all'interno delle sessioni, in quanto se vado a richiarli in altre 
pagine diverse da quella dove sono stati assegnati alla sessione questi 
è come se non esistessero.cosa potrebbe essere?

 cosa potrebbe essere?
Hai letto quanto ti ho scritto in precedenza?


si ho letto, infatti ti ho scritto perchè il problema mi si è presentato 
con altri script che usano $_SESSION e su os diversi.
Setec Astronomy ha scritto:


 presentato con altri script che usano $_SESSION e su os diversi.
Please 
http://wiki.news.nic.it/QuotarBene
Non capisco, hai fatto quanto suggerito? Hai letto il commento in
merito all'utilizzo delle sessioni con header location?
-- 
I am what I am, I do what I can
