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

    autenticazione login errore

    Salve ho trovato un errore nella mia pagina di login posso chiedervi un aiuto

    la pagina funziona bene , se inserisco user e psw giuste mi manda alla pagina protetta se sbaglio mi dice che ho inserito user e psw sbagliati , ma se non metto nulla nei campi user e psw e do il comando login mi fa' entrare lo stesso..


    questo è il codice della pagina controllo login che riceve i dati dalla form

    // definisce i valori delle variabili prese dalla form
    $user=$_POST['user'];
    $password=$_POST['password'];



    // protezione insermento dati in db sql
    $user = stripslashes($user);
    $password = stripslashes($password);
    $user = mysql_real_escape_string($user);
    $password = mysql_real_escape_string($password);


    $sql="SELECT * FROM login WHERE user='$user' and password='$password'";
    $risultato=mysql_query($sql);
    // con un ciclo whilw creao un array con i campi del db login
    while($row = mysql_fetch_array($risultato)){
    //rendo i risultati del arrey delle variabili
    $indice = $row['indice'];
    $pw= $row['password'];
    $us= $row['user'];
    }
    // echo $codice;
    // echo $pw;
    //echo $us;

    //con if li confronto e se corrispondono faccio il login w
    if (($user == $us)&&($password == $pw)){

    $_SESSION['user']=$user;// mi trasporto la variabile in sessione
    $_SESSION['password']=$password;// mi trasporto la variabile in sessione
    $_SESSION['indice']=$indice;// mi trasporto la variabile in sessione

    header("locationrimaNUOVA.php");
    }else{
    echo "ATTENZIONE User o Password ERRATE "; // altrimenti scrivi questo
    }

    ob_end_flush();

    ?>


    come posso aggiungere una condizione che se i campi sono della for sono vuoti deve dirmi password o user sbagliata!! help!!!

  2. #2
    invece di

    if (($user == $us)&&($password == $pw))

    prova a mettere così e vedi se funziona:

    if ($user == $us AND $password == $pw)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    ciao prova a fare all'inizio un controllo dei campi passati, controlla che siano settati con la isset() e anche che non siano vuoti
    if($_POST['user']!='' && $_POST['password']!='') prosegui
    altrimenti messaggio di errore

  4. #4
    Grazie mille per le risposte .. ho risolto così aggiungendo mysql_num_rows.....if($row==1) che effettua un controllo se trova il valore 1 mi esegue la query


    $sql="SELECT * FROM login WHERE user='$user' and password='$password'";
    $ris=mysql_query($sql);
    $row=mysql_num_rows($ris);
    if($row==1){
    $sql="SELECT * FROM login WHERE user='$user' and password='$password'";
    $risultato=mysql_query($sql);
    while($row = mysql_fetch_array($risultato)){
    //rendo i risultati del arrey delle variabili
    $indice = $row['indice'];
    $pw= $row['password'];
    $us= $row['user'];
    }

    $_SESSION['user']=$user;// mi trasporto la variabile in sessione
    $_SESSION['password']=$password;// mi trasporto la variabile in sessione
    $_SESSION['indice']=$indice;// mi trasporto la variabile in sessione

    header("locationrimaNUOVA.php");
    }else{
    echo "ATTENZIONE User o Password ERRATE "; // altrimenti scrivi questo
    }

    ob_end_flush();

    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    ciao egidio,secondo me non ha senso eseguire due query uguali in serie.
    ha più senso evitare di fare la query nel caso i campi della form vengano lasciati vuoti e stampare direttamente : dati errati oppure i campi sono vuoti o comunque un messaggio di errore

  6. #6
    Egidio puoi anche accorciare senza appunto eseguire due volte la quesry.. ti ho riscritto il codice:

    Codice PHP:
    <?
        $sql 
    "SELECT * FROM login WHERE user = '$user' AND password = '$password'";
        
    $risultato mysql_query($sql);
        
    $row mysql_num_rows($risultato);

        if(
    $row == '1')
        {
            while(
    $row mysql_fetch_array($risultato))
            {
                
    //rendo i risultati del arrey delle variabili
                
    $indice $row['indice'];
                
    $pw $row['password'];
                
    $us $row['user'];
            }

            
    $_SESSION['user'] = $user;// mi trasporto la variabile in sessione
            
    $_SESSION['password'] = $password;// mi trasporto la variabile in sessione
            
    $_SESSION['indice'] = $indice;// mi trasporto la variabile in sessione

            
    header("location:primaNUOVA.php");
        }
        else {echo 
    "ATTENZIONE User o Password ERRATE"; }

        
    ob_end_flush();
    ?>

  7. #7
    ok provo!!!!
    e ti faccio sapere!!!!

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.