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 相关文章推荐
基于mysql的论坛(6)
Oct 09 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
php将会员数据导入到ucenter的代码
Jul 18 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php判断用户是否手机访问代码
Jun 08 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
Dec 07 PHP
php通过文件头判断格式的方法
May 28 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 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翻页类
2009/06/01 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
js的一些常用方法小结
2011/06/29 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
python 线程的五个状态
2020/09/22 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
大学生实习自我鉴定
2013/12/11 职场文书
50岁生日感言
2014/01/23 职场文书
前处理组长岗位职责
2014/03/01 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
英语教育专业自荐信
2014/05/29 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
大学推普周活动总结
2015/05/07 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书