如何在我的PHP代码中实现password_hash和password_verify

时间:2018-04-02 21:15:51

标签: php mysqli password-hash

我基本上是PHP的新手,我的朋友们告诉我,在2018年,md5已经过时且不再安全了。我做了一些研究,并找到了将密码保存到数据库并验证的好方法。我想添加password_hash和password_verify,但我不知道该怎么做。我尝试了一些东西,但是错误完全错了,所以我决定上传我的作品,然后再使用password_hash和password_verify

<?php
    if (isset($_POST['login-submit'])) {
        require_once("database/config.php");
        $email = mysqli_real_escape_string($mysqli, $_POST['email']);
        $wachtwoord = md5(mysqli_real_escape_string($mysqli, $_POST['password']));
        if (strlen($email) > 0 && strlen($wachtwoord) > 0) {
            $query = "SELECT * FROM users WHERE email = '$email' AND wachtwoord = '$wachtwoord'";
            $result = mysqli_query($mysqli, $query);
            if (mysqli_num_rows($result) == 1) {
                while ($row = mysqli_fetch_array($result)){
                    $_SESSION['voornaam'] = $row['voornaam'];
                    $_SESSION['achternaam'] = $row['achternaam'];
                    $_SESSION['email'] = $row['email'];
                    $_SESSION['telefoonnummer'] = $row['telefoonnummer'];
                    $_SESSION['accountType'] = $row['accountType'];
                    header("location: overzicht");
                }
            }
            else{$error1 = 'Inloggen is mislukt!';} 
        }
        else{$error1 = "Niet alle velden zijn ingevuld";}
    }
    if (isset($_POST['register-submit'])){
        require_once("database/config.php");
        $voornaam = $_POST['voornaam'];
        $achternaam = $_POST['achternaam'];
        $email = $_POST['email'];
        $telefoonnummer = $_POST['telefoonnummer'];
        $wachtwoord = md5($_POST['password']);
        $wachtwoordBevestigen = md5($_POST['confirm-password']);
        $accountType = "gebruiker";
        if(strlen($voornaam) > 0 &&strlen($achternaam) > 0 && strlen($email) > 0 && strlen($telefoonnummer) > 0 && strlen($wachtwoord) > 0 && strlen($wachtwoordBevestigen) > 0){
            if ($wachtwoord == $wachtwoordBevestigen) {
                $query = "INSERT INTO users (voornaam, achternaam, email, telefoonnummer, wachtwoord, accountType)
                    VALUES (
                    '$voornaam',
                    '$achternaam',
                    '$email',
                    '$telefoonnummer',
                    '$wachtwoord',
                    '$accountType'
                )";
                $result = mysqli_query($mysqli, $query);
                if ($result) {header("location: index");} 
                else {$error2 = 'Er ging iets mis met het toevoegen!';}
            }
            else{$error2 = "Wachtwoord is niet gelijk";}
        }
        else{$error2 = "Niet alle velden zijn ingevuld";}
    }
?>

0 个答案:

没有答案