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学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
PHP 数组和字符串互相转换实现方法
Mar 26 PHP
PHP转换文件夹下所有文件编码的实现代码
Jun 06 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php命令行用法入门实例教程
Oct 27 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php计算指定目录下文件占用空间的方法
Mar 13 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
php 基础函数
Feb 10 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 PHP
PHP命令行与定时任务
Apr 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
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
python的类方法和静态方法
2014/12/13 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
Python实现新浪博客备份的方法
2016/04/27 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
工程现场管理求职自荐信
2013/10/02 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
批评与自我批评总结
2014/10/17 职场文书
社区元宵节活动总结
2015/02/06 职场文书
房产证明范本
2015/06/19 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
nginx rewrite功能使用场景分析
2022/05/30 Servers