簡體   English   中英

找不到PHP PDO登錄用戶名和密碼

[英]PHP PDO login Username and Password not found

因此,我遵循了顯示如何登錄的教程,

但是我在phpmyadmin中輸入了用戶名和密碼,但是每次我嘗試登錄時都說:找不到用戶名或密碼,這是代碼;

    <!--Begin webshop WOOOH-->

<?php


session_start();

    //DB configuration Constants
    include("class.php");
    //PDO Database Connection
    try {
        $databaseConnection = new PDO('mysql:host='._HOST_NAME_.';dbname='._DATABASE_NAME_, _USER_NAME_, _DB_PASSWORD);
        $databaseConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }

    if(isset($_POST['submit'])){
        $errMsg = '';
        //username and password sent from Form
        $username = trim($_POST['username']);
        $password = trim($_POST['password']);

        if($username == '')
            $errMsg .= 'You must enter your Username<br>';

        if($password == '')
            $errMsg .= 'You must enter your Password<br>';


        if($errMsg == ''){
            $records = $databaseConnection->prepare('SELECT id,username,password FROM  tbl_users WHERE username = :username');
            $records->bindParam(':username', $username);
            $records->execute();
            $results = $records->fetch(PDO::FETCH_ASSOC);
            if(count($results) > 0 && password_verify($password, $results['password'])){
                $_SESSION['username'] = $results['username'];
                header('location:dashboard.php');
                exit;
            }else{
                $errMsg .= 'Username and Password are not found<br>';
            }
        }
    }

?>

<html>
<head>

    <link rel="stylesheet" type="text/css" href="css/style.css">
    <link rel="stylesheet" type="text/css" href="css/reset.css">

    <title>Webshop 2016</title>

</head>
<body>

    <div id="wrapper">
        <div id="header">
            <ul>
                <li><a href="#">Info</a></li>
                <li><a href="#">Login</a></li>
                <li><a href="#">Webshop</a></li>
                <li><a href="#">Home</a></li>
            </ul>
        </div>
        <!--Main content!-->
        <div id="content">

<div align="center">
        <div style="width:300px; border: solid 1px #006D9C; " align="left">
            <?php
                if(isset($errMsg)){
                    echo '<div style="color:#FF0000;text-align:center;font-size:12px;">'.$errMsg.'</div>';
                }
            ?>
            <div style="background-color:#006D9C; color:#FFFFFF; padding:3px;"><b>Login</b></div>
            <div style="margin:30px">
                <form action="" method="post">
                    <label>Username  :</label><input type="text" name="username" class="box"/><br /><br />
                    <label>Password  :</label><input type="password" name="password" class="box" /><br/><br />
                    <input type="submit" name='submit' value="Submit" class='submit'/><br />
                </form>
            </div>
        </div>
    </div>

        </div>
        <div id="footer">
            Footer
        </div>
    </div>

</body>
</html>

這是class.php(連接文件)

    <?php
define('_HOST_NAME_', 'localhost');
define('_USER_NAME_', 'root');
define('_DB_PASSWORD', '####');
define('_DATABASE_NAME_', 'ws_webshop');

//PDO Database Connection
try {
 $databaseConnection = new PDO('mysql:host='._HOST_NAME_.';dbname='._DATABASE_NAME_, _USER_NAME_, _DB_PASSWORD);
 $databaseConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
 echo 'ERROR: ' . $e->getMessage();
}

?>

有人看到這個問題嗎?

用戶和通行證是演示/演示,但他說沒有找到用戶名或密碼...

文檔

如果密碼和哈希匹配,則返回TRUE,否則返回FALSE。

如果您未使用password_hash()將密碼插入數據庫中,則使用password_verify()檢查的方法如下:

if(count($results) > 0 && password_verify($password, $results['password'])){

會始終失敗,因為該函數期望普通密碼與密碼的哈希值進行比較。 有關PHP密碼功能的更多信息,請閱讀此文章。


此外,您可能會發現自己想限制密碼, 但實際上不應該這樣做


在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM