php语言 百文网手机站

php实现用户登陆简单实例

时间:2022-10-14 08:46:05 php语言 我要投稿

php实现用户登陆简单实例

  最近学习中要使用PHP+MySql实现简单登录注册,看了很多简单案例后发现,并没有人通过PDO实现简单登录注册,要么就是Mysql和MySqli实现,就算实现了意义也不大,js就可以做的事情,没必要放到PHP中去,我却偏偏不相信,保留着一股倔劲,简单的实现了登录注册,下面是小编为大家整理的php实现用户登陆简单实例,欢迎阅读与收藏。

  php实现用户登陆简单实例

  前言:

  最近要完成的最后一个部分,就是对用户提交的数据进行管理,至于管理,那肯定就是管理员的事了,那一定涉及登陆,验证账号权限,账号是否过期等等问题。

  所需知识

  session,确实是很重要的东西。并且我遇到session不能跨页,修改PHP.ini的session.use_trans_sid = 0值为1。

  具体实现

  我的后台设计的比较简单,只需输入一个密码即可,这个密码当然是保存在服务器可以更改的啦。所以只需要给session添加两个变量,flag、time。

  首先,用flag来确定管理员是否成功登陆,用time确定登陆是否超时。提交密码后,如果正确会给flag赋值为1,time赋值为当前时间。每次进入新的'页面或进行操作时会对这两个变量进行判断,首先判断flag值是否为1,不唯一直接提示未登陆,销毁session,如果为1,再判断当前时间-$_SESSION(‘time')是否小于600(10分钟),若大于,提示登陆超时,销毁session;若小于,允许操作,并更新time变量值为当前值。

  部分代码

  check_pw.php

  ?php  session_start();

  $_SESSION['flag'] = 0;

  $myfile = fopen("passwd","r") or die("Unable to open file!");

  $passwd = fgets($myfile);

  if(empty($_POST['pass'])){

  echo "不能为空,重新输入";

  $page = "login.html";

  }else{

  $pass = $_POST['pass'];

  $passwd = test_input($passwd);

  $pass = test_input($pass);

  if($pass == $passwd){

  echo "口令正确,允许访问";

  $page = "list_all.php";

  $_SESSION['flag'] = 1;

  $_SESSION['time'] = time(); //当前秒数

  }else{

  echo "口令错误,重新输入";

  $page = "login.html";

  }

  }

  function test_input($date){

  $date = trim($date);

  $date = stripcslashes($date);

  $date = htmlspecialchars($date);

  return $date;

  }

  点此跳转

  list_all.php(部分)

  ?

  ?php  session_start();

  if($_SESSION['flag'] == 1){

  if(time() - $_SESSION['time'] > 600){

  echo "登陆超时";

  echo '点此登陆';

  session_destroy();

  exit();

  }else{

  $_SESSION['time'] = time();

  }

  }else{

  echo "未登陆,无权访问!";

  echo '点此登陆';

  session_destroy();

  exit();

  }

  HTML代码(login.html):

  用户登录

  7天内自动登录

  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'].' ,欢迎来到个人中心!

  ';

  echo "注销";

  } else {

  // 若没有登录

  echo "您还没有登录,请登录";

  }

  ?>

  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.'

  ';

  echo "重新登录";

  ?>

【php实现用户登陆简单实例】相关文章:

PHP中使用crypt()实现用户身份验证的实例11-10

php实现伪静态的方法实例11-11

PHP实现RSA加密类的实例解析11-02

php中实现回删功能实例11-11

php简单伪静态实例04-10

php+mysql实现无限分类实例详解08-05

PHP生成器简单实例11-09

PHP中使用session实现保存用户登录信息08-06

php画图实例11-15