Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Gestire pagine con login necessario

    Sto realizzando un sito in cui alcune pagine possono essere viste solo dagli utenti registrati.
    Per ora salvo il login su un cookie e all'apertura di queste pagine controllo se il cookie è presente o meno.
    Però questo modo non funziona se un utente non accetta il cookie.

    Mi potete spiegare in poche parole quale è il modo corretto per fare questo?

    Grazie

  2. #2
    invece di salvare la login su un cookie, salvala in una variabile di sessione e quindi il controllo lo fai su questa variabile

  3. #3
    Originariamente inviato da pakylory
    invece di salvare la login su un cookie, salvala in una variabile di sessione e quindi il controllo lo fai su questa variabile
    quoto, i cookie hanno altri usi, e soprattutto su alcuni browser possono essere disabilitati.
    creati come ha detto pakylory una variabile di sessione e facci li il controllo.

    ps ti consiglio tutte le volte di fare il controllo magari su $_SESSION['password']==$rec['password'];
    dove $rec password è la password estratta dal db in md5

  4. #4
    Ok, grazie mille per i consigli

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    141
    Originariamente inviato da ultrasflavio
    quoto, i cookie hanno altri usi, e soprattutto su alcuni browser possono essere disabilitati.
    creati come ha detto pakylory una variabile di sessione e facci li il controllo.

    ps ti consiglio tutte le volte di fare il controllo magari su $_SESSION['password']==$rec['password'];
    dove $rec password è la password estratta dal db in md5
    Io devo fare la stessa cosa ma non ho capito dove devo fare il controllo.
    Ho una pagina (login.php) nella quale c'è solamente una form nella quale digitare la password che viene memorizzata in $password. La form rimanda alla pagina autentica.php la quale esegue questa query: $query = "SELECT password FROM utente";
    e la memorizza nella sessione: $_SESSION['password']==$query;
    il controllo dovrebbe essere: $_SESSION['password']==$password

    è giusto il procedimento che ho usato?
    dove devo fare il controllo? in autentica.php?

  6. #6
    Direi proprio che non è giusto!
    Considera che con l'istruzione $_SESSION['password']==$query; tu di fatto rendi visibile la password esatta, quella che hai salvato nel database. Infatti la estrai per salvarla sulla variabile di sessione.
    Per stare nel tema del tuo esempio i passi corretti sono:
    1) $query = "SELECT password FROM utente";
    2) controllo della condizione $password==$query
    Quindi prima estrai la password dal database e confronti la password estratta (quella schematizzata con $query) con la password inserita dall'utente nel form di login.
    Se coincidono puoi pensare di salvare un qualcosa come variabile di sessione.
    In questo modo salvi la password a un utente che la conosce di certo, nel modo che proponi tu la salvi a chiunque tenti di fare il login.

    Tuttavia ti consiglio di pensare di sostituire il salvataggio della password in chiaro nel tuo database con password trattate ad esempio dalla funzione MD5 di MySQL. Fai una ricerca sul forum per dettagli maggiori.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    141
    <?
    session_start();
    include("config.utente.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query = "SELECT password FROM utente";
    $result = mysql_query($query, $db);
    if ($result)
    {echo "La query è stata effettuata correttamente";
    }
    else
    {
    echo "Erorre durante la query";
    }
    while ($row = mysql_fetch_array($result))
    {
    if($row[password]==$password)
    {
    $url="formInserisci.php";
    }
    else
    {
    $url="errore.php";
    }
    }
    mysql_close($db);
    header("Location: ".$url);
    exit;
    ?>
    Ho usato questo codice, però se io apro la pagina formInserisci.php dalla barra degli indirizzi senza essermi autenticato riesco ad accedervi, come posso fare un controllo per evitare che si possa bypassare l'autenticazione?

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.