Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    67

    Problema cancellazione cookie

    Salve,ecco il mio problema,sul mio sito ho inserito una parte personale accessibile tramite login,al login effettuato creo un cookie e fin qui tutto bene

    if (($user=='user') and ($psw=='password')){
    setcookie("ilcookie","admin",time()+3600,"/sito","sito.altervista.org");
    Header( "Location: admin.php" );
    }else{Header( "Location: privata.php?pop=1212" ); };

    ma quando devo sloggare non mi funziona...il codice che utilizzo è il seguente

    setcookie("ilcookie");
    Header( "Location: index.php" );

    con FF e Chrome mi rimanda alla index ma se premo il bottone indietro del browser mi fa rientrare nella pagina admin.php come se il cookie esistesse ancora,mentre con IE non mi fa assolutamente nulla,non mi rimanda nemmeno alla index

    ho provato a cancellare tt i cookie e ad entrare direttamente nell'area admin.php e con tutti e 3 i Browser vengo rispedito alla index(almeno questo va )

    Help me please

  2. #2
    Ciao, prova così:

    Codice PHP:
    $cookie session_get_cookie_params();
    session_destroy();
    setcookie("ilcookie"
        
    false
        
    $cookie['lifetime'], 
        
    $cookie['path'], 
        
    $cookie['domain'], 
        
    $cookie['secure']); 
    Nota bene che setcookie() fallisce se c'è dell'output prima della sua chiamata.


  3. #3
    Fai cosi al logout:
    codice:
    setcookie("ilcookie","admin",time()-3600,"/sito","sito.altervista.org");
    Inoltre ti consiglierei di impostare il cookie come http only cosi è piu sicuro
    codice:
    setcookie("ilcookie","admin",time()+3600,"/sito","sito.altervista.org",0,1);

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    67
    Ragazzi niente da fare...dato che non riesco a distruggerlo ho pensato di gestire il log utente cambiando valore al cookie

    cosi lo creo e ridirigo il visitatore alla pagina

    setcookie("miosito","user",time()+3600,"/dir","dominio.it",0,1);
    Header( "Location: user.php" );

    dentro user.php controllo l'esistenza e il valore del cookie

    if($_COOKIE['miosito']== "user"){
    include'page.html';}else{Header( "Location: privata.php?pop=1212" );};

    ma vengo sempre reindirizzato a privata.php

    quindi mi e venuto il dubbio e ho stampato a video il valore del cookie che ho notato rimane sempre "UNDEFINED"

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Allora per i cookies :

    1- in fase di test abilitare sempre tutti gli errori inserenedo error_reporting(E_ALL) ;
    2- fare molta attenzionne ai percorsi e al dominio inpostato.
    il percorso /sito fara funzionare il cookie solo in quel sottopercorse e se distruggi un cookie siile da percorso diverso ( quindi se lo script non e' dentro /sito o in una sua sottocartella) il cookie per il percorso /sito non verrà modificato.
    3- usare firefox e firecookie per testare il comportamento dei cookies pagina per pagina.
    4- distruggere i cookies settando un nuovo cookie con contenuto vuoto e expire a time()-3601

    .....................

    Gud lac

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    67
    ok provero la tua soluzione,cmq per ora avevo risolto la cosa con le sessioni ma explorer non le accetta mentre firefox e chrome si..... mistero della vita

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Le sessioni necessitano dei cookies, se i cookies sono disabilitati non partono nemmeno le sessioni. O meglio viene allocata una nuova sessione ogni volta che lanci il session start perche' non viene rilevato il cookie di sessione, e quindi(in base al tuo codice) verrà o meno gestita la cosa.

  8. #8
    Originariamente inviato da Virus_101
    Le sessioni necessitano dei cookies, se i cookies sono disabilitati non partono nemmeno le sessioni. O meglio viene allocata una nuova sessione ogni volta che lanci il session start perche' non viene rilevato il cookie di sessione, e quindi(in base al tuo codice) verrà o meno gestita la cosa.
    Non e' esatto. Il cookie e' il sistema primario per la propagazione del session id, se i cookie non sono disponibili il session id viene trasmesso come parametro nell'URL.

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    -.- certo chge funziona cosi ma propagare il sesison id serve il cookie e senza quello non fai nulla e ognui volta che fai un session_start lato server avvii una nuova sessione nel server che non verrà piu' usata e verrà deallocata a timeout.

    In soldoni quindi se hai i cookies le sessioni funzionano correttamente altimenti no. Il perche' solitamente lo si indaga poi.


    Sei sicuro che venga spedito come query string ?
    A me pare che succede solo se lo imposti te ... di base se ho cookies ok altrimenti ciccia non vanno...

  10. #10
    Originariamente inviato da Virus_101
    -.- certo chge funziona cosi ma propagare il sesison id serve il cookie e senza quello non fai nulla e ognui volta che fai un session_start lato server avvii una nuova sessione nel server che non verrà piu' usata e verrà deallocata a timeout.

    In soldoni quindi se hai i cookies le sessioni funzionano correttamente altimenti no. Il perche' solitamente lo si indaga poi.
    Ma non e' vero, le sessioni funzionano anche senza cookie.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.