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 相关文章推荐
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
浅谈php中include文件变量作用域
Jun 18 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
PHP邮箱验证示例教程
Jun 01 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
laravel中的一些简单实用功能
Nov 03 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 PHP
PHP小程序支付功能完整版【基于thinkPHP】
Mar 26 PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
2017/10/16 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python标准库内置函数complex介绍
2014/11/25 Python
python中的代码编码格式转换问题
2015/06/10 Python
pandas object格式转float64格式的方法
2018/04/10 Python
Django实现单用户登录的方法示例
2019/03/28 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
python绘制BA无标度网络示例代码
2019/11/21 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
opencv python图像梯度实例详解
2020/02/04 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
应用艺术专业个人的自我评价
2014/01/03 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
2015年大学生实习评语
2015/03/25 职场文书
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
Golang入门之计时器
2022/05/04 Golang