Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con il logout

  1. #1

    Problema con il logout

    Ciao a tutti.
    Ho un problema con lo script di login e logout che ho creato, questo script utilizza i cookie, ed è molto semplice.
    Il problema sorge quando provo a fare il logout, infatti mentre il cookie dovrebbe essere cancellato e si dovrebbe caricare la schermata col form di identificazione, questo non avviene. Sapete dirmi il perchè ?
    Vi allego il file, vi prego aiutatemi...

    <?php
    require("config.php");
    $conn=mysql_connect($host,$user,$pass);
    mysql_select_db($database);
    $query=mysql_query("SELECT * FROM $tab_utenti");
    $app=0;
    if(isset($_COOKIE[$nome_cookie])){
    $cookie=$_COOKIE[$nome_cookie];
    $username=strtok($cookie,"%%");
    $password=strtok("%%");
    setcookie($nome_cookie,$cookie,time()+172800);
    while($riga=mysql_fetch_array($query)){
    if($username==md5($riga['username']) && $password==md5($riga['password'])){
    $app=1;
    break;
    }
    }
    if($app==1){
    echo"Area riservata

    ";
    echo"<a href=\"index.php?logout=1\">Logout</a>";
    }else{
    header("Location: index.php");
    }
    }elseif(isset($_POST['user']) && isset($_POST['pass'])){
    while($riga=mysql_fetch_array($query)){
    if($riga['username']==$_POST['user'] && $riga['password']==$_POST['pass']){
    $cok=md5($riga['username'])."%%".md5($riga['password']);
    setcookie($nome_cookie,$cok,time()+172800);
    echo"Area riservata

    ";
    echo"<a href=\"index.php?logout=1\">Logout</a>";
    $app=1;
    break;
    }
    }
    if($app==0){
    header("Location: index.php");
    }
    }elseif(isset($_GET['logout']) && $_GET['logout']==1){
    setcookie($nome_cookie);
    header("Location: index.php");
    }else{
    echo"<form method=\"post\" action=\"index.php\">";
    echo"user : <input type=\"text\" name=\"user\">
    ";
    echo"pass : <input type=\"password\" name=\"pass\">
    ";
    echo"<input type=\"submit\" value=\"Login\">";
    echo"</form>";
    }
    ?>

    Vi ringrazio in anticipo x l'aiuto...

  2. #2
    credo tu debba rivedere qualcosa del tuo script.

    non dovresti estrarre tutti i nomi/pwd dalla tabella utenti a priori, senza sapere se il form e' stato compilato o meno.

    Quindi prima controlla se $_POST e' valorizzato, se non lo e' mandi direttamente al form, se lo e' processi i dati. Pero' senza estrarre tutto dal db, ma verificando se nel db esiste tale user e tale pass....

    Visto poi che usi comunque i cookies, penso potresti prendere in considerazione l'uso di SESSION.
    Cfr. manuale

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Grazie piero.mac x l'aiuto cmq ho risolto il problema ora lo script funziona correttamente era un corntrollo che non andava.
    Cmq vorrei fare l'area riservata, adoperando le sessioni, mi potresti aiutare ?
    Utilizzando sessioni e cookie cosa dovrei mettere nelle sessioni e cosa nei cookie.
    Grazie, ciao...

  4. #4
    il cookie viene generato e letto in automatico in accordo all'impostazione definita nel file php.ini.

    per inizializzare una sessione userai session_start() da inserire all'inizio di ogni pagina da riservare, e nell'array di sessione $_SESSION metterai i dati che vorrai passare di pagina in pagina.

    Leggiti il manuale linkato e le note che trovi nella sezione [session] del php.ini, sono abbastanza chiare ed esplicative.

    una ricerca sui thread che parlano di sessione sarebbe pure auspicabile. Rivedi in ogni caso, per tua sicurezza, lo script che utilizzi per l'autenticazione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Grazie piero.mac mi sei stato di grande aiuto...

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.