Newsgroup: it.comp.www.php
Titolo: Variabili di sessione

Ho iniziato da pochissimo ad usare
php ma ho un problema e tutte le ricerca in rete
non mi hanno portato ad una soluzione...
In pratica perdo le variabili di sessione quando
cliccko su un link che mi sposta da un pagina
ad una sottopagina.
Il bello è che queste pagine messe su un hosting
gratuito (
awardspace.com
) funzionano perfettamente mentre se
le metto su un altro hosting a pagamento (PHP 4.4.1)
non funzionano....
Ho provato molte delle soluzioni in rete: session_write_close,
a passare il session_id() e a reimpostarlo prima di session_start,
ho controllato i cookie, etc
Qualche idea?
GRAZIE!
M.

 ha detto:

Posta il codice
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Staff di E-Xoopport - 
http://www.e-xoopport.it

 Posta il codice
Allora qui sotto trovi un estratto delle due pagine, index.php
e secret/index.php (in quest'ultima arrivano tutte le variabili vuote)
il codice completo lo trovi su 
http://www.talo.it/g.zip
index.php
<?php
// admin : galatool = default Zugang
session_start();
[.....]
if (isset($_POST['username']) && isset($_POST['pass'])) {
	$loginfailure = true;
	mysql_connect($dbhost,$dbusername,$dbpassword);
	mysql_select_db($dbname);
	[............]
	$query = "SELECT id,username,cansearch,caninsert,statusview,probeview,userman FROM $utablename WHERE username='$username' AND 
userpass=md5('$userpass') and status='active'";
	$res = mysql_query($query) or die(mysql_error());
	if (mysql_num_rows($res) > 0) {
		$line = mysql_fetch_object($res);
		$_SESSION['s_username']   = $line->username;
	[..............]
		$loginfailure = false;
	}
	if (!$loginfailure) {
		$query = "UPDATE $utablename SET logins=logins+1, lastlogin=NOW() WHERE id='".$_SESSION['s_userid']."'";
		[...............]
			$query = "DELETE FROM $iptablename WHERE ".$where;
			$res = mysql_query($query) or die(mysql_error());
		}
	}
}
if (!isset($_SESSION['s_loggedin']) || $_SESSION['s_loggedin'] && $_SESSION['s_serverurl'] != $_SERVER['SERVER_ADDR'].$path) { // Loginseite
?>
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
[..................]
?>
<tr class="firstcolor"><td style="padding-top:5px; padding-left:5px;"><?php echo L_USERNAME; ?>:</td><td style="padding-top:5px;"><input 
class="textfield" type="text" name="username" size="20" maxlength="20" /></td></tr>
<tr class="firstcolor"><td style="padding-top:5px; padding-left:5px;"><?php echo L_PASSWORD; ?>:</td><td style="padding-top:5px;"><input 
class="textfield" type="password" name="pass" size="20" maxlength="20" /></td></tr>
<tr class="firstcolor"><td colspan="2" align="center" style="padding-top:5px;"><input class="button" type="submit" name="OK" value="OK" /></td></tr>
[..................]
</html>
<?php
} else {
?>
    <HTML>
	<HEAD>
		<TITLE>DONE</TITLE>
		<meta http-equiv="refresh" content="10; URL=secret/index.php">
		<link rel=stylesheet type="text/css" href="secret/styles.css">
	</HEAD>
	<BODY>
		<table cellpadding="0" cellspacing="0" border="0" style="width:250px;" align="center" height="100%">
		<tr><td valign="middle">
		<a class="menulink" href="secret/index.php?SID=<?php echo session_id(); ?> "><?php echo INDEX_PAGEFORWARD; ?></a>
		</td>
		</tr>
	</BODY>
   </HTML>
<?php
}
?>
-----------------------------
secret/index.php
<?php
session_start();
if (!isset($_SESSION['s_loggedin']) || ($_SESSION['s_loggedin'] == false) || !isset($_SESSION['s_serverurl']) || 
(strpos($_SERVER['SERVER_ADDR'].$_SERVER['PHP_SELF'],$_SESSION['s_serverurl']) === false)) {
   $error_page_code = "timeout";
	include "errorpage.php";
	exit();	
}
[...............]

 e secret/index.php (in quest'ultima arrivano tutte le variabili vuote)
Ma per caso secret è una cartella protetta?
rob4you 

il codice completo lo trovi su 
http://www.talo.it/g.zip
A prima vista non vedo possibili incompatibilità. Imposta l'error
reporting su all (ed ovviamente display errors su on) e vedi se dà
errori; se non dà errori prova un banale codice di impostazione
sessione e vedi se funziona. Se non funziona fai presente la cosa al
provider.


 Ma per caso secret è una cartella protetta?
no, figurati....
ho solo le variabili di sessione vuote....
che rabbia