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 的几个配置文件函数
Dec 21 PHP
php 获取百度的热词数据的代码
Feb 18 PHP
PHP中防止SQL注入方法详解
Dec 25 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
PHP Ajax实现无刷新附件上传
Aug 17 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
PHP基于curl模拟post提交json数据示例
Jun 22 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 PHP
PHP常用的类封装小结【4个工具类】
Jun 28 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
php巧获服务器端信息
2006/12/06 PHP
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
javascript的delete运算符知识点总结
2019/11/19 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
python 链接和操作 memcache方法
2017/03/04 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
python列表推导式入门学习解析
2019/12/02 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Python如何操作docker redis过程解析
2020/08/10 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
电大自我鉴定范文
2013/10/01 职场文书
小学信息技术教学反思
2014/02/10 职场文书
运动会加油稿20字
2014/11/15 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL