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 setcookie() cannot modify header information 的解决方法
Jan 09 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
Apr 09 PHP
PHP实现无限级分类(不使用递归)
Oct 22 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
php简单压缩css样式示例
Sep 22 PHP
php并发加锁示例
Oct 17 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
Nov 09 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
PHP接入微信H5支付的方法示例
Oct 28 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 PHP
php中用unset销毁变量并释放内存
May 10 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中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
利用php生成验证码
2017/02/23 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
JS表格组件神器bootstrap table详解(强化版)
2016/05/26 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
英国日常交易网站:Wowcher
2018/09/04 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
合同专员岗位职责
2013/12/18 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
一起来学习Python的元组和列表
2022/03/13 Python
python的html标准库
2022/04/29 Python