Newsgroup: it.comp.www.php
Titolo: Variabili di sessione: come settarle tramite link?

Ciao a tutti,
premetto che ci sto lavorando da un po' di tempo ma non sono ruiuscito
ad ottenere niente che assomigliasse a quello che voglio ottenere.
In buona sostanza vorrei avere su una pagina (home) una serie di link
(le classiche bandiere ITA - UK - FR....).
Ogni link dovrebbe settare una variabile di sessione (lingua), in modo
che questa variabile sia disponibile per tutta la durata della
navigazione del sito.
Ho creato una pagina di esempio (lingua.php) dove nella sezione head
ho scitto:
<?php
if (!isset($HTTP_SESSION_VARS['lingua'])) {
   $HTTP_SESSION_VARS['lingua'] = 1;
}
?>
Poi, nella sezione body:
<a href="lingua.php?<?php echo $HTTP_SESSION_VARS['lingua'] = 1;?>">1
- IT</a>
<a href="lingua.php?<?php echo $HTTP_SESSION_VARS['lingua'] = 2;?>">2
- UK</a>
Per visualizzare la variabile ho anche inserito:
lingua= <?php echo $HTTP_SESSION_VARS['lingua'];?>
L'unico risultato che ottengo e' che il browser mi visualizza i vari
link e come valore della variabile mi mette 2. In pratica, mi
visualizza l'ultimo valore incontrato nella pagina (nell'ultimo link
qui sopra).
Naturalmente se clicco i vari link non cambia assolutamente nulla. =(.
Se creo un link ad una nuova pagina e visualizzo la stessa variabile
(nella nuova pagina), la variabile risulta vuota.
Arrrgghhhh!! sto impazzendo!!
Tenete presente che _non_ sono un programmatore, ma sto cercando di
muovere i primi passi nel PHP.
Chi mi puo' aiutare?
GIA (Grazie in Anticipo)
Tony

 ?>
all'inizio di qualsiasi script che usa le sessioni mettici sempre
session_start();
altrimenti se ne frega!!
poi fai sapere.
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.ic.unicamp.br/~oliva/papers/free-software/selection-html/

[CUT]
devi mettere "session_start();" prima_di_tutto.
--
CIAO!
Gusher


Ciao Punkarruso,
purtroppo mi da' questo messaggio di errore:
Warning: Cannot send session cache limiter - headers already sent
(output started at c:\easyphp\www\
www.bemagroup.it
\sel_lingua.php:2)
in c:\easyphp\www\
www.bemagroup.it
\sel_lingua.php on line 3
e non cambia nulla, sul resto della pagina.
qualche idea?
Ciao e ri-grazie
tony

devi mettere "session_start();" prima_di_tutto.
Ciao Gusher,
l'ho fatto, ho inserito session_start(); ,ma il problema persiste,
anzi, il browser mi da' messaggi di errore:
Warning: Cannot send session cookie - headers already sent by (output
started at /home/sites/site9/web/sel_lingua.php:2) in
/home/sites/site9/web/sel_lingua.php on line 3
Warning: Cannot send session cache limiter - headers already sent
(output started at /home/sites/site9/web/sel_lingua.php:2) in
/home/sites/site9/web/sel_lingua.php on line 3
qui c'e' la pagina incriminata:
http://www.bemagroup.it/sel_lingua.php
Vorrei fare in modo che il click sul link cambiasse il contenuto di
questa variabile. Cosa che, puntualmente, non avviene.
Poi, vorrei fare in modo che questa variabile fosse disponibile anche
il altre pagine. Come fare?
non-ci-capisco-piu'-un-carciofoooooooo!!
tony

 il altre pagine. Come fare?
in ogni pagina devi avere session_start().
poi devi propagare il sid usando sempre tra un link e l'altro:
<? print "<a href oppure action='pagina.php?=SID'> ?>
capito??
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.gnu.org/philosophy/no-word-attachments.it.html

<? print "<a href oppure action='pagina.php?=SID'> ?>
Cioe', in tutti (ma proprio tutti) i link all'interno del sito devo
specificare il SID?
Mi pareva di aver capito che settando una variabile di sessione,
potevo far riferimento ad essa in qualsiasi pagina del sito che sto
navigando....
C'e' un modo migliore per ottenere il risultato che mi sono prefisso?
Cioe' settare la lingua in una sola pagina del sito ed elaborare le
pagine rimanenti in base alla lingua impostata?
Alcune pagine dinamiche filtreranno un db usando 'anche' la lingua.
Le pagine dinamiche le sviluppo con Dreamweaver MX.
Problema irrisolvibile?
ciao
tony

 Problema irrisolvibile?
no!
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://groups.google.com

inoltre, ho capito solo adesso quello che vuoi fare...
Beato te! 
Io ho solo capito che non ho capito...  =D.
Cmq, sono a buon punto:
http://www.bemagroup.it/sel_lingua.php
Adesso la mia domanda e':
Si accede alla pagina NEWS SOLO DOPO aver selezionato la lingua, e
quindi dopo aver cliccato due volte nella stessa pagina.
Ma come posso accedere direttamente alla pagina NEWS con un solo
click?
Cioe': clicco su ITA e mi manda alla pagina NEWS con la variabile
lingua  settata a 1 (ITA)
Qui sotto trovate tutto il codice sorgente della pagina in questione.
Non pretendo che me la impostiate voi, ma vorrei capire su cosa
lavorare.
GIA (Grazie in Anticipo)
tony
CUT/PASTE
_________________________________
<?php
session_start(); #da mettere PRIMA dell'output, inizializza la
sessione
if (!isset($HTTP_SESSION_VARS['lingua'])) #ce l'ho già registrata?
        {
        session_register ('lingua');
        $HTTP_SESSION_VARS['lingua'] = 1; #default!
        }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body>
<p>Seleziona la lingua:</p>
<p><a href="sel_lingua.php?<? echo SID?>&lingua=1"> 1 - IT</a> </p>
<p><a href="sel_lingua.php?<? echo SID?>&lingua=2"> 2 - UK</a> </p>
<p><a href="sel_lingua.php?<? echo SID?>&lingua=3"> 3 - FR</a> </p>
<p><a href="sel_lingua.php?<? echo SID?>&lingua=4"> 4 - DE</a> </p>
<p><a href="sel_lingua.php?<? echo SID?>&lingua=5"> 5 - ES</a> </p>
<?
if(isset($HTTP_GET_VARS['lingua']))
 {
        #la registri come di sessione
        $HTTP_SESSION_VARS['lingua']=$HTTP_GET_VARS['lingua'];
        }
?>
<p>Il valore corrente della variabile lingua e': <?php echo
$HTTP_SESSION_VARS['lingua'];?>
<p>Adesso so che vuoi usare la lingua 
  <?= $HTTP_SESSION_VARS['lingua'];?>
  , dove vuoi andare??</p>
<p><a href="news_main_sperimentale.php">news</a></p>
</body>
</html>
______________________________________

 lingua  settata a 1 (ITA)
metti il controllo del HTTP_GET_VARS all'inizio e se è settata la variabile 
GET, la setti come SESSION (già fatto) e gli aggiungi  
header("Location:
http://www.bemagroup.it/nuovalocazione.php
");
in questo modo non devi ricliccare ma ti 'DEVIA' automaticamente.
cerca "Header Location group:it.comp.www.php" su 
groups.google.com
 per 
delucidazioni
a domani (schiodo)
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.gnu.org/philosophy/free-sw.it.html