Newsgroup: it.comp.www.php
Titolo: Problema con sessione

Ciao,
ho il seguente problema e spero quelcuno mi possa dare delucidazioni...
io ho una pagina php con un modulo, passando alla pagina successiva
memorizzo in una classe le informazioni inserite dall'utente. La classe
viene registrata in sessione (o almeno credo e spero). La seconda pagina
ha un'ulteriore modulo da compilare e ne chiama una terza che salva le
informazioni aggiuntive sempre nello stesso oggetto.
Il mio problema è:
dalla prima alla seconda pagina, riesco a scrivere sull'oggetto e
visualizzzare le informazioni e viceversa (dalla seconda alla prima), ma
dalla seconda alla terza il modulo non passa nulla e non riesco a salvare
nulla, però l'ggetto resta valorizzato per com'era prima.
Passando dalla terza alla seconda l'oggetto si svuota! perché come
funziona?
All'inizio delle pagine ho il seguente codice:
	session_name("nome");
	include("classes/classe.php");
	if(!session_is_registered("classe")){
	   global $classe;
	   $classe = new Classe();
	   session_register("classe");
	}
potete aiutarmi?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 	}
Eh?
Utilizza 
http://www.php.net/serialize
 e 
http://www.php.net/unserialize
-- 
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
L'uomo, conscio di sbagliare, persevera.

 Non utilizzare session_is_registered, utilizza $_SESSION etc.
ok
come faccio a verificare però se la classe è stata già inserita in
sessione e quindi a non ricrearla da zero?


 sessione e quindi a non ricrearla da zero?
http://www.php.net/isset
-- 
I am what I am, I do what I can


 
http://www.php.net/isset
oh, ecco, con isset() però non mi salva niente, mentre con
session_register si...


 session_register si...
Non vedo tutti questi problemi:
<?php
class test {
}
if (!isset ($_SESSION["object"]) || !is_a($_SESSION["object"], "test"))
{
	$_SESSION["object"] = new test();
}
?>
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C


 ?>
Facendo tei test ho scoperto che in realtà nemmeno prima era registrata la
classe, evidentemente le informazioni passavano tra le due pagine a mò di
request implicito...
Lo script che mi hai dato non da nessun effetto... ma da che dipende? è
assurdo! che faccio?


 ?>
Per quello che devo fare a questo punto mi sa che faccio prima a passare
una serie di campi hidden tra tutte le pagine e giocare di request...
uff...


 è assurdo! che faccio?
Lo hai adattato al tuo codice? Questo codice funziona perfettamente.
<?php // file test.class.php 
class test {
	var $a = "undefined";
}
?>
<?php // file a.php
require_once (dirname (__FILE__) . "/test.class.php"); 
session_start ();
$_SESSION["test"] = new test();
$_SESSION["test"]->a = "test value";
?>
<a href="b.php">b.php</a>
<?php // file b.php
require_once (dirname (__FILE__) . "/test.class.php"); 
session_start ();
if (!isset ($_SESSION["test"]) || !is_a($_SESSION["test"], "test")) {
	$_SESSION["test"] = new test();
}
print ("<pre>");
print_r ($_SESSION["test"]);
print ("</pre>");
