[PHP] login con password_verify - password_hash

Discussione in 'PHP' iniziata da luigi777, 13 Febbraio 2019.

  1. luigi777

    luigi777 Utente Attivo

    Registrato:
    14 Febbraio 2008
    Messaggi:
    1.060
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Località:
    Massa, Italy
    Salve non riesco ad far funzionare questa pagina di login:
    PHP:
    <?php
    session_start
    ();
    include(
    $_SERVER['DOCUMENT_ROOT']."/inc.php");

    if(isset(
    $_POST['submitBtnLogin'])) {
      
    $email=$_POST['email'];
      
    $pw=$_POST['password'];
      
    $password_hash=password_hash($pwPASSWORD_DEFAULT);

      
    $stmt $db->prepare("SELECT * from users WHERE email=? AND password=?");
      
    $stmt->execute(array($email$password_hash));
      
    $row_count $stmt->rowCount();
      
    $row $stmt->fetch();

      if (
    password_verify($pw$password_hash)) {


        
    $_SESSION['login'] = true;
        
    $_SESSION['sess_user_id']   = $row['id'];
        
    $_SESSION['sess_user_name'] = $row['username'];
        
    $_SESSION['sess_name'] = $row['lname'];
        
    $_SESSION['user_type'] = $row["username_type"];
        
    redirect("home.php");
      }
      else {
        
    $error =  "Wrong Username or Password";
      }
    }
    ?>
    <!DOCTYPE html>
    <html lang="it" dir="ltr">
    <head>
      <meta charset="utf-8">
      <title></title>
    </head>
    <body>
      <?php
      
    if(isset($error)){ echo '<p class="info_error">'.$error.'</p>';}
      if(isset(
    $msg)){ echo $msg;} else {
        
    ?>
        <form method="post">
          <table class="loginTable">
            <tr>
              <th>ADMIN PANEL LOGIN</th>
            </tr>
            <tr>
              <td>
                <label class="firstLabel">Email:</label>
                <input type="text" name="email" id="email" value="" autocomplete="off" />
              </td>
            </tr>
            <tr>
              <td><label>Password:</label>
                <input type="password" name="password" id="password" value="" autocomplete="off" /></td>
              </tr>
              <tr>
                <td>
                  <input type="submit" name="submitBtnLogin" id="submitBtnLogin" value="Login" />
                  <span class="loginMsg"><?php echo @$msg;?></span>
                </td>
              </tr>
            </table>
          </form>
        <?php ?>
      </body>
      </html>

    non mi entra nell'if di password_verify,
    avete idea se si scrive cosi i login con password_verify perché in rete trovo poco ma in inglese.

    avete idea ?
    Grazie mille.
     
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    918
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Scusa questa parte non ha senso....
    PHP:
    //hash password da POST
    $password_hash=password_hash($pwPASSWORD_DEFAULT);

    //query con Hash da post della password
      
    $stmt $db->prepare("SELECT * from users WHERE email=? AND password=?");
      
    $stmt->execute(array($email$password_hash));
      
    $row_count $stmt->rowCount();
      
    $row $stmt->fetch();


      if (
    password_verify($pw$password_hash)) {
    Già filtri con la query passando l'hash della password, non serve il password_verify()....
     
  3. fratt

    fratt Nuovo Utente

    Registrato:
    19 Gennaio 2019
    Messaggi:
    33
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Occupazione:
    Dilettante
    Leggendo un po' di documentazione, vedo che consigliano di utilizzare password_verify() piuttosto che il confronto diretto.
    Quindi forse conviene impostare la query sql solo con la mail e poi fare il controllo della password col password_verify().
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    918
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Leggi tra le righe.....
     
  5. luigi777

    luigi777 Utente Attivo

    Registrato:
    14 Febbraio 2008
    Messaggi:
    1.060
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Località:
    Massa, Italy
    ok, ma ho risolto con wordpress.
     
  6. luigi777

    luigi777 Utente Attivo

    Registrato:
    14 Febbraio 2008
    Messaggi:
    1.060
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Località:
    Massa, Italy
    niente, wordpress troppo complicato.. mi studio php e pdo e vedo come fare il mio mini sito. ad uso personale.
     
Sto caricando...

Condividi questa Pagina