why function 'password_verify' PHP doesn't work?

107
May 16, 2021, at 7:30 PM

I have a ws where I create a User with username and pw and I use

password_hash($password, PASSWORD_DEFAULT); 

to make hash of the password.

Ws create user:

<?php
    header('Content-Type: text/xml');
    
        $username = $_REQUEST["username"] ?? "";
        $password = $_REQUEST["psw"] ?? "";
        $codice_risposta = 0;
        $messaggio = "";
        $sql = "";
        $hashedPassword = password_hash($password, PASSWORD_DEFAULT); 
        
        $conn = mysqli_connect("localhost:2020","root","","pasinisilvia_elaboratogasitalia");
        //password_verify($userPassword, $hashedPassword)
        
        if ($username != '' && $hashedPassword!='' ){
            if ($conn) {  // connessione OK
                
                $sql = "INSERT INTO proprietario (NomeUtente,Password) 
                        VALUES ( '$username','$hashedPassword' ) ";
                $result = mysqli_query($conn,$sql);
                
                if ($result) {  // query OK
                    $codice_risposta = 1;
                    $messaggio = "Utente creato";
                } 
                else {
                    $messaggio = "Username già in uso";
                }
            }
        }else {
            $messaggio = "Parametri mancanti";
        }           
    
        $doc=new DOMDocument('1.0', 'UTF-8');       
    
        $elRisposta=$doc->createElement("risposta");                                                //echo "<risposta>\n";
        $elCodRisp =$doc->createElement("codice_risposta");                                         //echo "    <codice_risposta>$codRisp</codice_risposta>\n";
        $elCodRisp->appendChild($doc->createTextNode("$codice_risposta"));
        $elMex=$doc->createElement("messaggio");                                                    //echo "    <messaggio>$msg</messaggio>\n";
        $elMex->appendChild($doc->createTextNode("$messaggio"));
            
        // appendo a risposta
        $elRisposta->appendChild($elCodRisp);
        $elRisposta->appendChild($elMex);
        
        $doc->appendChild($elRisposta);
        echo $doc->saveXML();
?>

Ws log in:

<?php   header('Content-Type: text/xml');
        
        $username = $_REQUEST["username"] ?? "";
        $psw = trim($_REQUEST["psw"]) ?? "";
        //var_dump($psw);
        //$hashedPassword = password_hash($psw, PASSWORD_DEFAULT);
        $conn = mysqli_connect("localhost:2020","root","","pasinisilvia_elaboratogasitalia");
        
        if (  $username!='' &&  $psw!='' ) {
            if ($conn) {   // se la connessione è avvenuta correttamente
              $sql = "SELECT Password FROM proprietario WHERE NomeUtente='$username'";
                
              $result = mysqli_query($conn,$sql);
              if ( $result ) {  // se non ci stati errori di sintassi
                if ( mysqli_num_rows($result) == 1 ) {  //se c'è l'utente
                  $row = mysqli_fetch_assoc($result);
                  $hashedPassword = $row['Password'];
                    //var_dump($psw);
                 //  var_dump($hashedPassword);
                // $hashedPassword = password_hash($psw, PASSWORD_DEFAULT); 
                 if(password_verify($psw, $hashedPassword)){
                  //if($hashedPassword == $pwDb){
                      $cod_risp = 1;
                      $messaggio = "Successo";
                  }
                  else{
                      $cod_risp = 0;
                      $messaggio = "pw sbagliata";
                  }
                }
            }
        
             /* $sql = "SELECT * FROM proprietario WHERE NomeUtente=? and Password=? " ;
                
              $stmt = $conn->prepare($sql);
              $stmt->bind_param('ss', $username, $hashedPassword); // 's' specifies the variable type => 'string'
              $stmt->execute();
              
              $stmt->bind_result($username, $password);
              $stmt->store_result();
              $result = $stmt->get_result();*/
             // $result = mysqli_query($conn,$sql);
             // $result = mysqli_query($conn,$sql);
              
             /* if ( $result ) {  // se non ci stati errori di sintassi
                if ( mysqli_num_rows($result) == 1 ) {  //se c'è l'utente
                 // $row = mysqli_fetch_assoc($result);
                  $nome = $row['NomeUtente'];
                  $pw = $row['Password'];
                  
                  $cod_risp = 1;
                  $messaggio = "Successo";
                }
                else {  //se non c'è l'utente
                  $cod_risp = 0;
                  $messaggio="Username o password errati";
                }
              }
              else {
                $cod_risp = 0;
                $messaggio="Errore nella query";    
              }
            }
            else  {
               $cod_risp = 0;
               $messaggio="Impossibile connettersi al database"; 
            }*/
        }
        else {
          $cod_risp = 0;
          $messaggio = "Parametri mancanti nella richiesta";
        }
        }
        
        /*if($cod_risp == 1)
            echo "1";
        else
            echo "0";*/
        
        /*echo "<risposta>\n";
        echo "    <codice_risposta>$cod_risp</codice_risposta>\n";
        echo "    <messaggio>$messaggio</messaggio>\n";
        if ($cod_risp==1) {
            echo "    <dettagli>\n";
            echo "        <nome>$nome</nome>\n";
            echo "        <cognome>$pw</cognome>\n";
            echo "    </dettagli>";
        }
        echo "</risposta>";  */ 
        
        /*echo "<risposta>\n";
        echo "    <codice_risposta>$cod_risp</codice_risposta>";
        echo "    <messaggio>$messaggio</messaggio>";
        echo "</risposta>"; */
        
        $doc=new DOMDocument('1.0', 'UTF-8');
        
        $elRisposta=$doc->createElement("risposta");                                                //echo "<risposta>\n";
        $elCodRisp =$doc->createElement("codice_risposta");                                         //echo "    <codice_risposta>$codRisp</codice_risposta>\n";
        $elCodRisp->appendChild($doc->createTextNode("$cod_risp"));
        $elMex=$doc->createElement("messaggio");                                                    //echo "    <messaggio>$msg</messaggio>\n";
        $elMex->appendChild($doc->createTextNode("$messaggio"));
            
        // appendo a risposta
        $elRisposta->appendChild($elCodRisp);
        $elRisposta->appendChild($elMex);
        
        $doc->appendChild($elRisposta);
        echo $doc->saveXML();
?>

Everytime I try the login the function password_verify return false. Thanks for attention.

Rent Charter Buses Company
READ ALSO
retrofit api get request not firing the calback methods

retrofit api get request not firing the calback methods

I'm encountering a problem with retrofit : Im trying to make a get request to this API: https://testspaceflightnewsapi

130
How to assign URL query parameter before the last parameter in JavaScript

How to assign URL query parameter before the last parameter in JavaScript

I'm trying to build an API Proxy in NodeJS it makes a request to an external 3rd party APIThe API endpoint needs a parameter named "pages=(int)" appended to each request

130
Same fragment creating on sliding in ViewPager2

Same fragment creating on sliding in ViewPager2

I have 2 fragments that I want to show in my viewpager2 but only one shows in the view pager in both the tabs even though I am passing two fragments in my adapter although titles that I set are visible correctly

132
When to use text/plain instead of text/html?

When to use text/plain instead of text/html?

When is it recommended to use text/plain content type over text/html

45