Visualizzazione risultati 1 fino 15 di 15

Discussione: [Cookie] Non viene cancellato nel logout Oo

  1. #1
    Guest

    Predefinito [Cookie] Non viene cancellato nel logout Oo

    Ciao a tutti!
    Ultimamente mi sto un po' dilettando col PHP, più precisamente l'argomento del periodo sono i Cookies.
    Ovviamente sto avendo un problema...
    Ho provato un semplice login che apre un cookie in questa maniera:
    Codice:
    setcookie("login", "logged", time() + 1800);
    Funziona perfettamente, così come funziona il codice di controllo del cookie su una pagina di una cartella, che mi da una riga di errore se il cookie non è impostato.
    Tuttavia non riesco a fare il logout. Secondo il manuale del PHP dovrei scrivere semplicemente:
    Codice:
    setcookie("login");
    Il che non funziona.
    Facendo una ricerca qui nel forum ho trovato un altro codice che speravo funzionasse (ed ovviamente non va):
    Codice:
    setcookie("login", "logged", time() - 1800);
    Quindi mi trovo a dover attendere che il cookie scada... mentre io vorrei che al click di logout il cookie se ne vada e basta...
    C'è qualche santo disposto ad aiutarmi? :D Sto sclerando, e come se non bastasse si tratta di una cosa che faccio per un amico! ^^

    Grazie mille in anticipo!
    Ciao!

  2. #2
    Guest

    Predefinito

    il codice è giusto ma dove lo stai usando?

    ciao ^__^

  3. #3
    Guest

    Predefinito

    In locale sul mio PC ^^
    Lo script per il login si trova nella root, e redireziona verso una cartella. Qui c'è il codice per il logout
    Possibile che sia un problema relativo al fatto che giace sul mio PC? oO

  4. #4
    Guest

    Predefinito

    posta lo script completo...

    ciao ^__^

  5. #5
    Guest

    Predefinito

    Codice:
    login.php
    $username = $_POST["username"];
    $password = $_POST["password"];
    
    include "./connect.php";
    $connect = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die("Impossibile stabilire una connessione al database SQL");
    $database = mysql_select_db($mysql_data);
    $query = mysql_query("SELECT * FROM utenti");
    while ($riga = mysql_fetch_object($query)) {
      if ($username == $riga->user AND $password == $riga->pass) {
        setcookie("login", "logged", time() + 1800);
        header("Location: admin/");
    } else {
      include "./includes/head.php";
      echo "<title>Login non riuscito</title>\n</head>\n\n";
      include "./includes/header.php";
      echo "\n\n<td class=\"content\"><span style=\"font-weight: bold; font-size: 11px; text-transform: uppercase;\"><center>LOGIN NON EFFETTUATO: DISCREPANZA NEI DATI</center></span>";
      include "./includes/footer.php";
     }
    }
    mysql_free_result($query);
    mysql_close($connect);
    Codice:
    logout.php
    $destroy = setcookie("login", "logged", time() - 1800);
    
    if ($destroy == 1) {
      include "../includes/head.php";
      echo "<title>Pannello di amministrazione sito</title>\n</head>\n\n";
      include "../includes/header.php";
      echo "\n\n<td class=\"content\">\n<table class=\"prodotti\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">\nLogout effettuato correttamente.<br />\nCliccare <a href=\"../index.php\">qui</a> per tornare alla home del sito.";
      include "../includes/footer.php";
    } else {
      include "../includes/head.php";
      echo "<title>Pannello di amministrazione sito</title>\n</head>\n\n";
      include "../includes/header_admin.php";
      echo "\n\n<td class=\"content\">\n<table class=\"prodotti\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">\nNon &egrave; stato possibile effettuare il logout";
      include "../includes/footer.php";
    }
    ^^

  6. #6
    Guest

    Predefinito

    prova a impostare il cookie con valore vuoto
    Codice PHP:
    setcookie ("login", "", time() - 1800);

  7. #7
    Guest

    Predefinito

    questo lo uso in uno script qui su AV e funziona bene:

    Codice PHP:
    $cookie = 'sms_ldv';
    setcookie($cookie, $_COOKIE['sms_ldv'], time()-(3600 * 24 * 100));

  8. #8
    Guest

    Predefinito

    Purtroppo ho trovato un ennesimo errore, ragion per la quale lo script, online, è impossibilitato a partire, e al tempo stesso i due codici che avete postato per i Cookies non agiscono bene in locale.
    Dal momento, però, che il sito non richiede un elevatissimo livello di sicurezza, a questo punto posso utilizzare un sistema più banale per il login.
    Vi ringrazio comunque per l'aiuto fornito
    Ciao! :D

  9. #9
    Guest

    Predefinito

    E' più corretto passare un valore vuoto, come scritto da Joernano.


    Ciaoooo!!!!!

  10. #10
    Guest

    Predefinito

    Continuo a provare, ma nessuno dei due metodi funziona né in locale né tantomeno su Altervista... sarò scemo io? XD

  11. #11
    Guest

    Predefinito

    Prova così per settarlo:
    setcookie ("login","fatto",time()+1800,"/");

    e così per cancellarlo:
    setcookie ("login","",time()-3600,"/");

    Come effettui il controllo se il cookie esiste o meno?


    Ciaooooo!!!!
    Ultima modifica di debug : 25-02-2006 alle ore 21.34.54

  12. #12
    Guest

    Predefinito

    Una sola parola per esprimere la mia gratitudine:
    MERAVIGLIOSO
    Veramente grazie! :D Ora funziona finalmente tutto! :D
    Per quanto riguarda il controllo, lo posto di seguito, giusto per...
    Codice:
    if(isset($_COOKIE["login"])) { } else { }
    Ora sono felice!!! :D Una ventata di freschezza nella pagina! :D
    Grazie ancora! :D
    Ciao!

  13. #13
    Guest

    Predefinito

    come hai risolto?

  14. #14
    Guest

    Predefinito

    Come diceva Debug, inserendo il path "/" e raddoppiando il tempo per il logout (a 3600 secondi).
    Colgo l'occasione per ringraziarvi ancora una volta, senza il vostro aiuto mi sarei trovato a dover salvare nome utente e password in un file ^^
    Ciao! :D

  15. #15
    Guest

    Predefinito

    figurati hombre!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •