PHP实现用户登录功能(MySQL+Session+表单)

一、环境准备

可参考本人之前的一篇拙作(如果只在本地调试,则只看第一部分即可):【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>
  • 8
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
这个问题需要分成两个部分来回答。首先,需要通过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实现用户注册和登录系统。请注意,这只是一个基本实现,实际应用程序需要更严格的密码策略和其他安全措施来保护用户数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超周到的程序员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值