Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957

    Sessioni con cookie o con GET?

    Ciao a tutti,
    devo utilizzare le sessioni, ma per evitare di escludere i client senza cookies sono costretto ad impostare una variabile get sui link.

    Vorrei però sapere se la variabile get è strettamente necessaria (l'utente non ha i cookies), in caso contrario eviterei di metterla nei link, quindi mi serve un sistema che controlli se esiste $_COOKIE["PHPSESSID"] in caso affermativo apra la sessione session_start(), in caso negativo recupero l'id da una variabile e apre la sessione: session_id($_GET["PHPSESSID"]); session_start();

    Il problema è che se leggo i cookie, poi non posso aprire la sessione perchè ha già mandato gli header al client! Come posso risolvere?

    Grazie

  2. #2
    Se il tuo problema è solo quello di passare l'id di sessione solo per i client con i cookie disattivati ti basta fare una cosa del genere

    pagina1.php
    Codice PHP:
    <?php
    session_start
    ();

    $_SESSION['link'] = "html.it";

    if(isset(
    $_COOKIE['PHPSESSID']))
        echo 
    "[url='pagina2.php']Pagina 2[/url]";
    else
        echo 
    "[url='pagina2.php?SID=" session_id() . "']Pagina 2[/url]";

    ?>
    pagina2.php
    Codice PHP:
    <?php
    if(isset($_GET['SID']))
        
    session_id($_GET["SID"]);
        
    session_start();
    echo 
    $_SESSION['link'];
    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    ...mmmh e se dovessi farlo in una unica pagina? E' possibile?

  4. #4
    E' la stessa cosa
    Codice PHP:
    <?php
    if(isset($_GET['SID']))
        
    session_id($_GET["SID"]); 

    session_start();

    if(isset(
    $_SESSION['link'])) echo $_SESSION['link'] . "
    "
    ;

    $_SESSION['link'] = "html.it";

    if(isset(
    $_COOKIE['PHPSESSID']))
        echo 
    "[url='index.php']Aggiorna[/url]";
    else
        echo 
    "[url='index.php?SID=" session_id() . "']Aggiorna[/url]";

    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    fantastico, grazie!

    Da qualche parte ho letto che php tenta in automatico di prendere il sid via cookies o via get... ma che variable get prende in automatico, io ho provato e non mi risulta!

    Altra cosa, ponendo che io voglia condividere la sessione tra due utenti, posso far partire la sessione ai due utenti mettendo lo stesso id?

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.