php实现登录的例子

下面模拟一个web端登录服务器和退出登录的例子,账号:username,密码:password,输入正确后,登录成功并页面跳转。

注意:所有文件位于apache的www目录下,测试时,启用apache,然后从浏览器地址栏输入127.0.0.1/login.html,即可打开登录界面。

界面:

登录界面login.html代码:

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>

index.php文件:

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>"; 
 } 
?> 

login.php文件代码:

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'); 
  } 
 } 
?>

logout.php代码:

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 小时前
手写生产级 jQuery Toast 轻量提示组件|零插件依赖、动画流畅、极简高
前端·javascript·jquery
24zhgjx-fuhao2 小时前
虚链路的配置
开发语言·网络·php
Oneslide2 小时前
UI设计-企业OA风格
前端
沈千秋.2 小时前
thinkphp5.2反序列化
网络安全·php·反序列化
程序员海军3 小时前
我用了 8 个月 Codex CLI,总结出这套 AI 编程工作流
前端·后端·aigc
এ慕ོ冬℘゜3 小时前
手写一款高兼容、零BUG图片预览组件|前端
前端·bug
铁链鞭策大师3 小时前
javaEE之多线程(2)
java·前端·java-ee
KaMeidebaby3 小时前
卡梅德生物技术快报|生信实操:ChIP 染色质免疫共沉淀技术流程、短板与替代方案详解
前端·人工智能·物联网·百度·新浪微博
weixin199701080163 小时前
[特殊字符] 【性能提升300%】仿1688首页的Webpack优化全记录(附构建分析Python脚本)
前端·python·webpack
海兰3 小时前
【文字三国志:第五篇】天命重构,游戏前端UI设计
前端·人工智能·游戏·语言模型