Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Giudizio su sistema di login

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    è sicuramente migliore dei miei

  3. #3
    Sembra di sì!
    Marco Bianucci
    marco@phoenixweb.it
    Hosting php
    Programmazione & WebDesign

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    228

    xche'

    xche' non fare un file zip che scarichiamo gia' completo di tutto cosi' lo installiamo per bene velocemente e nel caso lo critichiamo

  5. #5
    Beh, non c'è da installare nulla, però lo script si appoggia ad un database con dei dati già inseriti. Se volete posso fare un dump delle tabelle "session" e "user" con dati fittizi fare lo zip... ditemi voi...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    228

    x me

    x me si....
    nel senso....zip bello pronto con dump tabella.
    creo cosi' la tabella con dati dentro...
    nello zip lo script citato da te inserito gia' in un contesto cioe' con il form di inserimento che magari hai ecc ecc[ nel senso nello zip che hai questo {/* visualizzo il form di login */}
    c'e' gia' pronto cosi' da poterlo testare a 360°.... :rollo:

  7. #7
    Ecco qui: http://scitrek.altervista.org/new.rar

    Sarà accessibile tra qualche ora, perchè momentaneamente Altervista sta ristrutturando...

    Vi ringrazio anticipatamente

  8. #8

  9. #9
    Ciao Scitrek. Hai fatto un buon lavoro per il login, volevo scaricarlo per confrontarlo con quello che uso io, ma il link mi sa che non funziona, mi rimanda alla home page.



    Edit: sorry funziona, bastava copiare ed incollare il collegamento nella barra degli indirizzi
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  10. #10

    login molto semplice

    io ho fatto un login tramite sessioni molto semplice, che può essere realizzato così:

    LOGIN.PHP
    Codice PHP:
    <?
    //SESSION start
    @session_start();

    include(
    "includes/dbsetup.inc.php");
    include(
    "includes/varsetup.inc.php"); //questo file è spiegato dopo

    //POST variabili login
    $password $_POST['txtpass'];
    $user $_POST['txtuser'];
    $remember $_POST['chkremember'];

    //PW and user check
    $sql mysql_query("SELECT * FROM users WHERE (username = '".$user."' AND password = '".md5($password)."')");
    $login mysql_fetch_assoc($sql);

    if(
    $login[username]) {

        if (
    $login[banned] == 1) {
            print 
    "The username you have used results banned.";
            exit();
        }
        
    //registro un po' di variabili dell'utente utili in futuro
        
    $_SESSION['username']    =    $login[username];
        
    $_SESSION['SID']    =    session_id();
        
    $_SESSION['user_id']    =    $login[user_id];
        
    $_SESSION['user_rank']    =       $login[user_rank];
        
            if (
    $remember == 1) {        //se remember è settato
                
    $cookie_data $login[username]."-".$login[password];
            
    $time time();
            
    setcookie('wcd'$cookie_data$time+604800); //setta un cookie
            
    }
        
        
    header("Location: $_SESSION[currenturl]");  //questa var di sessione contiene l'url dell'ultima pagina vista dall'utente.
    }
    //se il login è errato
    else     { 

        echo 
    "The login you have chosen doesn't exists, or the password is not correct.";
        }
    ?>
    Questa invece è la pagina varsetup.inc.php:
    VARSETUP.INC.PHP
    Codice PHP:
    <?

    //variabili di check della sessione
    $sid        =    $_SESSION['SID'];
    $csid        =    session_id();

    ?>
    Dopo diché per verificare che l'utente sia loggato, basterà fare una pagina strutturata così:
    PAGINA1.PHP
    Codice PHP:
    @session_start();
    include ( 
    "varsetup.inc.php" );

    if ( 
    $csid $sid )
        echo 
    "sei loggato come $_SESSION[username]!";
    else
        include ( 
    "login_form.inc.php" ); 
    E nella pagina di logout basterà mettere un semplice @session_destroy()
    Il problema dell'umanità è che gli stupidi sono strasicuri, mentre gli intelligenti sono pieni di dubbi. (cit.)

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.