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实现网上点歌(二)
Oct 09 PHP
PHP+APACHE实现用户论证的方法
Oct 09 PHP
php中变量及部分适用方法
Mar 27 PHP
php下将XML转换为数组
Jan 01 PHP
PHP中isset()和unset()函数的用法小结
Mar 11 PHP
ThinkPHP连接数据库及主从数据库的设置教程
Aug 22 PHP
PHP导出Excel实例讲解
Jan 24 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
PHP对象克隆clone用法示例
Sep 28 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
laravel 多图上传及图片的存储例子
Oct 14 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 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
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
Python中关键字is与==的区别简述
2014/07/31 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
幼儿园国庆节活动方案
2014/02/01 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
服务标语口号
2014/07/01 职场文书
先进班集体事迹材料
2014/12/25 职场文书
面试感谢信范文
2015/01/22 职场文书
加薪通知
2015/04/25 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js