[PHP] Cookie si cancella prima

Discussione in 'PHP' iniziata da Shyson, 12 Ottobre 2018.

  1. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.085
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Ho questo codice che mette la parola New sulle immagini-anteprime dei nuovi articoli, il cookie è impostato su 30 giorni, però se io aggiorno la home o se clicco un'altra anteprima-articolo anche vecchio, poi ritorno al nuovo articolo e la marcatura New è sparita. Non dovrebbe durare 30 giorni?
    PHP:
    /* Codice che marca i nuovi articoli con "New" */
    function wpb_lastvisit_the_title $title$id ) {

    if ( !
    in_the_loop() || is_singular() || get_post_type$id ) == 'page' ) return $title;

    // if no cookie then just return the title

    if ( !isset($_COOKIE['lastvisit']) ||  $_COOKIE['lastvisit'] == '' ) return $title;
    $lastvisit $_COOKIE['lastvisit'];
    $publish_date get_post_time'U'true$id );
    if (
    $publish_date $lastvisit$title .= '<span class="new-article">New</span>';
    return 
    $title;
     
    }

    add_filter'the_title''wpb_lastvisit_the_title'102);
     
    // Set the lastvisit cookie

    function wpb_lastvisit_set_cookie() {

    if ( 
    is_admin() ) return;
    $current current_time'timestamp'1);
    setcookie'lastvisit'$currenttime()+3600*24*30COOKIEPATHCOOKIE_DOMAIN ); //Dura 30 giorni

    }

    add_action'init''wpb_lastvisit_set_cookie' );
    CSS
    Codice:
    /* Formatta la parola "New" dei nuovi articoli */
    .new-article {
        background: #feffdd;
        font-size: 1.2em;
        color: #ff0000;
        padding: 3px;
        margin-left: 10px;
        border: 1px solid #eeefd2;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
    }
     
    Ultima modifica di un moderatore: 12 Ottobre 2018
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    556
    Mi Piace Ricevuti:
    26
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Prova così
    PHP:
    setcookie('lastvisit',strtotime'+30 days' ) ,'/');
     
  3. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.085
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sembra andare meglio. Voglio fare una prova: cosa scrivo se voglio farlo scadere dopo un minuto?
    Poi, dove si memorizza il cookie? Ho guardato nei cookie di Safari che uso e nel db ma non lo trovo.
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    556
    Mi Piace Ricevuti:
    26
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    PHP:
    strtotime'+60 second' );
     
  5. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.085
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Non sparisce più anche se aggiorno la pagina.
    PHP:
    function wpb_lastvisit_set_cookie() {
    if ( 
    is_admin() ) return;
    $current current_time'timestamp'1);
    setcookie('lastvisit',$currentstrtotime'+5 seconds' ) ,'/');
    }
     
    Ultima modifica di un moderatore: 12 Ottobre 2018
  6. Max 1

    Max 1 Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    29 Febbraio 2012
    Messaggi:
    3.363
    Mi Piace Ricevuti:
    257
    Punteggio:
    83
    Sesso:
    Maschio
    @Shyson
    Quando posti codice PHP devi usare il TAG php.png non il tag code.gif Te lo ho corretto anche nel primo post sperando che capissi!
     
  7. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    556
    Mi Piace Ricevuti:
    26
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    .... prima hai usato quello a 30 gg???? come fa a sparire adesso? cancella il cookie e prova...!
     
  8. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.085
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    L'ho già fatto, ma non so nemmeno dove si memorizza.
     
Sto caricando...

Condividi questa Pagina