- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problemi con variabile di sessione e XML
-
Niente...
Pagina bianca....
-
Innanzitutto..
prova con
var_dump($_SESSION);
e vedi cosa ti esce...
poi potresti provare così:Crea il file sessione.php con questo codice dentro:
<?php
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies',1);
session_start();
?>poi modifica il codice così:
require "sessione.php";
$_SESSION['feedcode']="<?xml version='1.0' encoding='ISO-8859-1'?>
<rss version='2.0' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:content='http://purl.org/rss/1.0/modules/content/'>
<channel>";$_SESSION['feedcode']=$_SESSION['feedcode']."<title>".$title."</title><link>http://www.miosito.ext/news/</link><description>Notizie al Web a cura di MioSito.ext</description><language>it</language>";
....QUI SCRIVO ALTRA ROBA IN $_SESSION['feedcode']...RIMOSSO PER ABBREVIARE
$_SESSION['feedcode']=$_SESSION['feedcode']."</channel></rss>";
?><a href="./modules/mod_eventlist_rss/events_rss.php">Live Feeds</a>
E poi...
<?php
require "sessione.php",
echo (isset($_SESSION['feedcode'])) ? $_SESSION['feedcode'] : "Impossibile trovare la sessione";
?>
-
Dopo il tuo suggerimento:
**Warning**: session_start() [[function.session-start](http://www3.pipeline.it/modules/mod_eventlist_rss/function.session-start)]: Cannot send session cookie - headers already sent by (output started at /home/web/public_html/modules/mod_eventlist_rss/events_rss.php:5) in **/home/web/public_html/modules/mod_eventlist_rss/session.php** on line **4** **Warning**: session_start() [[function.session-start](http://www3.pipeline.it/modules/mod_eventlist_rss/function.session-start)]: Cannot send session cache limiter - headers already sent (output started at /home/web/public_html/modules/mod_eventlist_rss/events_rss.php:5) in **/home/web/public_html/modules/mod_eventlist_rss/session.php** on line **4** Impossibile trovare la sessione
-
togliendo dall'ultima pagina "require(sessione.php)"
ho solo:
"Impossibile trovare la sessione"
-
Uhm...ripeto la domanda di prima...cosa ottieni con
var_dump($_SESSION);
?
Poi, per il warning..ti suggerisco di modificare il file sessione cosi:
<?php
session_start();
$feedcode ="";
session_register("feed_code");
?>E modifica il file cosi:
<?php
require "sessione.php",
echo (session_is_registered('feedcode')) ? $_SESSION['feedcode'] : "Impossibile trovare la sessione";
?>
-
Dunque...
Mi ero dimenticato questo test...
Ho messo definitivamente come test "pippo" nella sessione per evitare problemi dovuti a XML
Il "var_dump($_SESSION);" nella pagina1 dà un amarea di roba tra cui ["feedcode"]=> string(5) "pippo" } (quindi la sessione fin lì c'è)Nella pagina 2 invece dà "NULL"....(quindi si è perso la sessione?)
-
Ohi Ohi...
Dunque:
il tuo ultimo esempio ha avuto come risultato:"Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line **0"
register_globals **è su OFF in effetti...C'entra questa opzione?
-
No, non disattivare register_globals, porterebbe ad un alto calo di sicurezza..
direi che si è proprio persa la sessione...
-
OK,
Comunque ieri stavo pensando di risolvere così (dovrebbe funzionare e mi pare anche più pulito...)Nella pagina1 chiamo una funzione su pagina2 a cui passo come parametro il contenuto XML. La pagina2 deve a quel punto solo prendere ciò che le arriva e fare echo...
O no???;)
-
A quel punto ti basta ob_start()/include()/ob_get_clean()