• User Newbie

    Problemi con il login

    Rieccomi di nuovo, con un'altro problema :), spero che possiate aiutarmi, perchè è da giorni che mi ci sto impazzendo..
    Ho trovato uno script per il login degli utenti e l'ho adattato ai miei database con qualche modifica, e non il perchè quando scrivo l'user e la pass esce la pagina che mi dice che ho effettuato il login però sia non mi reindirizza la pagina nella home, e sia non mi da nessun cambiamento da prima....
    ecco il codice :

    config.php

    [php]<?php
    $_CONFIG['host'] = "mysql5.netsons.org";
    $_CONFIG['user'] = "[]";
    $_CONFIG['pass'] = "[
    ]";
    $_CONFIG['dbname'] = "[*****]";

    $_CONFIG['table_sessioni'] = "sessioni";
    $_CONFIG['table_utenti'] = "Registrazione";

    $_CONFIG['expire'] = 60;

    //--------------
    define('AUTH_LOGGED', 99);
    define('AUTH_NOT_LOGGED', 100);

    define('AUTH_USE_COOKIE', 101);
    define('AUTH_USE_LINK', 103);
    define('AUTH_INVALID_PARAMS', 104);
    define('AUTH_LOGEDD_IN', 105);
    define('AUTH_FAILED', 106);

    $conn = mysql_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass']) or die('Impossibile stabilire una connessione');
    mysql_select_db($_CONFIG['dbname']);
    ?>
    [/php]

    auth.lib.php[php]
    <?php

    $_AUTH = array(
    "TRANSICTION METHOD" => AUTH_USE_COOKIE
    );

    function auth_set_option($opt_name, $opt_value){
    global $_AUTH;

    $_AUTH[$opt_name] = $opt_value;
    

    }

    function auth_get_option($opt_name){
    global $_AUTH;

    return is_null($_AUTH[$opt_name])
        ? NULL
        : $_AUTH[$opt_name];
    

    }

    function auth_clean_expired(){
    global $_CONFIG;

    $result = mysql_query("SELECT creation_date FROM ".$_CONFIG['table_sessioni']." WHERE uid='".auth_get_uid()."'");
    if($result){
        $data = mysql_fetch_array($result);
        if($data['creation_date']){
            if($data['creation_date'] + $_CONFIG['expire'] <= time()){
                switch(auth_get_option("TRANSICTION METHOD")){
                    case AUTH_USE_COOKIE:
                        setcookie('uid');
                    break;
                    case AUTH_USE_LINK:
                        global $_GET;
                        $_GET['uid'] = NULL;
                    break;
                }
            }
        }
    }
    
    mysql_query("
    DELETE FROM ".$_CONFIG['table_sessioni']."
    WHERE creation_date + ".$_CONFIG['expire']." <= ".time()
    );
    

    }

    function auth_get_uid(){

    $uid = NULL;
    
    switch(auth_get_option("TRANSICTION METHOD")){
        case AUTH_USE_COOKIE:
            global $_COOKIE;
            $uid = $_COOKIE['uid'];
        break;
        case AUTH_USE_LINK:
            global $_GET;
            $uid = $_GET['uid'];
        break;
    }
    
    return $uid ? $uid : NULL;
    

    }

    function auth_get_status(){
    global $_CONFIG;

    auth_clean_expired();
    $uid = auth_get_uid();
    if(is_null($uid))
        return array(100, NULL);
    
    $result = mysql_query("SELECT U.nome as nome, U.cognome as cognome, U.username as username, U.password as password
    FROM ".$_CONFIG['table_sessioni']." S,".$_CONFIG['table_utenti']." U
    WHERE S.user_id = U.id and S.uid = '".$uid."'");
    if(mysql_num_rows($result) != 1)
        return array(100, NULL);
    else{
        $user_data = mysql_fetch_assoc($result);
        return array(99, array_merge($user_data, array('uid' => $uid)));
    }
    

    }

    function auth_login($uname, $passw){
    global $_CONFIG;

    $result = mysql_query("
    SELECT *
    FROM ".$_CONFIG['table_utenti']."
    WHERE username='".$uname."' and password='".$passw."' and temp = '0'"
    );
    
    if(mysql_num_rows($result) != 1){
        return array(AUTH_INVALID_PARAMS, NULL);
    }else{
        $data = mysql_fetch_array($result);
        return array(AUTH_LOGEDD_IN, $data);
    }
    

    }

    function auth_generate_uid(){

    list($usec, $sec) = explode(' ', microtime());
    mt_srand((float) $sec + ((float) $usec * 100000));
    return uniqid(mt_rand(), true);
    

    }

    function auth_register_session($udata){
    global $_CONFIG;

    $uid = auth_generate_uid();
    
    mysql_query("
    INSERT INTO ".$_CONFIG['table_sessioni']."
    (uid, user_id, creation_date)
    VALUES
    ('".$uid."', '".$udata['id']."', ".time().")
    "
    );
    if(!mysql_insert_id()){
        return array(AUTH_LOGEDD_IN, $uid);
    }else{
        return array(AUTH_FAILED, NULL);
    }
    

    }

    function auth_logout(){
    global $_CONFIG;

    $uid = auth_get_uid();
    
    if(is_null($uid)){
        return false;
    }else{
        mysql_query("
        DELETE FROM ".$_CONFIG['table_sessioni']."
        WHERE uid = '".$uid."'"
        );
        return true;
    }
    

    }
    ?>

    [/php]

    login.php

    [php]<?php
    include_once("config.php");
    include_once("auth.lib.php");

    list($status, $user) = auth_get_status();

    if($status == AUTH_NOT_LOGGED){
    $uname = strtolower(trim($_POST['uname']));
    $passw = strtolower(trim($_POST['passw']));

    if($uname == "" or $passw == ""){
        $status = AUTH_INVALID_PARAMS;
    }else{
        list($status, $user) = auth_login($uname, $passw);
        if(!is_null($user)){
            list($status, $uid) = auth_register_session($user);
        }
    }
    

    }
    switch($status){
    case AUTH_LOGGED:
    header("Refresh: 5;URL=index.php");
    echo '<div align="center">Sei gia connesso ... attendi il reindirizzamento</div>';
    break;
    case AUTH_INVALID_PARAMS:
    header("Refresh: 5;URL=index.php");
    echo '<div align="center">Hai inserito dati non corretti ... attendi il reindirizzamento</div>';
    break;
    case AUTH_LOGEDD_IN:
    switch(auth_get_option("TRANSICTION METHOD")){
    case AUTH_USE_LINK:
    header("Refresh: 5;URL=index.php?uid=".$uid);
    break;
    case AUTH_USE_COOKIE:
    header("Refresh: 5;URL=index.php");
    setcookie('uid', $uid, time()+3600*365);
    break;
    case AUTH_USE_SESSION:
    header("Refresh: 5;URL=index.php");
    $_SESSION['uid'] = $uid;

            break;
        }
                echo $msg;
        echo '<div align="center">Ciao '.$user['nome'].'... attendi il reindirizzamento</div>';
    break;
    case AUTH_FAILED:
        header("Refresh: 5;URL=index.php");
        echo '<div align="center">Fallimento durante il tentativo di connessione ... attendi il reindirizzamento</div>';
    break;
    

    }
    ?>
    [/php]

    se vi serve sapere altro chiedete pure, grazie ancora in anticipo


  • Bannato User Attivo

    **cancella le righe di codice con i dati per l'accesso al DB!!!! **
    O qualcuno con i permessi necessari lo faccia per lui.


  • User Newbie

    sono falsi, tanto


  • Bannato User Attivo

    @Emperon said:

    sono falsi, tanto

    non mi sembrava visto che sono entrato a vedere il db.:(


  • User Newbie

    è impossibile


  • User Newbie

    cmq mi serve un'aiuto, no gente che mi fruga nei database


  • Bannato User Attivo

    ok, mettiamola così, volevo esserti d'aiuto, ti ho prontamente avvisato di una mancanza che poteva essere più o meno grave, potevi correggere il problema (così come hai fatto cambiando la password o la user sul db) e non dirmi nemmeno grazie e non me ne sarebbe importato, ma se credi di poter prendere per i fondelli allora per quanto mi riguarda l'aiuto puoi anche andare a cercartelo da qualche altra parte.

    Per inciso, e sopratutto per tutti quelli un pò meno esperti ma un pò più furbi che leggono, se tu metti in mano a tutti user e password di un db, io ci entro e vedo che dentro c'è una tabella users con ancora user e password di un utente di prova che guarda caso sembra combaciare con la tua persona. Per quanto ne so io, solitamente la gente usa sempre le stesse combinazioni di user e password per registrarsi per cui potrebbe benissimo essere che una delle due che hai messo a disposizione è buona per entrare su giorgiotave.it, dove prendo il tuo indirizzo email tramite il quale vedo se riesco a entrare nella tua casella email dove trovo user e password della tua banca online o del tuo conto paypal, ect. ect.
    Non sono stato ad indagare più di tanto ma vi assicuro che è così che vanno le cose, per cui state attenti a quello che divulgate su internet.
    Tu puoi anche continuare a dire che fa niente che sono falsi, ect.ect.


  • User Newbie

    cmq grazie dell'avvertimento, errore mio di distrazione, che mi sarà di lezione per la prossima, cmq le password che uso sono tutte diverse per fortuna, senno sarebbe successo come hai appena specificato tu, adesso lasciamo stare questa storia.


  • User

    troppo codice, io ho risolto piu' semplicemente settando un cookie con il nome dell' utente loggato. a ogni pagina poi controllo se il cookie e' settato e se l' user combacia con l' username nel cookie. e' piu' semplice e piu' veloce.