Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181

    sessioni e cookie: ho già seguito vs consigli

    ciao,
    e scusate la rottura su un argomento che sarà ormai visto e rivisto e ristravisto ancora ma...

    ho creato su una pagina riservata il link per il LOGOUT, script che contiene le seguenti righe di codice:

    Codice PHP:
    setcookie("PHPSESSID"""time() - 3600);
    session_start();
    $_SESSION = array();
    session_unset();
    session_destroy();
    header("location:[url]http://www.blabla.com/area/login.php[/url]]"); 
    come da voi consigliatomi, soltanto che quando clicco su tale link, il browser mi porta alla pagina di login, ma senza cancellarmi il cookie, e di fatto, scrivendo sulla barra degli indirizzi la pagina che dovrebbe essere personale, questa mi viene aperta...

    come posso agire?
    Immagini allegate Immagini allegate
    -- John --

  2. #2
    Richiama http://www.php.net/session_write_close prima di header location.
    L'header location DEVE contenere un URL assoluto, NON un link HTML.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    ora ci provo , grazie filippo.

    a proposito, so che nella location ci va l'indirizzo assoluto, ma è importando il codice con il tag del forum che ti mette quella roba il più...
    -- John --

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    ho provato, non funziona: mi rimane quel dannato cookie...

    e mi si riapre la pagina riservata...
    -- John --

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    le ho provate tutte, credo, non mi si elimina sto benedetto cookie PHPSESSID...

    Codice PHP:
    // codice di logout.php
    session_start();
    setcookie(session_name(), "");
    unset(
    $_COOKIE['PHPSESSID']);
    $_SESSION = array();
    session_unset();
    session_destroy();
    session_write_close();
    header("location:login.php"); 
    non mi sembra ci siano state soluzioni negli altri thread... che faccio?
    -- John --

  6. #6
    Per distruggere il cookie di sessione è sufficiente:

    Codice PHP:
    session_start();
    setcookie(session_name(), ""time() - 3600); 
    Comunque, perchè vuoi distriggerlo per forza? Non ti basta cancellare il contenuto della sessione?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    io ti ringrazio per la pazienza.. ma fidati, le ho già provate entrambe.

    prima il discorso
    Codice PHP:
    session_start();
    setcookie(session_name(), ""time() - 3600); 
    come ho già visto in molti esempi, poi mi bastava anche solo svuotarla, ma nada.. sn veramente incacchiato de brutto...
    -- John --

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    e comunque non me lo svuotava con quei comandi... che tristezza..
    -- John --

  9. #9
    Ti suggerisco di studiare questo codice:

    Codice PHP:
    <?php 

    $_GET
    ['destroy'] = isset($_GET['destroy']) ? $_GET['destroy'] : 0;

    if (
    $_GET['destroy'] == 0) {
        
    session_start();
        
    $_SESSION['test'] = time();
        print(
    '<pre>');
        print(
    session_name() . ' = ' session_id() . "\r\n");
        print(
    '$_SESSION = ');
        
    print_r($_SESSION);
        print(
    '</pre>');
        print(
    '[url="?destroy=1"]destroy[/url]');
    } elseif (
    $_GET['destroy'] == 1) {
        
    session_start();
        
    $_SESSION = array();
        
    session_destroy();
        
    session_write_close();
        
    header('Location: ' $_SERVER['PHP_SELF'] . '?destroy=2');
    } elseif (
    $_GET['destroy'] == 2) {
        
    session_start();
        print(
    '<pre>');
        print(
    '$_SESSION = ');
        
    print_r($_SESSION);
        print(
    '</pre>');
    }

    ?>

  10. #10
    In merito alla distruzione del cookie, studiati questo:

    Codice PHP:
    <?php 

    $_GET
    ['destroy'] = isset($_GET['destroy']) ? $_GET['destroy'] : 0;

    if (
    $_GET['destroy'] == 0) {
        
    session_start();
        print(
    '<meta http-equiv="refresh" content="0;URL=?destroy=1">');
    } elseif (
    $_GET['destroy'] == 1) {
        
    session_start();
        print(
    '<pre>');
        print(
    '$_COOKIE = ');
        
    print_r($_COOKIE);
        print(
    '</pre>'); 
        print(
    '[url="?destroy=2"]destroy[/url]');
    } elseif (
    $_GET['destroy'] == 2) {
        
    session_start();
        
    setcookie(session_name(), ""time() - 3600);
        print(
    '<meta http-equiv="refresh" content="0;URL=?destroy=3">');
    } elseif (
    $_GET['destroy'] == 3) {
        print(
    '<pre>');
        print(
    '$_COOKIE = ');
        
    print_r($_COOKIE);
        print(
    '</pre>'); 
    }

    ?>

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.