Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Uso di setcookie

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369

    Uso di setcookie

    Salve.

    Se non sbaglio la funzione setcookie restituisce FALSE nel caso in cui il cookie sia già settato, TRUE altrimenti.

    Io però vorrei fare un altro controllo:

    - controlla se il cookie è già settato
    - se no settalo
    - controlla se il settaggio è andato a buon fine
    - se si fai una cosa, se no fai un altra.

    L'unico modo che mi verrebbe sarebbe questo :

    Codice PHP:
    if(setcookie(/*parametri*/){

    //il cookie non esisteva

    if(setcookie(/*parametri*/){

    //al primo tentativo non sono stato in grado di settare il cookie

    }

    else {

    //il cookie è stato settato correttamente

    }


    Però non mi sembra il massimo in quanto tento di settare il cookie anche la seconda volta. fare un controllo anche su quella mi porterebbe ovviamente ad un ciclo infinito...avete consigli migliori?

  2. #2
    se setti il cookie 2 volte, la seconda volta non fai altro che sovrascrivere il valore del cookie...per verificarne l'esistenza usa la funzione isset insieme alla variabile $_COOKIE

    ex:

    if(isset($_COOKIE['nome del cookie']))
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    perfetto grazie 1000

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    Rieccomi.

    Ho fatto un codice di un contatore in questo modo :

    Codice PHP:
    function controlla_cookie($nome_cookie)  

     if (isset(
    $_COOKIE[$nome_cookie]) && time()>($_COOKIE[$nome_cookie]+3600)) 
      { 
       
    setcookie($nome_cookie,time(),time()+3600);
       if (isset(
    $_COOKIE[$nome_cookie]) && time()<($_COOKIE[$nome_cookie]+3600))
         return 
    true;
       else
         return 
    false;
      } elseif (!isset(
    $_COOKIE[$nome_cookie])) 
      { 
       
    setcookie($nome_cookie,time(),time()+3600); 
       if (isset(
    $_COOKIE[$nome_cookie]))
         return 
    true;
       else
         return 
    false;
      } else 
        return 
    false

    praticamente vorrei che il mio contatore aumentasse di uno ad ogni visitatore unico a distanza di un ora.

    il primo if controlla se esiste già un cookie e se questo è stato settato più di un'ora fa.
    -> se questo if è vero allora risetta il cookie. dopo controlla se il cookie è stato settato correttamente (per farlo devo verficare che sia stato settato meno di un'ora fa). in caso affermativo ritorna true, altrimenti false.
    -> se il primo if è falso controlla se il cookie non esiste proprio oppure è stato settato meno di un'ora fa. nel primo caso lo setta, controlla se il setting è andato a buon fine e se si ritorna true altrimenti false. nel secondo caso ritorna false.

    Ora...come mai non funziona? l'effetto di questo contatore è quello di non incrementarsi mai, in nessuno dei casi. Ovvero non si incrementa ne se un nuovo utente lo visualizza ne se un vecchio utente che non visualizzava da più di un'ora rivisualizza.

    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    piccolo up

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    l'unico dubbio che mi viene è che magari anche se è appena stato settato il cookie non viene ancora letto....boh...

  7. #7
    Originariamente inviato da alfa_19
    l'unico dubbio che mi viene è che magari anche se è appena stato settato il cookie non viene ancora letto....boh...
    Difficile avere un dubbio del genere visto quanto c'è scritto nel manuale ufficiale:

    http://www.php.net/setcookie
    Once the cookies have been set, they can be accessed on the next page load with the $_COOKIE

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    aspetta quindi on the next page load vuol dire che devo per forza aggiornare la pagina per sapere se è stato settato correttamente?

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.