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 相关文章推荐
Windows下的PHP5.0详解
Nov 18 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
php文件扩展名判断及获取文件扩展名的N种方法
Sep 12 PHP
PHP加密解密函数详解
Oct 28 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 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函数extension_loaded()用法实例
2015/01/19 PHP
PHP中使用BigMap实例
2015/03/30 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
js控制框架刷新
2008/08/01 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
巧用canvas
2017/01/21 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
Vue+Django项目部署详解
2019/05/30 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
浅谈python内置变量-reversed(seq)
2017/06/21 Python
Python实现登录接口的示例代码
2017/07/21 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
python和php哪个更适合写爬虫
2020/06/22 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
2016年寒假生活小结
2015/10/10 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书