php+MySQL实现登录时去数据库校验用户输入的登录名和密码是否正确。。。(session的用法)

9 篇文章 1 订阅
7 篇文章 0 订阅

看代码。。。

<?php
    $servername = "服务器名";
    $username = "账户名";
    $password = "密码";
    $dbname = "数据库名";
?>
<?php
    // Session需要先启动。
    session_start();
    //判断uname和pwd是否赋值
    if(isset($_POST['uname']) && isset($_POST['pwd'])){
        $name = $_POST['uname'];
        $pwd = $_POST['pwd'];
        //连接数据库
        $conn = new mysqli($servername, $username, $password, $dbname);
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }
        //验证内容是否与数据库的记录吻合。
        $sql = "SELECT * FROM test_students_all WHERE (student_name='$name') AND (password='$pwd')";
        //执行上面的sql语句并将结果集赋给result。
        $result = $conn->query($sql);
        //判断结果集的记录数是否大于0
        if ($result->num_rows > 0) {
            $_SESSION['user_account'] = $name;
            // 输出每行数据
            while($row = $result->fetch_assoc()) {
                echo '<p>' . $row['student_nbr'] . '<br/>' . $row['student_name'] .  '(' . $row['sex'] . ')' . '<br/>' . $row['class'] . '<br/>' . $row['major'].'</p>';
                // <p><img src="student_images/CLASS/STUDENT_NBR.jpg" /></p>
                echo '<p><img src="student_images/' . $row['class'] . '/' . $row['student_nbr'] . '.jpg" /></p>';
            }
        } else {
            echo "没有您要的信息";
        }
        $conn->close();       
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录校验</title>
</head>
<body>
    <p>
        <?php
            // isset(xx) 测试xx是否设置了
            if(isset($_SESSION['user_account'])){
                echo '你好,' . $_SESSION['user_account'];
            }
            else{
                echo '游客';
            }
            //$conn->close();
        ?>
    </p>
    <form method="POST">
        <input type="text" name="uname" placeholder="用户名" />
        <br />
        <input type="password" name="pwd" placeholder="密码" />
        <br />
        <input type="submit">
    </form>
</body>
</html>

看看效果。。。
这里写图片描述

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个问题需要分成两个部分来回答。首先,需要通过HTML实现用户注册和登录表单。其次,需要编写PHP代码将用户信息存储到MySQL数据库中,并且验证用户登录信息。 对于注册表单,我们可以在HTML中定义一个包含用户名,密码和确认密码字段的表单。当用户提交表单时,使用PHP代码检查密码是否匹配,并将用户名和密码添加到数据库中。用户登录时,我们可以在HTML中定义一个包含用户名和密码字段的表单,并在提交表单时使用PHP代码查询数据库来检查用户凭据是否正确。 以下是注册表单HTML标记的示例: ``` <form action="register.php" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username" required><br> <label for="password">密码:</label> <input type="password" id="password" name="password" required><br> <label for="password_confirm">确认密码:</label> <input type="password" id="password_confirm" name="password_confirm" required><br> <input type="submit" value="注册"> </form> ``` 接下来,编写PHP代码来检查密码是否匹配并将用户信息添加到MySQL数据库中。代码示例: ```php <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 连接到MySQL数据库 $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database_name"; $conn = new mysqli($servername, $username, $password, $dbname); // 检查密码是否匹配 if ($_POST['password'] !== $_POST['password_confirm']) { echo "密码不匹配"; } else { // 添加用户数据库 $sql = "INSERT INTO users (username, password) VALUES (?, ?)"; $stmt = $conn->prepare($sql); $hashed_password = password_hash($_POST['password'], PASSWORD_DEFAULT); $stmt->bind_param("ss", $_POST['username'], $hashed_password); $stmt->execute(); echo "用户注册成功!"; } $conn->close(); } ?> ``` 对于登录表单,我们可以在HTML中定义一个包含用户名和密码字段的表单,然后在PHP代码中查询数据库以验证用户凭据是否正确。以下是登录表单HTML的示例: ``` <form action="login.php" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username" required><br> <label for="password">密码:</label> <input type="password" id="password" name="password" required><br> <input type="submit" value="登录"> </form> ``` 接下来,编写PHP代码来查询数据库以验证用户凭据是否正确。示例代码: ```php <?php session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 连接到MySQL数据库 $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database_name"; $conn = new mysqli($servername, $username, $password, $dbname); // 验证用户凭据 $sql = "SELECT * FROM users WHERE username = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $_POST['username']); $stmt->execute(); $result = $stmt->get_result(); $row = $result->fetch_assoc(); if ($row && password_verify($_POST['password'], $row['password'])) { // 记录用户会话 $_SESSION['username'] = $row['username']; echo "登录成功!"; } else { echo "用户名或密码正确"; } $conn->close(); } ?> ``` 这样,我们就用HTML、PHPMySQL实现用户注册和登录系统。请注意,这只是一个基本实现,实际应用程序需要更严格的密码策略和其他安全措施来保护用户数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值