PHP实现简单登录界面


Posted in PHP onOctober 23, 2019

PHP学习路上的第一个完整的极小极小的项目,特意做个记录

登录界面:

PHP实现简单登录界面

html代码(login.html):

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

login.php:(登陆处理页)

<?php 
 header('Content-type:text/html; charset=utf-8');
 // 开启Session
 session_start();
 
 // 处理用户登录信息
 if (isset($_POST['login'])) {
 # 接收用户的登录信息
 $username = trim($_POST['username']);
 $password = trim($_POST['password']);
 // 判断提交的登录信息
 if (($username == '') || ($password == '')) {
  // 若为空,视为未填写,提示错误,并3秒后返回登录界面
  header('refresh:3; url=login.html');
  echo "用户名或密码不能为空,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
  exit;
 } elseif (($username != 'username') || ($password != 'password')) {
  # 用户名或密码错误,同空的处理方式
  header('refresh:3; url=login.html');
  echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
  exit;
 } elseif (($username = 'username') && ($password = 'password')) {
  # 用户名和密码都正确,将用户信息存到Session中
  $_SESSION['username'] = $username;
  $_SESSION['islogin'] = 1;
  // 若勾选7天内自动登录,则将其保存到Cookie并设置保留7天
  if ($_POST['remember'] == "yes") {
  setcookie('username', $username, time()+7*24*60*60);
  setcookie('code', md5($username.md5($password)), time()+7*24*60*60);
  } else {
  // 没有勾选则删除Cookie
  setcookie('username', '', time()-999);
  setcookie('code', '', time()-999);
  }
  // 处理完附加项后跳转到登录成功的首页
  header('location:index.php');
 }
 }
 ?>

index.php(默认主页):

<?php 
 header('Content-type:text/html; charset=utf-8');
 // 开启Session
 session_start();
 
 // 首先判断Cookie是否有记住了用户信息
 if (isset($_COOKIE['username'])) {
 # 若记住了用户信息,则直接传给Session
 $_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()-99);
 setcookie('code', '', time()-99);
 
 // 提示信息
 echo "欢迎下次光临, ".$username.'<br>';
 echo "<a href='login.html'>重新登录</a>";
 
 ?>

登录成功的状态:

PHP实现简单登录界面

若勾选7天内自动登录,则会将登录信息通过Cookie和Session技术保存在本地Cookie文件中,7天内会自动登录。

注销页面:

PHP实现简单登录界面

登录错误的几种情况都做了处理:

PHP实现简单登录界面

PHP实现简单登录界面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP iconv 函数转gb2312的bug解决方法
Oct 11 PHP
php去除头尾空格的2种方法
Mar 16 PHP
php内嵌函数用法实例
Mar 20 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
php实现算术验证码功能
Dec 05 PHP
Laravel框架中缓存的使用方法分析
Sep 06 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 PHP
laravel框架与其他框架的详细对比
Oct 23 #PHP
laravel清除视图缓存的代码
Oct 23 #PHP
PHP实现简单用户登录界面
Oct 23 #PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 #PHP
laravel 解决crontab不执行的问题
Oct 22 #PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 #PHP
在Laravel 中实现是否关注的示例
Oct 22 #PHP
You might like
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
python面向对象实现名片管理系统文件版
2019/04/26 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
出国英文推荐信
2014/05/10 职场文书
食品安全演讲稿
2014/09/01 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
行政处罚告知书
2015/07/01 职场文书
企业安全生产规章制度
2015/08/06 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers