PHP案例实现用户登录

需求分析:

在Web应用开发中,经常需要实现用户登录的功能。假设一个名为username的用户,当该用户进入网站首页时,如果还未登录,则页面会提示登录,用户输入登录信息进行验证,验证通过进入用户中心,否则显示用户名或密码错误,重新登录。登录成功后,用户还可以单击“注销”,回到登录页面。

程序设计流程图:

login.html

<!DOCUMENT html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http
://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
	<title>会员登录</title>
	<style type="text/css">
		ul li{margin:0;padding:0;}
		form{margin:40px 30px 0;}
		form li{list-style:none;padding:5px 0;}
		form li label{float:left;width:70px;text-align:right}
		form li a{font-size:12px;color:#999;text-decoration:none}
		.login_btn{border:none;background:#01A4F1;color:#fff;font-size:14px;font-weight:bold;height:28px;line-height:28px;padding:0 10px;cursor:pointer;}
		form li img{vertical-align:top}
	</style>

</head>
<body>
<form action="login.php" method="POST">
	<fieldset>
		<legend>用户登录</legend>
		<ul>
			<li>
				<label for"">用户名:</label>
				<input type="text" name="username"/>
			</li>
			<li>
				<label for"">密码:</label>
				<input type="password" name="password"/>
			</li>
			<li>
				<label for""> </label>
				<input type="checkbox" name="remember" value="yes"/>7天内自动登录
			</li>
			<li>
				<label for""> </label>
				<input type="submit" name="login" value="登录" class="login_btn"/>
			</li>
		</ul>
	</fieldset>
</body>

</html>
login.php

<?php
	header("Content-Type:text/html;charset=utf-8");
	session_start();
	if(isset($_POST['login']))
	{
		$username = trim($_POST['username']);
		$password = trim($_POST['password']);
		if(($username=='')||($password==''))
		{
			header('refresh:3;url=login.html');
			echo "改用户名或密码不能为空,3秒后跳转到登录页面";
			exit;
		}
		else if(($username!='username')||($password!='password'))
		{
			//用户名或密码错误
			header('refresh:3;url=login.html');
			echo "用户名或密码错误,3秒后跳转到登录页面";
			exit;
		}
		else if(($username=='username')&&($password=='password'))
		{
			//登录成功将信息保存到session中
			$_SESSION['username']=$username;
			$_SESSION['islogin']=1;
			//如果勾选7天内自动保存,则将其保存到cookie
			if($_POST['remember']=="yes")
			{
				setcookie("username",$username,time()+7*24*60*60);
				setcookie("code",md5($username.md5($password)),time()+7*24*60*60);
			}
			else
			{
				setcookie("username",'',time()-1);
				setcookie("code",'',time()-1);
			}
			//跳转到用户首页
			header('refresh:3;url=index.php');
		}
	}
?>
index.php
<?php
	header("Content-Type:text/html;charset=utf-8");
	session_start();
	//首先判断Cookie是否有记住用户信息
	if(isset($_COOKIE['username']))
	{
		$_SESSION['username']=$_COOKIE['username'];
		$_SESSION['islogin']=1;
	}
	if(isset($_SESSION['islogin']))
	{
		//已经登录
		echo $_SESSION['username'].":你好,欢迎进入个人中心!<br/>";
		echo "<a href='logout.php'>注销</a>";
	}
	else
	{	//为登录
		echo "你还未登录,请<a href='login.html'>登录</a>";
	}
?>

logout.php

<?php
	header("Content-Type:text/html;charset=utf-8");
	session_start();
	//清除session
	$username=$_SESSION['username'];
	$_SESSION=array();
	session_destroy();
	//清除cookie
	setcookie("username",'',time()-1);
	setcookie("code",'',time()-1);
	echo "$username,欢迎下次光临";
	echo "重新<a href='login.html'>登录</a>";
?>

登录界面:



  • 2
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值