Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    67

    Il tuo browser accetta i cookies? Magari riuscire a saperlo con certezza!

    Un saluto a tutti

    Sto cercado di capire se il browser di un visitatore ha o meno i cookie abilitati, nel caso siano disabilitati dovrei inviarlo ad una pagina di spiegazione dove lo invito ad abilitarli per usufruire dei servizi offerti.

    Ho tentato con javascript ma niente, non riesco a farlo funzionare. Ho anche postato sul forum specifico ... se volete dare uno sguardo per capire il problema:
    http://forum.html.it/forum/showthrea...readid=1156693


    Ora leggendo la guida PHP su HTML.it mi sono imbattuto in una parte di codice che riporto e che ho testato sia con FF sia con IE (ovviamente in remoto). Ebbene FF sembra rispondere correttamente mentre con IE niente da fare, per fare in modo che lo script funzioni devo sempre andare a cancellare tutti i cookie da IE (quelli in memoria) altrimenti, anche se decido di non accettare i cookie per il mio sito lo script mi da come risultato che il browser accetta i cookie!!

    Oltre al problema da risolvere con IE sapreste dirmi come faccio ad inviare il visitatore ad una pagina diversa se il suo browser non accetta i cookie?

    Ecco il codice che utilizzo, trovato su HTML.it:

    #################
    <?php

    /***
    Se l'array $_COOKIE è vuoto possono esserci 2 ragioni:
    1) non sono ancora stati inviati cookie
    2) sono stati inviati ma il browser li rifiuta
    ***/
    if(empty($_COOKIE)){

    /***
    Se non risultano cookie e la variabile "cookieTest" (passata attraverso la query_string) non esiste, significa che ancora non ne è stato inviato alcuno.
    ***/
    if(!isset($_GET["cookieTest"])){

    $message="questo è un test" ;

    /***
    Quindi invio il cookie di prova
    ***/
    setcookie("test",$message) ;
    /***
    Effettuiamo il refresh per leggere il cookie di prova appena inviato, e "marchio" il test passando via query_string la variabile "cookieTest"
    ***/
    header("Location: ".$_SERVER["PHP_SELF"]."?cookieTest=1") ;

    }

    else{

    /***
    La variabile "cookieTest" esiste, quindi il cookie di prova è stato inviato ma evidentemente il browser lo ha rifiutato.
    ***/
    $abilitato=0 ;

    }

    }

    /***
    L'array $_COOKIE non è vuoto quindi il browser accetta i cookie
    ***/
    else{

    $abilitato=1 ;

    }



    /*-----
    Solo dimostrativo, non inserire nelle proprie pagine
    -----*/
    if($abilitato){

    echo("Il tuo browser accetta i cookie, ecco la lista di quelli presenti

    ") ;

    foreach($_COOKIE as $key=>$value){

    echo("NOME: ".$key." VALORE: ".$value."

    ") ;

    }
    }

    else{

    echo("Il tuo browser rifiuta i cookie") ;

    }

    /*-----
    fine dimostrativo
    -----*/

    ?>
    ###################

    Attendo vs chiarimenti, grazie.

  2. #2
    Utente di HTML.it L'avatar di Zweer
    Registrato dal
    Apr 2007
    Messaggi
    98
    alura, per quel che ne so io per verificare che un utente abbia o meno i cookie attivi basta che gli invii un cookie fittizio e successivamente ne verifichi la presenza...

    quindi in php basta che fai:

    codice:
    <?php
    setcookie("nome_del_cookie", "valore_assegnato");
    ?>
    (ah, tutto questo va fatto prima di spedire qualsiasi cosa scritta all'utente, quindi prima delle intestazioni html e via dicendo, ocio che anche un singolo spazio è di troppo...)

    dopo di che controlli l'avvenuta ricezione del sookie con:

    codice:
    <?php
    if($_COOKIE["nome_del_cookie"] == "valore_assegnato")
    {
          # fai il redirect alla pagina che imposta il cookie
    }
    else
    {
         # fai il redirect alla pagina di spiegazione
    }
    ?>
    ora, ammetto che non ricordo se il cookie venga settato al momento o quando viene completata la pagina, quindi non so se tu possa mettere tutto in una pagina sola o debba dirgli di caricarne due...nel secondo caso poco male, inserisci un semplice redirect automatico e il gioco è fatto ^^

    spero di essere stato suffucientemente chiaro...in caso contrario rimango qui ^^

    ciauz
    "Il mondo è un posto meraviglioso e vale la pena di lottare per esso...Condivido la seconda parte" (Seven)
    "In un mondo dove tutti escono a denari, fortuna ci sia ancora qualcuno che carica a bastoni" (FdL)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    67
    Ok Zweer grazie dei consigli, farò una prova anche con il codice che mi hai segnalato tu ma visto che non sono un luminare di PHP, anzi sono un gran copiatore di script quando mi si presenta la necessità, saresti così gentile da postarmi il codice completo da inserire per poter testare il tutto.

    Ad esempio qui:
    # fai il redirect alla pagina che imposta il cookie
    e qui
    # fai il redirect alla pagina di spiegazione
    che codice metto?

    e qui
    "nome_del_cookie", "valore_assegnato"
    che devo mettere?

    inoltre il redirect come e dove lo metto?

    Grazie per il tuo tempo!

    Ciao

  4. #4
    Originariamente inviato da Zweer
    ...
    ora, ammetto che non ricordo se il cookie venga settato al momento o quando viene completata la pagina, quindi non so se tu possa mettere tutto in una pagina sola o debba dirgli di caricarne due...nel secondo caso poco male, inserisci un semplice redirect automatico e il gioco è fatto ^^
    ...
    il cookie non può essere settato al momento visto che viene inviato nell'header http..
    hai bisogno di due pagine

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    67
    Ho inserito questo codice leggermente modificato (recuperato su HTML.it) sembra funzionare bene anche se IE si comporta come sempre in modo incomprensibile. Sembra che il settaggio dei cookie durante la navigazione del sito (da accettati a non accettati) mandi in tilt il browser, infatti è necessario cancellare tutti i cookie dalla cache xché lo script riprenda a funzionare correttamente. Con FF nessun problema.

    Ho apportato solo qualche modifica nella parte finale dove c'è il redirect ad un'altra pagina.
    Il codice di seguito secondo voi è OK?

    ##############
    <?php

    /***
    Se l'array $_COOKIE è vuoto possono esserci 2 ragioni:
    1) non sono ancora stati inviati cookie
    2) sono stati inviati ma il browser li rifiuta
    ***/
    if(empty($_COOKIE)){

    /***
    Se non risultano cookie e la variabile "cookieTest" (passata attraverso la query_string) non esiste, significa che ancora non ne è stato inviato alcuno.
    ***/
    if(!isset($_GET["cookieTest"])){

    $message="questo è un test" ;

    /***
    Quindi invio il cookie di prova
    ***/
    setcookie("test",$message) ;
    /***
    Effettuiamo il refresh per leggere il cookie di prova appena inviato, e "marchio" il test passando via query_string la variabile "cookieTest"
    ***/
    header("Location: ".$_SERVER["PHP_SELF"]."?cookieTest=1") ;

    }

    else{

    /***
    La variabile "cookieTest" esiste, quindi il cookie di prova è stato inviato ma evidentemente il browser lo ha rifiutato.
    ***/
    $abilitato=0 ;

    }

    }

    /***
    L'array $_COOKIE non è vuoto quindi il browser accetta i cookie
    ***/
    else{

    $abilitato=1 ;

    }

    if($abilitato=1){

    header("Location: http://www.miosito.com/pagina_no_cookie.html");

    }

    ?>

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.