Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    7

    Gestire il comportamento del sito se i cookie non sono attivi

    Buon giorno a tutti,

    avrei una domanda da porre ... mi servirebbe sapere se usando php, js e ajax (ajax ancora non lo conosco) è possibile fare una cosa di questo genere:

    1) Ogni volta che viene aperto il sito avviene un controllo sul cookie del utente e se esiste viene riconosciuto con tutte le mecchaniche del caso.
    2) Se il cookie non c'è si verifica se il browser li supporta inviandone uno di prova e, in caso affermativo:
    2.1) Si procede in modo normale
    altrimenti
    2.2) Appare un popup dove c'è scritto qualcosa tipo cookie non supportati ecc...
    3) Quale che sia l'evento del punto due l'eseguzione del programma continua normalmente con la sola eccezione che non si potrà godere dei servizi dei cookie.

    In php basta una semplicissima classe, o una semplice funzione, per ottenere l'effetto desiderato tuttavia, poichè i cookie vengono letti dopo aver ricaricato la pagina, è necessario un refresh della stessa o inviare una variabile con GET al url ma questa seconda opzione vingola poi il visitarore a dover ridigiatare l'url iniziale con l'iconveniente di trovarsi sempre allo stesso punto.

    Alcuni esempi.

    Semplice controllo dei cookie:

    Codice PHP:
    <?php

    if (!isset($_COOKIE['username'])) { // Verifico il cookie del utente

        // Se non è settato invio un cookie di test
            
    setcookie test'test' );
                 
            
    // Mi riparo dalle vulnerabilita di PHP_SELF
            
    $redirect htmlentities(substr($_SERVER['PHP_SELF'], 0,  strcspn($_SERVER['PHP_SELF'], "\n\r")), ENT_QUOTES);

        
    $php_self $redirect;
         
            
    // Ricarico la pagina
            
    header('Location:' $php_self);
    }

    if (!isset(
    $_COOKIE['test'])) { // Se non è settato il cookie di prova il browser non li accetta

        // Avviso l'utente (con un echo o un javascript).
        
    echo "Il browser non accetta i cookie";

        } else {

        echo 
    "Il browser accetta i cookie";

    }

    ?>
    In questo modo riesco a controllare i cookie ma sono vincolato a un refresh (oltre al fatto che in questo esempio ho anche l'errore perchè gli header sono già stati inviati dalla funzione setcookie).

    Grazie per le risposte

  2. #2
    Utilizza le sessioni abilitando il trans-sid. In questo modo puoi tenere traccia dell'informazione sul supporto dei cookie senza dover riscrivere "manualmente" tutti gli URL per aggiungere il parametro.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    7
    Ciao grazie per la risposta ...

    In realtà quello che volevo fare era solo avvisare l'utente che non ha i cookie abilitati e proseguire con il programma senza per questo dover fare un refresh di pagina.

    Più o meno l'effetto che si potrebbe ottenere con:

    Codice PHP:
    <script language="javascript">
       function 
    ceckCookie () {
          
    ceckcookie navigator.cookieEnabled;
             if ( 
    ceckcookie == true ) { 
                
    alert 'Cookie Abilitati' );
             } else {
                
    alert (' Cookie Non Abilitati' );
             }

    oppure:

    Codice PHP:
    if (!navigator.cookieEnabled) {
       
    alert 'Cookie Non Abilitati' );

    In due parole il tipo di funzionamento dovrebbe essere quello dei due esempi qua sopra che però sono un pò deboli e non del tutto affidabili come sappiamo. In pratica mi serve un semplice controllo che avvisa l'utente che non ha i cookie abilitati e poi se ne frega sino a che la pagina non viene ricaricata dove per ricaricata non intendo ritornare indietro o alla index o altra pagina che richiama questo controllo perchè mantengo le impostazioni con le sessioni ma chiuso e riaperto il browser.

    Ciao

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.