一、环境准备
可参考本人之前的一篇拙作(如果只在本地调试,则只看第一部分即可):【XAMPP的安装,配置】+【Apache的外网访问】+【默认主页修改】详细步骤图文教程
二.思路分析:
1.通过html页面中的表单标签(即<form>标签),接收用户输入(用户名、密码),在表单的action属性中,指定要处理表单数据的php文件。
2.在接收用户输入的php文件中,将用户输入的用户名、密码这两个字段同时作为一个条件在数据库的用户表中进行查找,并用session记录用户在数据库表中的id
3.页面自动跳转至用户信息显示页,通过session中暂存的用户id,读取出此id用户的用户名、个人简介。
三.文件结构
四.功能演示
1.在本地服务器中打开此文件项目
2.输入用户信息
3.点击提交
4.点击确定,跳转到用户信息显示页
五、源码展示
1.index.html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>php登录测试</title>
</head>
<body>
<form action="register.php" method="POST" >
<label>用户名:</label>
<input type = "text" name = "username"/> <br/>
<label>密码:</label>
<input type = "password" name="password"/> <br/>
<input type = "submit" value = "提交"/>
</form>
</body>
</html>
2.register.php文件:
<?php
session_start();
//$_POST用户名和密码
$username = $_POST['username'];
$password = $_POST['password'];
//连接mysql
$con = mysqli_connect('localhost','root','', 'gamesweb');
//验证mysql连接是否成功
if(mysqli_errno($con)){
echo "连接mysql失败:".mysqli_error($con);
exit;
}
//sql查询语句
$sql = "select user_id from test where username='$username' and password='$password'";
//执行
$result = mysqli_query($con,$sql);
$num = mysqli_num_rows($result); // 函数返回结果集中行的数量
if($num){
echo "<script>alert('登录成功');</script>";
} else{
echo "<script>alert('登录失败,不存在此用户');</script>";
}
$row = mysqli_fetch_assoc($result);
$_SESSION['userid'] = $row['user_id']; // session
mysqli_close($con);
echo "<script>window.location.href = 'show.php'</script>";
?>
3.show.php文件:
<?php
session_start();
$userid = $_SESSION['userid'];
//连接mysql
$con = mysqli_connect('localhost','root','', 'gamesweb');
//验证mysql连接是否成功
if(mysqli_errno($con)){
echo "连接mysql失败:".mysqli_error($con);
exit;
}
//sql查询语句
$sql = "select username, talk from test where user_id='{$userid}'";
//执行
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($result);
$name = $row['username'];
$talk= $row['talk'];
mysqli_close($con);
?>
<!DOCTYPE html>
<html>
<head>
<title>用户信息</title>
</head>
<body>
<p>
用户名:
<?php
echo $name;
?>
</p>
<p>
个人简介:
<?php
echo $talk;
?>
</p>
</body>
</html>