<?php
DEFINE('DB_HOST','localhost');
DEFINE('DB_USER','root');
DEFINE('DB_PWD','');
DEFINE('DB_NAME','name');
$dbc=mysqli_connect (DB_HOST,DB_USER,DB_PWD,DB_NAME);
if(!$dbc)
{
echo"连接失败:".mysqli_connect_error();
exit(1);
}
mysqli_set_charset($dbc,'utf8');
//上为连接数据库代码,[数据库链接具体介绍](https://blog.csdn.net/mishilq/article/details/89217424)
if(isset($_POST['tj'])){
//如果点击提交按钮,开始验证用户名与密码是否和数据库内数据匹配
$zh=$_POST['user_id'];
//得到输入的用户名内容
$pass=$_POST['pass'];
//得到输入的密码内容
if($zh=='')
//如果用户名没填写则直接报错
{
echo "<script>alert('用户名不能为空');location.href='denglu.php';</script>";
//利用js代码弹出错误提示,并且重新进入此页面
return -1;
//让PHP直接返回,不再执行下面代码(PHP中一般错误返回flase或0或-1)
}
$sql="SELECT * from users WHERE user_id='$zh' and pass=SHA1('$pass')";
//查询数据库中符合用户名字段(此句中user_id为用户名字段名)等于输入的用户名内容并且数据库中密码字段(此句中pass为密码字段名)等于输入的密码行(注意表名要改为自己的表名此句中users为我的表名)
$rs=mysqli_query($dbc,$sql);
//执行上面的数据库代码
$num=mysqli_num_rows($rs);
//此函数为判断$rs中有几行(查询语句返回的是一个列表)
if($num<=0){
//当返回的表行数小于或等于0时说明没有满足(数据库中用户名字段等于输入的用户名内容并且数据库中密码字段等于输入的密码)的行
echo "<script>alert('用户名或密码错误');location.href='denglu.php';</script>";
//通过js代码弹出错误提示,并且重新进入此页面
return -1;
//返回-1,不再执行下面代码
}
echo "<script>alert('登录成功');location.href='index.php';</script>";
//如果上面的判断语句都没有满足,就能执行到这一行,让页面跳转到index.php页面
}
?>
//下面为HTML代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form method="post" action="">
<label for="uname">账号:</label><input type="text" name="user_id" id="user_id"><br><br>
<label for="uname">密码:</label><input type="text" name="pass" id="pass"><br><br>
<input type="submit" value="登录" name='tj'>
</form>
</body>
</html>
PHP:登录界面
最新推荐文章于 2024-05-13 22:57:29 发布