PHP --- 登录界面构建与mysql交互

登录界面构建与mysql交互

环境准备

win2003server
phpstudy2016
vscode

(1)login.html

  • 利用input表单就可构建简单登录界面
  • <fieldset>标签:框住标签内容
  • <legend>标签:为filedset标签添加标题
  • <label>标签:点击字体,聚焦后面的控件
  • <li>标签:列表标签,ul标签代表着下方li标签将无序显示,ol标签代表有序显示
  • checkbox:复选圆框表单元素
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>1234567</title>
</head>
<body>
    <form action="login.php" method="post">
        <fieldset>
            <legend>用户登录</legend>
            <ul>
                <li>
                    <label>用户名:</label>
                    <input type="text" name="username" id="">
                </li>
                <li>
                    <label>密码:</label>
                    <input type="password" name="password" id="">
                </li>
                <li>
                    <label></label>
                    <input type="checkbox" name="remember" value="yes">7天自动登录
                </li>
                <li>
                    <label></label>
                    <input type="submit" name="login" value="登录">
                </li>
            </ul>
        </fieldset>
    </form>
</body>
</html>

(2)login.php

<?php
header('Content-type:text/html;charset=utf-8');
// 开启session
session_start();
// 处理用户登录信息
if (isset($_POST['login'])){
    # 接受用户登录信息
    $username = trim($_POST['username']);
    $password = trim($_POST['password']);
    // 判断提交的登录信息
    if (($username == '') || ($password == '')){
        // 若为空,视为未填写,提示错误,3秒后返回登录界面
        header('refresh:3; url=login.html');
        echo " 用户名或密码不能为空,系统将在3秒后跳转到登录界面,重新填写登录信息! ";
        exit;
    } 
    // 连接数据库
    $con = mysqli_connect('localhost','root','123456');
    //                      ip地址   用户名   mysql密码
    // 验证数据库连接状态
    if(mysqli_errno($con)){
        echo "连接失败,请重试".mysqli_error($con);
        exit;
    }
    // 设置解码方式
    mysqli_set_charset($con,'utf-8');
    // 设置datebase
    mysqli_select_db($con,'test');
    // 查看传入的用户名、用户密码与数据库中的值是否相同
    $sql = "select * from login where username = '$username'and password = '$password'";
    // 存放返回的数据
    $result = mysqli_query($con,$sql);
    // 查看当前的数据有几行
    $num = mysqli_num_rows($result);
    if (!$num){
        # 用户名或密码错误,同空的处理方式
        header('refresh:3;url=login.html');
        echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
        exit;
    }else{
        # 用户名和密码都正确,用户新信息保存到session中
        $_SESSION['username'] = $username;
        $_SESSION['islogin'] = 1;
        // 若勾选7天内自动登录,则将其保存到cookie中并保存7天
        if ($_POST['remember'] == 'yes'){
            setcookie( 'username' , $username , time() + 7*24*60*60);
            setcookie( 'code' ,md5($username.md5($password)), time() + 7*24*60*60);
        } else {
            // 未勾选则删除cookie
            setcookie('username', '', time()-999);
            setcookie('code', time()-999);
        }
        // 处理完附加项后跳转到登录成功的首页
        header('location:index1.php');
        echo "登录成功";
        mysql_close($con);
    }
}
?>

(3)在win2003server端的phpstudy创建数据库

方法一:在phpstudy的界面创建


方法二:命令行创建

(4)检测连接情况

1:正常登录


2:密码错误


3:用户名或密码为空


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值