Salve a tutti, vorrei un parere su questo sistema di login realizzato tramite database, qualche consiglio sulla sua affidabilità, ecc. Questo è il codice della pagina di login:
Codice PHP:
$sid $_COOKIE['sid'];
if (
is_null($sid)) {
    if (!isset(
$_POST['login'])) {/* visualizzo il form di login */}
    else {
        
mysql_connect("localhost","root","");
        
mysql_select_db("babylonia");
        
$username = (string) mysql_escape_string(strtolower(trim($_POST['username'])));
        
$password = (string) mysql_escape_string(strtolower(trim($_POST['password'])));
        
$sql_query mysql_query("SELECT uid,password,status FROM user WHERE username='".$username."'");
        
$sql_array mysql_fetch_assoc($sql_query);
        if (
mysql_num_rows($sql_query) < 1) {echo "nessun utente con questo username";}
        elseif ((int) 
$sql_array['status'] < 2) {echo "utente non autorizzato";}
        else {
            if (
md5($password) == $sql_array['password']) {
                list(
$usec$sec) = explode(' 'microtime());
                
mt_srand((float) $sec + ((float) $usec 100000));
                
$sid md5(uniqid(mt_rand(), true));
                if (
$_POST['cookie'] == "ok") {$expire = (int) time()+31536000;}
                else {
$expire = (int) 0;}
                if (
mysql_query("INSERT INTO session (sid, uid, date) VALUES ('".$sid."', '".$sql_array['uid']."', ".time().")") && setcookie("sid",$sid,$expire)) {echo "utente loggato";}
                else {
"echo login fallito";}
            }
        }
    }

La variabile $_POST['cookie'] mi informa se l'utente ha scelto di mantenere i dati di logn anche dopo la chiusura del browser... In un file incluso in tutto il sito metto questo:
Codice PHP:
$sid $_COOKIE['sid'];
if (!
is_null($sid)) {
    
mysql_connect("localhost","root","");
    
mysql_select_db("babylonia");
    
$sql_query mysql_query("SELECT U.* FROM session S, user U WHERE S.uid = U.uid and S.sid = '".$sid."'");
    if (
mysql_num_rows($sql_query) !== 1) {echo "errore";}
    else {
$_USER mysql_fetch_assoc($sql_query);}

In modo da ritrovarmi in $_USER i dati dell'utente se questo è loggato. Poi, facendo un controllo su $_USER, stabilisco se l'utente è loggato ed ha un livello sufficiente per visualizzare la pagina in questione. Il logout l'ho fatto così:
Codice PHP:
$sid $_COOKIE['sid'];
if (!
is_null($sid)) {
    
mysql_connect("localhost","root","");
    
mysql_select_db("babylonia");
    if (
mysql_query("DELETE FROM session WHERE sid = '".$sid."'") && setcookie("sid","",time()-31536000)) {echo "logout ok ";}

Dunque, cosa ne pensate?