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

    Autenticazione Username e password PROBLEMA!

    Ciao ragazzi,

    qualcuno mi puo dire perchè questo script non funziona? secondo i miei calcoli dovrebbe andare...
    Non si tratta altro che di un autenticazione di nome utente e password inseriti in un form e confrontati con quelli inseriti nel database...

    Codice PHP:
    <?php  session_start ();  $utente $_POST['utente']; 
    $password $_POST['password'];     //connessione  al DB  
     
    $connessione mssql_connect("xxx""xxx""xxx") or die("Connessiona al DB fallita"); 
    mssql_select_db("xxx");  
    $query mssql_query("SELECT nomerivenditore,password FROM rivenditori WHERE nomerivenditore = '$utente'");   
    while(
    $row=mssql_fetch_array($query))
    {   
    $username "$row[nomerivenditore]"$mypass ="$row[password]";   } 
      if (
    $username == $_POST['utente'] ) // per poi stamparlo solo se settato...
     
    { echo header("location: [url]http://www.google.it[/url]");//redirect; }  
    else // redirect a pagina di errore! { echo "Pagina di errore ATTIVAZIONE! da preparare"; }           ?>
    vi ringrazio in anticipo...

    buonagiornata!

  2. #2
    intento dovresti dire per quale ragione dici che non funziona, poi fai una cosa abbastanza inutile:

    Codice PHP:
    $utente $_POST['utente']; 

    $query mssql_query("SELECT nomerivenditore,password 
                        FROM rivenditori 
                        WHERE nomerivenditore = '
    $utente'"); 
     
    while(
    $row=mssql_fetch_array($query))
    {   
    $username "$row[nomerivenditore]"
         
    $mypass ="$row[password]";   }
     
      if (
    $username == $_POST['utente'] ) 
    dai un minimo di fiducia al software ... se cerchi un $utente cosa mai potrebbe restituire la query? Lo stesso nomerivenditore oppure nulla. In entrambi i casi il while non serve perche' delle due sara' solo una: o esiste un nome oppure non esiste.

    Quindi confrontare se $_POST['utente'] corrisponde al nome utente estratto e' un controllo per mancanza di fiducia nel software e non un controllo sulla vericidita' dell'utente.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    hai ragione, adesso inizio a capire qualcosa in più...devo fondamentalmente controllare che il nome utente e la password inseriti in un form corrispondano a quelli presenti nel database.
    Se si, verrà effettuato il redirect ad un altra pagina, se no verrà fuori un errore...

    Codice PHP:
    $query="SELECT * FROM Rivenditori WHERE Nomerivenditore ='$utente' ";  
    $result mssql_query($query);  
     while ( 
    $record mssql_fetch_array($result) )   

    //radius TIME        

    if ($record ['nomerivenditore'] == $utente and $record ['password'] == $password // per poi stamparlo solo se settato... 

    { echo "Pagina di  OKKKKKKKKKKK! da preparare"; }  
    else 
    // redirect a pagina di errore! { echo "Pagina di errore ATTIVAZIONE! da preparare"; } 
    puo andare cosi?

  4. #4
    non ancora direi. Devi controllare che corrispondano sia lo username sia la password ed evitare poi di confrontare inutilmente le stringhe con il php.

    es:

    Codice PHP:
    $query "SELECT * 
               FROM Rivenditori 
               WHERE Nomerivenditore ='
    $utente
               AND password = '
    $password' "
    Ancora meglio limitarsi a contare i record che corrispondono a tale user e password. Se sono 1 ok se sono 0 o piu di 1 sei di fronte ad un errore. Siccome poi aspetti di avere solo un record non serve utilizzare il while. Anzi nel caso di doppioni potresti avere risultati inattesi ammesso che tu abbia permesso alla tabella di avere due utenti con stesso nome e password.

    il confronto dei dati lo fa la query SQL. Tu gli dai un dato username ed un dato password e lei ti estrae il record con user e password solo se corrispondono entrambi al richiesto. Il confronto VERO e' solo questo.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.