Visualizzazione dei risultati da 1 a 10 su 10

Discussione: autenticazione

  1. #1

    autenticazione

    Codice PHP:
    else {
        
    $connection=mysql_connect($db_host,$db_user,$db_password) or die("impossibile connettersi al database sql.\n");
        
    mysql_select_db($db_name,$connection) or die("Impossibile aprire il database. \n");
        
        
    /*interroghiamo il database con i dati passati dall'utente*/
        
    $username=;
        echo 
    $utente;
        echo 
    "
    "
    ;
        
        
    $sql_verifica="SELECT * FROM auth_utenti WHERE username='{$_POST['utente']}' ";
        
        echo 
    $sql_verifica;
        echo 
    "
    "
    ;
        
        
    $sql_result=mysql_query($sql_verifica,$connection) or die("Query non valida: " mysql_error());
        
        echo 
    $sql_result;
        echo 
    "
    "
    ;
        
        
    /*se abbiamo trovato l'utente recuperiamo dal database la password codificata corrispondente*/
        
    $numero_records=mysql_affected_rows($sql_result);
        echo 
    $numero_records;
        echo 
    "
    "
    ;

        if(
    $numero_records == 1)
        {
            
    $ValoriRiga =mysql_fetch_array($sql_result);
            
    $pwdDB $ValoroRiga["password"];
            echo 
    $pwd;
            
            
    /*generiamo l'hash e paragoniamol a quello del database*/
            
    if (generaHash($_POST['password'],$pwdDB)===$pwdDB
            {
                
    $_SESSION['nome_utente']=$ValoriRiga["nome"];
                
                
    /*Se l'utente viene identificato il browser viene reindirizzato alla pagina protetta. per usare l'header ("location")
                è importante che non sia ancora stato inviato nessun output al browser*/
                
    $_SESSION['nome_utente']=$_POST['utente'];
                
    $_SESSION['IP_utente']=$_SERVER['REMOTE_ADDR'];
                
    header("Location:http//".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php");
                exit;
                }
            }
            
            
    //chiudiamo la connessione al Database


            
    mysql_free_result($sql_result);

            
    mysql_close($connection); 
    Non riesco a farlo funzionare,
    Quando faccio mysqsl_query il risultato è Resource id#5 ma non mi trova l'utente nel db.

    P.S. Tratto da §PHP professionale

  2. #2
    non dovresti arrenderti al primo muro che ti si presenta,prova a fare una stampa a video delle variabili,della query compilata...

  3. #3
    Quando faccio mysqsl_query il risultato è Resource id#5 ma non mi trova l'utente nel db.

    Questo è il muro che non capisco, stampo a video il risultato di mysql_query e non capisco perchè mi stampa questo risultato.

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Dovresti stampare $sql_verifica per controllare se le variabili passate alla query sono quelle attese.

  5. #5
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    e che risultato dovrebbe stamparti mysql_query?

    $sql_verifica cosa stampa a video?
    echo $numero_records; cosa ti stampa a video?
    echo $pwd; questa invece che variabile è? non è forse pwdDB?
    $ValoroRiga["password"]; e questo non è ValorIRiga?

    e la funzione GeneraHash cosa dovrebbe fare? sicuro che sia corretta? postane l'implementazione

  6. #6
    Codice PHP:
    <?php
    //includiamo il file delle funzioni
    require ('funzioni.inc');
    require (
    'config.php');

    /*inizializziamo o riprendiamo la sessione*/
    session_start();

    /*se non è stato fatto il submit del form*/
    if($_SERVER['REQUEST_METHOD'] != 'POST') {

    ?>

    <html>
    <head>
    <title>Login prova</title>
    </head>
    <body>
    <table>
        <tr>
            <td>Area di accesso riservata</td>    
        </tr>
        <tr>
            <td>
                <form action="<?php echo $_SERVER['PHP_SELF']; ?> " method="POST" enctype="application/x-www-form-urlencode">
                    <table width="100%">
                        <tr>
                            <td>Nome Utente:</td>
                            <td><input type="text" name="utente"></td>
                        </tr>
                        <tr>
                            <td>Password:</td>
                            <td><input type="password" name="password"></td>
                        </tr>
                        <tr>
                            <td><input type="submit" value="login"></td>
                        </tr>
                    </table>    
                </form>    
            </td>
        </tr>
    </table>

    </body>

    </html>

    <?php
    }

    /*se la pagina riceve riceve i dati dal form di login controlla nel database per cercare l'utente*/
    else {
        
    $connection=mysql_connect($db_host,$db_user,$db_password) or die("impossibile connettersi al database sql.\n");
        
    mysql_select_db($db_name,$connection) or die("Impossibile aprire il database. \n");
        
        
    /*interroghiamo il database con i dati passati dall'utente*/
        
    $username=$_POST['utente'];
        echo 
    $utente;
        echo 
    "
    "
    ;
        
        
    $sql="SELECT * FROM auth_utenti WHERE username='$username' ";
        
        echo 
    $sql;
        echo 
    "
    "
    ;
        
        
    $sql_result=mysql_query($sql,$connection) or die("Query non valida: " mysql_error());
        
        echo 
    $sql_result;
        echo 
    "
    "
    ;
        if (
    $Record mysql_fetch_array($sql_result)) {
        echo 
    "si";
    //ripuliamo i valori rcuperati
    $nome = ($Record["utente"]);
    }
        
        
        
    /*se abbiamo trovato l'utente recuperiamo dal database la password codificata corrispondente*/
        
    $numero_records=mysql_affected_rows($sql_result);
        echo 
    $numero_records;
        echo 
    "
    "
    ;
        if(
    $numero_records == 1)
        {
            
    $ValoriRiga =mysql_fetch_array($sql_result);
            
    $pwdDB $ValoriRiga["password"];
            echo 
    $pwdDB;
            
            
    /*generiamo l'hash e paragoniamol a quello del database*/
            
    if (generaHash($_POST['password'],$pwdDB)===$pwdDB
            {
                
    $_SESSION['nome_utente']=$ValoriRiga["nome"];
                
                
    /*Se l'utente viene identificato il browser viene reindirizzato alla pagina protetta. per usare l'header ("location")
                è importante che non sia ancora stato inviato nessun output al browser*/
                
    $_SESSION['nome_utente']=$_POST['utente'];
                
    $_SESSION['IP_utente']=$_SERVER['REMOTE_ADDR'];
                
    header("Location:http//".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php");
                exit;
                }
            }
            
            
    //chiudiamo la connessione al Database


            
    mysql_free_result($sql_result);

            
    mysql_close($connection);

    /*parte la visualizzazione in caso di login errato*/
    ?>

    <html>
    <head>
    <title>
    Login Prova
    </title>
    <body>
        <table>
            <tr>
                <td>Area Accesso riservata</td>
            </tr>
            <tr>
                <td> Nome utente o password non corretti</td>
                [url="javascript:history.go(-1)"]&lt; indietro[/url]
            </tr>
        </table>
    </body>
    </head>
    </html>
    <?php
    }
    ?>
    Questo è lo script totale della pagina login php.

    Dovrebbe fare questo:
    Se la pagina ha i dati passati via post, cerca l'utente, controlla la password se è la stessa.

    generaHash fa questo:
    /*questa funzione può generare nuovi salt casuali se il secondo parametro viene omesso,
    oppure recuperare il salt dalla password memorizzata nel DB*/

    a video mi stampa questo se passo dati via post:

    SELECT * FROM auth_utenti WHERE username='miologin'
    Resource id #5
    si
    < indietro
    Area Accesso riservata
    Nome utente o password non corretti


    P.S.Grazie dell'aiuto

  7. #7
    Se stampi la query puoi vedere se ci sono errori di sintassi,oppure veri e propri errori logici!!

  8. #8
    SELECT * FROM auth_utenti WHERE username='miologin'

    Questo è il risultato di mysql_query che mi viene stampato, e miologin è lì'username che passo via POST

  9. #9
    Codice PHP:
    <?php
    //includiamo il file delle funzioni
    require ('funzioni.inc');
    require (
    'config.php');

    /*inizializziamo o riprendiamo la sessione*/
    session_start();

    /*se non è stato fatto il submit del form*/
    if($_SERVER['REQUEST_METHOD'] != 'POST') {

    ?>

    <html>
    <head>
    <title>Login prova</title>
    </head>
    <body>
    <table>
        <tr>
            <td>Area di accesso riservata</td>    
        </tr>
        <tr>
            <td>
                <form action="<?php echo $_SERVER['PHP_SELF']; ?> " method="POST" enctype="application/x-www-form-urlencode">
                    <table width="100%">
                        <tr>
                            <td>Nome Utente:</td>
                            <td><input type="text" name="utente"></td>
                        </tr>
                        <tr>
                            <td>Password:</td>
                            <td><input type="password" name="password"></td>
                        </tr>
                        <tr>
                            <td><input type="submit" value="login"></td>
                        </tr>
                    </table>    
                </form>    
            </td>
        </tr>
    </table>

    </body>

    </html>

    <?php
    }

    /*se la pagina riceve riceve i dati dal form di login controlla nel database per cercare l'utente*/
    else {
        
    $connection=mysql_connect($db_host,$db_user,$db_password) or die("impossibile connettersi al database sql.\n");
        
    $db=mysql_select_db($db_name,$connection) or die("Impossibile aprire il database. \n");
        
        echo 
    "connection: ".$connection;
        echo 
    "
    "
    ;
        echo 
    "db: ".$db;
        echo 
    "
    "
    ;
        
    /*interroghiamo il database con i dati passati dall'utente*/
        
    $username=$_POST['utente'];
        echo 
    "username: ".$username;
        echo 
    "
    "
    ;
        
        
    $sql_verifica="SELECT * FROM auth_utenti WHERE username='$username' ";
        
        echo 
    "sql_verifica: ".$sql_verifica;
        echo 
    "
    "
    ;
        
        
    $sql_result=mysql_query($sql_verifica,$connection) or die("Query non valida: " mysql_error());
        
        echo 
    "sql_result: ".$sql_result;
        echo 
    "
    "
    ;
        if (
    $Record mysql_fetch_array($sql_result)) {
        
        echo 
    "dentro if";
            echo 
    "
    "
    ;
    //ripuliamo i valori rcuperati
    $nome = ($Record["utente"]);
    echo 
    "nome: ".$nome;
    echo 
    "
    "
    ;
    }
        
        
        
    /*se abbiamo trovato l'utente recuperiamo dal database la password codificata corrispondente*/
        
    $numero_records=mysql_affected_rows($sql_result);
        
        echo 
    "numero_records: ".$numero_records;
        echo 
    "
    "
    ;
        if(
    $numero_records == 1)
        {
            
    $ValoriRiga =mysql_fetch_array($sql_result);
            
    $pwdDB $ValoriRiga["password"];
            echo 
    "$pwdDB: ".$pwdDB;
            echo 
    "
    "
    ;
            
            
    /*generiamo l'hash e paragoniamol a quello del database*/
            
    if (generaHash($_POST['password'],$pwdDB)===$pwdDB
            {
                
    $_SESSION['nome_utente']=$ValoriRiga["nome"];
                
                
    /*Se l'utente viene identificato il browser viene reindirizzato alla pagina protetta. per usare l'header ("location")
                è importante che non sia ancora stato inviato nessun output al browser*/
                
    $_SESSION['nome_utente']=$_POST['utente'];
                
    $_SESSION['IP_utente']=$_SERVER['REMOTE_ADDR'];
                
    header("Location:http//".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php");
                exit;
                }
            }
            
            
    //chiudiamo la connessione al Database


            
    mysql_free_result($sql_result);

            
    mysql_close($connection);

    /*parte la visualizzazione in caso di login errato*/
    ?>

    <html>
    <head>
    <title>
    Login Prova
    </title>
    <body>
        <table>
            <tr>
                <td>Area Accesso riservata</td>
            </tr>
            <tr>
                <td> Nome utente o password non corretti</td>
                [url="javascript:history.go(-1)"]&lt; indietro[/url]
            </tr>
        </table>
    </body>
    </head>
    </html>
    <?php
    }
    ?>
    Faccio l'echo di tutte le variabili e vedo questo a video, passando miologin e pwd:
    codice:
    connection: Resource id #4
    db: 1
    username: miologin
    sql_verifica: SELECT * FROM auth_utenti WHERE username='miologin'
    sql_result: Resource id #5
    dentro if
    nome:
    numero_records:
    < indietro
    Area Accesso riservata
    Nome utente o password non corretti

  10. #10
    Codice PHP:
    <?php
    //includiamo il file delle funzioni
    require ('funzioni.inc');
    require (
    'config.php');

    /*inizializziamo o riprendiamo la sessione*/
    session_start();

    /*se non è stato fatto il submit del form*/
    if($_SERVER['REQUEST_METHOD'] != 'POST') {

    ?>

    <html>
    <head>
    <title>Login prova</title>
    </head>
    <body>
    <table>
        <tr>
            <td>Area di accesso riservata</td>    
        </tr>
        <tr>
            <td>
                <form action="<?php echo $_SERVER['PHP_SELF']; ?> " method="POST" enctype="application/x-www-form-urlencode">
                    <table width="100%">
                        <tr>
                            <td>Nome Utente:</td>
                            <td><input type="text" name="utente"></td>
                        </tr>
                        <tr>
                            <td>Password:</td>
                            <td><input type="password" name="password"></td>
                        </tr>
                        <tr>
                            <td><input type="submit" value="login"></td>
                        </tr>
                    </table>    
                </form>    
            </td>
        </tr>
    </table>

    </body>

    </html>

    <?php
    }

    /*se la pagina riceve riceve i dati dal form di login controlla nel database per cercare l'utente*/
    else {
        
    $connection=mysql_connect($db_host,$db_user,$db_password) or die("impossibile connettersi al database sql.\n");
        
    $db=mysql_select_db($db_name,$connection) or die("Impossibile aprire il database. \n");
        
        echo 
    "connection: ".$connection;
        echo 
    "
    "
    ;
        echo 
    "db: ".$db;
        echo 
    "
    "
    ;
        
    /*interroghiamo il database con i dati passati dall'utente*/
        
    $username=$_POST['utente'];
        echo 
    "username: ".$username;
        echo 
    "
    "
    ;
        
    $password=$_POST['password'];
        echo 
    "password: ".$password;
        echo 
    "
    "
    ;
        
        
    $sql_verifica="SELECT * FROM auth_utenti WHERE username='$username' ";
        
        echo 
    "sql_verifica: ".$sql_verifica;
        echo 
    "
    "
    ;
        
        
    $sql_result=mysql_query($sql_verifica,$connection) or die("Query non valida: " mysql_error());
        
        echo 
    "sql_result: ".$sql_result;
        echo 
    "
    "
    ;
        
        echo 
    "$_SERVER".$_SERVER['HTTP_HOST'];
        echo 
    "
    "
    ;
        echo
    "$_SERVER".$_SERVER['REMOTE_ADDR'];
        echo 
    "
    "
    ;
        
    $dir=dirname($_SERVER['PHP_SELF']);
        echo
    "dir: ".$dir;
        echo 
    "
    "
    ;
        
        
        
        
    /*se abbiamo trovato l'utente recuperiamo dal database la password codificata corrispondente*/
        
    $numero_records=mysql_num_rows($sql_result); //affected non funziona con select
        
        
    echo "numero_records: ".$numero_records;
        echo 
    "
    "
    ;
        if(
    $numero_records == 1)
        {
            
    $ValoriRiga mysql_fetch_array($sql_result);
            
    $nomeUtente $ValoriRiga["username"];
            echo 
    "ValoriRiga[username]: ".$ValoriRiga["username"];
            echo 
    "
    "
    ;
            echo 
    "nomeUtente: ".$nomeUtente;
            echo 
    "
    "
    ;
            
    $pwdDB $ValoriRiga["password"];
            echo 
    "ValoriRiga: ".$ValoriRiga["password"];
            echo 
    "
    "
    ;
            echo 
    "pwdDB: ".$pwdDB;
            echo 
    "
    "
    ;
            
            
    /*generiamo l'hash e paragoniamol a quello del database*/
            
    if (generaHash($_POST['password'],$pwdDB)===$pwdDB
            {
                
    $_SESSION['nome_utente']=$ValoriRiga["nome"];
                
                
    /*Se l'utente viene identificato il browser viene reindirizzato alla pagina protetta. per usare l'header ("location")
                è importante che non sia ancora stato inviato nessun output al browser*/
                
    $_SESSION['nome_utente']=$_POST['utente'];
                
                
    $_SESSION['IP_utente']=$_SERVER['REMOTE_ADDR'];
                
                
                
    header("Location:[url]http://[/url]".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php");
                exit;
                }
            }
            
    //chiudiamo la connessione al Database


            
    mysql_free_result($sql_result);

            
    mysql_close($connection);

    /*parte la visualizzazione in caso di login errato*/
    ?>

    <html>
    <head>
    <title>
    Login Prova
    </title>
    <body>
        <table>
            <tr>
                <td>Area Accesso riservata</td>
            </tr>
            <tr>
                <td> Nome utente o password non corretti</td>
                [url="javascript:history.go(-1)"]&lt; indietro[/url]
            </tr>
        </table>
    </body>
    </head>
    </html>
    <?php
    }
    ?>
    Così sono riuscito a farlo funzionare.

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.