Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Sto incasinato fra $_SESSION e cookie ...

    Dunque, cercherò di semplificare il discorso ...
    Ho un sito che si apre sulla pagina index.php, richiamata in seguito più volte.
    All'inizio, ho inserito:
    ------------------------
    <?php
    session_start();
    if (empty($_SESSION['count']))
    { $_SESSION['count'] = 1; }
    else
    {
    $_SESSION['count']++;
    }
    if ($_SESSION['count'] <2 )
    { header("location: http: ..............intro.php"); }
    ?>
    ------------------------
    in modo da mostrare al nuovo visitatore prima una pagina "intro".
    Il sito è totalmente visitabile, senza problemi: per aggiungere un commento però è necessario loggarsi (o registrarsi).
    Nella relativa pagina, dopo i controlli di rito, ho inserito:
    ------------------------
    <?php
    if ($flag == 1) //se il login è andato a buon fine ...
    {
    setcookie("prova",$nome, time()+180); //cambiato a 3600 quando operativo
    $loc="index.php";
    echo ("<script>window.location='$loc'</script>"); }
    ?>

    Per finire, sempre nella pagina index.php c'è una parte di codice che non mostra il form dei commenti se non è stato settato il cookie:
    <?php
    if (isset ($HTTP_COOKIE_VARS["prova"]) )
    { //mostra il form dei commenti
    }
    else
    { // invia alla pagina di login
    }

    Beh, mi sembrava tutto logico, semplice .... ma non funziona!!
    Se provo infatti a leggere i valori del cookie con l'istruzione:
    if (isset ($HTTP_COOKIE_VARS) )
    { while (list ($nome, $valore) = each ( $HTTP_COOKIE_VARS ) )
    { echo "$nome = $valore\n"; } }

    mi ritrovo il seguente rigo:
    br429630 = 0 pr429630 = 3 PHPSESSID = 6c434958428f334e6cfcd769e938772a

    A questo punto, non ci capisco più nulla: anche perché, volendo cancellare il cookie impostato, non lo trovo da nessuna parte e con nessun nome ... dove sbaglio?
    E c'era per caso un altro sistema più semplice per ottenere lo stesso risultato?

    Graze anticipatamente a chi potrà aiutarmi.

  2. #2
    Ciao,
    $HTTP_COOKIE_VARS è deprecata...
    dovrestri usare $_COOKIE

  3. #3
    Fatto, ho cambiato gli $HTTP_COOKIE_VARS["prova"] con $HTTP_COOKIE["prova"] ... ma il risultato non cambia: la lettura del cookie (che risulta presente anche ben oltre i 3 minuti di impostazione) dà sempre:
    br429630 = 0 pr429630 = 7 visit429630 = 2 PHPSESSID = b7312320303c695f6f3f105c0a01c0b6

    ?!?

  4. #4
    Ehm
    certo che il risultato non cambia, la mia era solo un'avvertenza non entravo in merito al codice...

  5. #5
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Perché vuoi usare un cookie, quando puoi memorizzare il dato nella sessione?

  6. #6
    La sessione mi occorre per indirizzare il nuovo arrivato ad una pagina "intro", prima di accedere al sito; il cookie invece lo utilizzerei per consentire l'accesso a determinate aree SOLO a chi si è anche loggato (o registrato).
    Almeno, questa mi era sembrata la soluzione migliore ... o no?

  7. #7
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Te lo dico in un altro modo: non utilizzare i cookie, utilizza la sessione.

  8. #8
    Scusami, sono duro di comprendonio: mi spieghi meglio allora come fare, con un esempio?
    Grazie.

  9. #9
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Sai già come memorizzare una variabile in sessione (l'hai già fatto).
    Sai anche come controllare che una variabile esista in sessione (l'hai già fatto).
    Cosa devo spiegarti?

  10. #10
    Scusa, ma evidentemente continuo ad essere incasinato.
    Con $Session, mi limito a dire al programma: "se è stata aperta una sessione, non tornare più a visualizzare la pagina "intro", ma vai direttamente ad "index" ... giusto?
    Ora, come faccio a dirgli "se chi sta navigando ha ANCHE fatto il login, permettigli l'accesso a funzioni che ora gli sono vietate (aggiungere commenti) ?

    Forse mi sfugge un uso di $Session più evoluto di quello che faccio io ... è possibile aggiungervi delle altre variabili?

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.