Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443

    aggiornamento variabile di sessione con $_GET

    E' possibile aggiornare una variabile di sessione attraverso $_GET ??

    Ho tentato con il seguente script, ma niente da fare.

    Scrive la sessione, ma non la aggiorna con la chiamata.

    HO usato header("Location: per evitare la concatenazione della chimata.


    if (!isset($_SESSION['layout'])) {
    if (!session_id()) session_start();
    $_SESSION['layout']= "invernale";
    session_register('layout');
    } else {
    $_SESSION['layout'] = $_GET['layout'];
    session_register('layout');
    header("Location: http://".$_SERVER['SERVER_NAME'].$_GET['KT_back']."");
    }

    echo "Layout attuale: ".$_SESSION['layout']."";
    echo "
    ";

    if($_SESSION['layout'] == "estivo") {
    echo "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&layout=invernale&KT_back=".urlencode($HTTP_SERV ER_VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout invernale</a>";} elseif(
    $_SESSION['layout'] == "invernale") {
    echo "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&layout=estivo?&KT_back=".urlencode($HTTP_SERVER _VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout estivo</a>";}


    Grazie per un consiglio

  2. #2
    Azz... una volta si usava mettere lo script tra tag code o php. e spaziare e indentare lo script.

    Come si fa a leggere il tuo script messo giu' cosi'?


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    sorry....

    <?php

    if (!isset($_SESSION['layout'])) {
    if (!session_id()) session_start();
    $_SESSION['layout']= "invernale";
    session_register('layout');
    } else {
    $_SESSION['layout'] = $_GET['layout'];
    session_register('layout');

    }

    echo "Layout attuale: ".$_SESSION['layout']."";
    echo "
    ";

    if($_SESSION['layout'] == "estivo") {
    echo "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&layout=invernale&KT_back=".urlencode($HTTP_SERV ER_VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout invernale</a>";
    }
    elseif($_SESSION['layout'] == "invernale") {
    echo "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&layout=estivo?&KT_back=".urlencode($HTTP_SERVER _VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout estivo</a>";
    }
    ?>

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    sorry.....

    eppure quando incollo lo script nella textarea i rientri li vedo. Ho sostituito i rientri con spazi vuoti.

    <?php

    if (!isset($_SESSION['layout'])) {
    if (!session_id()) session_start();
    $_SESSION['layout']= "invernale";
    session_register('layout');
    } else {
    $_SESSION['layout'] = $_GET['layout'];
    session_register('layout');

    }

    echo "Layout attuale: ".$_SESSION['layout']."";
    echo "
    ";

    if($_SESSION['layout'] == "estivo") {
    echo "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&layout=invernale&KT_back=".urlencode($HTTP_SERV ER_VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout invernale</a>";
    }
    elseif($_SESSION['layout'] == "invernale") {
    echo "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&layout=estivo?&KT_back=".urlencode($HTTP_SERVER _VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout estivo</a>";
    }
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    come si fa....,

    i rintri vengono eliminati dopo l'invio

  6. #6

  7. #7
    Originariamente inviato da epescol
    come si fa....,

    i rintri vengono eliminati dopo l'invio
    leggi qui...

    http://forum.html.it/forum/misc.php?...bbcode#buttons

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie per il consiglio

    Codice PHP:

    if (!isset($_SESSION['layout'])) {
    if (!
    session_id()) session_start();
        
    $_SESSION['layout']= "invernale"
        
    session_register('layout');
    }  else {
        
    $_SESSION['layout'] = $_GET['layout'];
        
    session_register('layout');

    }

    echo 
    "Layout attuale: ".$_SESSION['layout']."";
    echo 
    "
    "
    ;

    if(
    $_SESSION['layout'] == "estivo") {
        echo 
    "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&layout=invernale&KT_back=".urlencode($HTTP_SERVER_VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout invernale</a>";
        }
    elseif(
    $_SESSION['layout'] == "invernale") {
        echo 
    "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&layout=estivo?&KT_back=".urlencode($HTTP_SERVER_VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout estivo</a>";
        } 

  9. #9
    prima di leggere tutto...

    Se non apri la sessione non hai visibilita' a $_SESSION. Percio' la prima if risultera' sempre TRUE, cioe' come se non ci fosse.

    Altra cosa se utilizzi $_SESSION e' consigliato dal manuale di non usare session_register(). $_SESSION e' sempre registrato come variabile di sessione.

    http://www.php.net/manual/it/ref.session.php

    se rivedi questa parte forse trovi anche la soluzione al tuo problema.

    Successivamente dovresti verificare se le variabili _SERVER che utilizzi sono tutte attuali, cioe' vedo che usi un mixer dei nomi. vedi la pillola di Chris in merito.

    http://forum.html.it/forum/showthrea...hreadid=245215

    ultimo suggerimento. Nello script che posti dovresti inserire ogni tanto degli spazi, il forum spezza le righe dopo 40 caratteri consecutivi. Inserendo degli spazi si puo' evitare dei CR improprii.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie Piero

    Codice PHP:
    session_start();
    if (!isset(
    $_SESSION['layout'])) {
        
    $_SESSION['layout']= "invernale"
    }  elseif (isset(
    $_GET['layout'])){
        
    $_SESSION['layout'] = $_GET['layout'];
        
    header("Location: [url]http://[/url]".$_SERVER['SERVER_NAME'].$_GET['KT_back']."");
    }

    echo 
    "Layout attuale: ".$_SESSION['layout']."";
    echo 
    "
    "
    ;

    if(
    $_SESSION['layout'] == "estivo") {
    echo 
    "<a href=\"".$_SERVER['PHP_SELF']."?layout=invernale&KT_back=".urlencode($HTTP_SERVER_VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout invernale</a>";} elseif(
    $_SESSION['layout'] == "invernale") {
    echo 
    "<a href=\"".$_SERVER['PHP_SELF']."?layout=estivo&KT_back=".urlencode($HTTP_SERVER_VARS['PHP_SELF']."?".@$HTTP_SERVER_VARS['QUERY_STRING'])."\">cambia in layout estivo</a>";} 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.