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
ASP知识讲座四
Oct 09 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
关于UEditor编辑器远程图片上传失败的解决办法
Aug 31 PHP
PHP简单选择排序算法实例
Jan 26 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 PHP
如何在PHP中使用AES加密算法加密数据
Jun 24 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
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
Javascript里使用Dom操作Xml
2007/01/22 Javascript
JavaScript中“+=”的应用
2007/02/02 Javascript
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
原生实现一个react-redux的代码示例
2018/06/08 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
教师推荐信范文
2013/11/24 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
小学教师读书活动总结
2014/07/08 职场文书
开展批评与自我批评心得体会
2014/10/17 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
公司禁烟通知
2015/04/23 职场文书
调解协议书范本
2016/03/21 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js