За последние 24 часа нас посетили 20765 программистов и 1110 роботов. Сейчас ищут 388 программистов ...

не могу разобраться с хешем

Тема в разделе "Сделайте за меня", создана пользователем ilya45, 30 янв 2023.

  1. ilya45

    ilya45 Новичок

    С нами с:
    1 янв 2023
    Сообщения:
    86
    Симпатии:
    2
    Друзья,создаю систему регистрации.
    Регистрацию создал.
    А вот на авторизации наткнулся на проблемку,долго смотрел в ман,но не фига не понял.
    Вобщем для проверки вводимого пользователем логина и пароля я отправлял запрос с именем пользователем и хешем пароля который он ввел в поле,но они не совпадают.
    Одинаковые символы дают разный хеш но чет голова закружилась,ничего не понял почему так.
    Или нужно задать настройки для хеша
    PHP:
    1. <?php
    2. ?>
    3. <!DOCTYPE html>
    4. <html lang="en">
    5. <head>
    6.     <link rel="stylesheet" href="css/main.css">
    7.     <meta charset="UTF-8">
    8.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
    9.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
    10.     <title>Giriş</title>
    11. </head>
    12. <body>
    13.     <form action="vendor/auth.php" method="post" enctype="multipart/form-data">
    14.         <label>Kullanıcı adı</label>
    15.         <input placeholder="Kullanıcı adı giriniz" type="text" name="username" id="" value="<?php
    16.         if (isset($_SESSION['username'])) {
    17.             echo $_SESSION['username'];
    18.            
    19.         }
    20.            unset($_SESSION['username']);
    21.          ?>">
    22.         <label>Şifre</label>
    23.         <input placeholder="Şifre giriniz" type="password" name="password" id="" value="<?php
    24.         if (isset($_SESSION['password'])) {
    25.             echo $_SESSION['password'];
    26.            
    27.         }
    28.            unset($_SESSION['password']);
    29.          ?>">
    30.         <button type="submit">Giriş yap</button>
    31.         <p>Hesabın yok mu?  <a href="register.php">Hesap oluştur</a></p>
    32.         <?php
    33.         if (isset($_SESSION['message'])) {
    34.            
    35.             echo '<p class="msg">'.$_SESSION['message']. '</p>';
    36.            
    37.         }
    38.         unset($_SESSION['message']);
    39.         ?>
    40.     </form>
    41.    
    42. </body>
    43. </html>
    PHP:
    1. <?php
    2. require_once 'connect.php';
    3. $username = $_POST['username'];
    4. $password = $_POST['password'];
    5. if (empty($username)) {
    6.     $_SESSION['message'] = 'Kullanıcı adınızı girmediniz';
    7.     $_SESSION['password'] = $password;
    8.     header('Location: ../index.php');
    9.     die();
    10. }
    11. else  {
    12.     if (empty($password)) {
    13.         $_SESSION['message'] = 'Şifrenizi girmediniz';
    14.         $_SESSION['username'] = $username;
    15.         header('Location: ../index.php');
    16.     }
    17. }
    18. if (!empty($username) and !empty($password)) {
    19.     $_SESSION['password'] = $password;
    20.     $_SESSION['username'] = $username;
    21. }
    22. $get_username = $connect->prepare("SELECT * FROM users WHERE username = :uname and password = :pass");
    23. $get_username->execute([':uname' => $username,'pass'=>password_hash($password, PASSWORD_DEFAULT)]);
    24. if ($get_username->rowCount() > 0) {
    25.     echo 'Пользователь найден';
    26.     die;
    27. }
    28.  
    29.  
    30. ?>
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
  3. ilya45

    ilya45 Новичок

    С нами с:
    1 янв 2023
    Сообщения:
    86
    Симпатии:
    2
    Уже помогли,спасибо.
    вот как правильно,сверять хеш с бд с введенным паролем от пользователя
    PHP:
    1. if (password_verify ($password,$result['password'],)==False) {
    2.         $_SESSION['message'] = 'Неверный пароль';
    3.         $_SESSION['username'] = $username;
    4.         header('Location: ../index.php');
    5.             die();  
    6. }
    7.     else {
    8. ваш код}