Newsgroup: it.comp.www.php
Titolo: ancora sulla propagazione delle sessioni :(

Salve,
    ancora problemi con la propagazione delle sessioni a cookie
disabilitati.
Premetto che li mio hosting mi ha detto che PHP č stato compilato
con --enable-trans-sid, register_globals  e track_vars abilitati.
Tutto ciņ mi dovrebbe garantire che tutti i link relativi sono
automaticamente "aggiustati" per contenere il sid, giusto? a me perņ ad
esempio il seguente codice non funziona:
index.php
<?php
session_name("ls");
if ($HTTP_GET_VARS["id"])
 $dr=$HTTP_GET_VARS["id"];
else if ($HTTP_COOKIE_VARS["dr"])
 $dr=$HTTP_COOKIE_VARS["dr"];
else
 $dr=0;
if ($dr)
 SetCookie("dr",$dr,time()+3600*24*30*12*5);
session_register("dr");
?>
dr: <? echo $dr; ?><p>
To continue, <A HREF="index2.php">click here</A>
index2.php
<?php
session_name("ls");
session_start();
echo "- $dr-";
?>
Il mio intento era quello che il visitatore arriva sulla pagina passando
alla querystring una variabile "id"; questa viene recuperata e messa in una
sessione "dr"; se perņ non č stata passata la si cerca di recuperare da un
cookie (non č detto che i cookie siano abilitati, ma ci provo)
Nella seconda pagina cerco di recuperare il valore di "dr" che dovrei
trovare nella sessione, ma non mi riesce.
Sapete dirmi dove sbaglio? ci sto giocando da un paio d'ore :(
Unca curiositą: cosa cambia se faccio prima la registrazione di una
variabile di sessione e poi la modifico o se faccio il contrario? La
sessione viene registrata all'uscita della pagina o nel momento in cui si
chiama session_register?
Grazie 1000!

Da quello che ho letto, credo tu faccia un pò di confusione.
Una sessione viene inizializzata o ripresa con il comando "session_start()",
e va inserita all'inizio della pagina in php, prima di mandare qualsiasi
altro dato al client esterno ed in ogni pagina dove ti occorre avere a
disposizione le variabili di sessione.
Se i coockie sul client sono disabilitati, non importa perchè il provider ha
abilitato l'inserimento del SID in automatico, per cui il php si accorge e
fa tutto da solo, tu non devi far altro per la propagazione delle sessioni.
Per quanto riguarda le variabili di sessione, vanno registrate una sola
volta con "session_register("NomeVariabile")" e diventano variabili globali,
per cui puoi leggere o scrivere un valore, come fossero normali variabili.
Ciao, Luca


Ciao Luca,
    grazie per l'aiuto, ma ancora non mi riesce di propagare la sessione;
seguendo i tuoi consigli ho scritto le 2 pagine così:
index.php
<?php
session_start();
session_register("dr");
$dr=19;
?>
dr: <? echo $dr; ?>
<p>
To continue, <A HREF="index2.php">click here</A>
index2.php
<?php
session_start();
echo "- $dr-";
?>
Cos'è che sbaglio? Quando nel browser passo il mouse sul link non vedo nulla
contatentato all'url, è normale? non dovrei vedere il sid appeso
automaticamente da PHP?
Grazie,
Tommaso

 session_register("dr");
-- Dubbio -- Ma mica ci vogliono le ' singole cioe' :


ciao,
io non sono un esperto di sessioni, ma al momento faccio cosě:
nella prima pagina scriverei:
To continue, <A HREF="index2.php?s_id=<? print session_id(); ?>">click
here</A>
mentre nella seconda:
<?php
 session_id($s_id);
 session_start();
 echo "- $dr-";
 ?>
perň questo non risolve il fatto che se č abilitata la propagazione del sid
in auto, dovresti vedere la stringa SID sulla barra dell'url. Prova e vedi
se funge.
ciao
mignolo

 ha scritto nel messaggio
news:rXLd8.8553$Ns4.3...@news2.tin.it...


 session_register('dr');
essendo una semplice stringa non dovrebbe cambiare nulla, inoltre sul man
vengono usati i doppi apici