亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

php語言

php實(shí)現(xiàn)用戶登陸簡單實(shí)例

時(shí)間:2024-09-26 06:49:11 php語言 我要投稿
  • 相關(guān)推薦

php實(shí)現(xiàn)用戶登陸簡單實(shí)例

  最近學(xué)習(xí)中要使用PHP+MySql實(shí)現(xiàn)簡單登錄注冊,看了很多簡單案例后發(fā)現(xiàn),并沒有人通過PDO實(shí)現(xiàn)簡單登錄注冊,要么就是Mysql和MySqli實(shí)現(xiàn),就算實(shí)現(xiàn)了意義也不大,js就可以做的事情,沒必要放到PHP中去,我卻偏偏不相信,保留著一股倔勁,簡單的實(shí)現(xiàn)了登錄注冊,下面是小編為大家整理的php實(shí)現(xiàn)用戶登陸簡單實(shí)例,歡迎閱讀與收藏。

  php實(shí)現(xiàn)用戶登陸簡單實(shí)例

  前言:

  最近要完成的最后一個(gè)部分,就是對用戶提交的數(shù)據(jù)進(jìn)行管理,至于管理,那肯定就是管理員的事了,那一定涉及登陸,驗(yàn)證賬號(hào)權(quán)限,賬號(hào)是否過期等等問題。

  所需知識(shí)

  session,確實(shí)是很重要的東西。并且我遇到session不能跨頁,修改PHP.ini的session.use_trans_sid = 0值為1。

  具體實(shí)現(xiàn)

  我的后臺(tái)設(shè)計(jì)的比較簡單,只需輸入一個(gè)密碼即可,這個(gè)密碼當(dāng)然是保存在服務(wù)器可以更改的啦。所以只需要給session添加兩個(gè)變量,flag、time。

  首先,用flag來確定管理員是否成功登陸,用time確定登陸是否超時(shí)。提交密碼后,如果正確會(huì)給flag賦值為1,time賦值為當(dāng)前時(shí)間。每次進(jìn)入新的頁面或進(jìn)行操作時(shí)會(huì)對這兩個(gè)變量進(jìn)行判斷,首先判斷flag值是否為1,不唯一直接提示未登陸,銷毀session,如果為1,再判斷當(dāng)前時(shí)間-$_SESSION(‘time')是否小于600(10分鐘),若大于,提示登陸超時(shí),銷毀session;若小于,允許操作,并更新time變量值為當(dāng)前值。

  部分代碼

  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(); //當(dāng)前秒數(shù)

  }else{

  echo "口令錯(cuò)誤,重新輸入";

  $page = "login.html";

  }

  }

  function test_input($date){

  $date = trim($date);

  $date = stripcslashes($date);

  $date = htmlspecialchars($date);

  return $date;

  }

  點(diǎn)此跳轉(zhuǎn)

  list_all.php(部分)

  ?

  ?php  session_start();

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

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

  echo "登陸超時(shí)";

  echo '點(diǎn)此登陸';

  session_destroy();

  exit();

  }else{

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

  }

  }else{

  echo "未登陸,無權(quán)訪問!";

  echo '點(diǎn)此登陸';

  session_destroy();

  exit();

  }

  HTML代碼(login.html):

  用戶登錄

  7天內(nèi)自動(dòng)登錄

  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 == '')) {

  // 若為空,視為未填寫,提示錯(cuò)誤,并3秒后返回登錄界面

  header('refresh:3; url=login.html');

  echo "用戶名或密碼不能為空,系統(tǒng)將在3秒后跳轉(zhuǎn)到登錄界面,請重新填寫登錄信息!";

  exit;

  } elseif (($username != 'username') || ($password != 'password')) {

  # 用戶名或密碼錯(cuò)誤,同空的處理方式

  header('refresh:3; url=login.html');

  echo "用戶名或密碼錯(cuò)誤,系統(tǒng)將在3秒后跳轉(zhuǎn)到登錄界面,請重新填寫登錄信息!";

  exit;

  } elseif (($username = 'username') && ($password = 'password')) {

  # 用戶名和密碼都正確,將用戶信息存到Session中

  $_SESSION['username'] = $username;

  $_SESSION['islogin'] = 1;

  // 若勾選7天內(nèi)自動(dòng)登錄,則將其保存到Cookie并設(shè)置保留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);

  }

  // 處理完附加項(xiàng)后跳轉(zhuǎn)到登錄成功的首頁

  header('location:index.PHP');

  }

  }

  ?>

  index.PHP(默認(rèn)主頁):

  <?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'])) {

  // 若已經(jīng)登錄

  echo "你好! ".$_SESSION['username'].' ,歡迎來到個(gè)人中心!

  ';

  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實(shí)現(xiàn)用戶登陸簡單實(shí)例】相關(guān)文章:

php中實(shí)現(xiàn)回刪功能實(shí)例10-03

php簡單偽靜態(tài)實(shí)例09-16

PHP生成器簡單實(shí)例09-07

如何實(shí)現(xiàn)php登陸表單提交CSRF及驗(yàn)證碼09-14

PHP socket的配置及實(shí)例10-16

php查詢mysql的實(shí)例09-09

PHP簡單的偽靜態(tài)URL機(jī)制實(shí)現(xiàn)09-02

php中fsockopen用法實(shí)例06-20

PHP處理密碼的幾種方式實(shí)例09-27

PHP符合PSR編程規(guī)范的實(shí)例07-31