程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP入門教程之會話控制技巧(cookie與session)

PHP入門教程之會話控制技巧(cookie與session)

編輯:PHP綜合

本文實例講述了PHP會話控制技巧。分享給大家供大家參考,具體如下:

Demo1.php

<form method="get" action="Demo2.php">
  姓名:<input type="text" name="username" /> <br />
  <input type="submit" value="提交" />
</form>

Demo2.php

<?php
  //echo $_POST['username'];
  //如果表單采用的 get 傳輸,那麼接受必須采用
  echo $_GET['username'];
  //到底那種比較好呢。????
  //$_POST[''];  比較安全
?>

Demo3.php

<?php
  //創建一個 Cookie
  //Cookie 是在你的客戶機存一個小文件,這個文件包含你登錄時的信息
  //setcookie 可以創建一個客戶機的 cookie 文件
  //第一個參數表示 cookie 的名稱,第二個參數表示這個 cookie 名稱的值
  //所謂的會話結束時,就是當你這個浏覽器關閉時,就沒有了,就自動刪除
  //創建一個包含過期的 cookie, 過期時間采用當前的時間戳 + 秒即可
  //time()+(7*24*60*60) 表示未來的7 天
  //一旦 setcookie 改變了,一刷新浏覽器,就會把舊的 cookie 覆蓋掉
  setcookie('name','oneStopWeb',time()+(7*24*60*60));
?>

Demo4.php

<?php
  setcookie('name','oneStopWeb');
  //讀取本機的 cookie,采用一個超級全局變量 $_COOKIE
  //裡面放 cookie 名即可
  //有一個特性,setcookie 並不是及時生成,它會慢一拍
  //PS:慢一拍,第一次刷新,只是生成覆蓋了原來。
  //但獲取的還是之前的,而第二次刷新,才能真正獲取到。
  //echo $_COOKIE['name'];
  //用變量檢測函數來判斷 cookie 是否存在
  if(isset($_COOKIE['name'])){
    echo $_COOKIE['name'];
  }else{
    echo '不存在此用戶';
  }
?>

Demo5.php

<?php
  //刪除 cookie
  setcookie('name','oneStopWeb');
  //中間刪除掉了這個 cookie
  //將這個值設置為空即可
  //setcookie('name','');
  //我將過期時間調整到目前的時間還少一秒,那麼就等於是過期的了
  setcookie('name','oneStopWeb',time()-1);
  echo $_COOKIE['name'];
?>

Demo6.php

<form method="post" action="Demo7.php">
  姓名:<input type="text" name="username" /> <br />
  <input type="submit" value="提交" />
</form>

Demo7.php

<?php
  //如果姓名的指定的姓名相同,那麼就生成一個 cookie
  //完成登錄
  if(isset($_POST['username']) && $_POST['username']=='oneStopWeb'){
    //如果正確了,我生成一個 cookie,再跳轉
    setcookie('name','web');
    header('Location:Demo8.php');
  }else{
    header('Location:Demo6.php');
  }
?>

Demo8.php

<?php
  if(isset($_COOKIE['name'])){
    echo '歡迎光臨:'.$_COOKIE['name'];
  }else {
    echo '非法登錄';
  }
?>

Demo9.php

<?php
  session_start(); //開戶 session 會話處理
  //session 只要用到這個,就必須開啟session_start()
  //放在文件開頭
  //創建 session ,直接采用超級全局變量賦值即可
  //session 是存在服務器端,一般存放 1440 秒,
  //如果網頁沒有任何操作,會自動銷毀,當然,可以通過 php.ini 去修改保存時間
  //如果關閉了浏覽器,那麼也自動銷毀。
  //及時性,不像 cookie 會慢半拍
  $_SESSION['name1'] = 'oneStopWeb';
  $_SESSION['name2'] = 'oneStopWeb';
  //echo $_SESSION['name'];
// if(isset($_SESSION['name'])){
//   echo $_SESSION['name'];
// }else{
//   echo '不存在此人。';
// }
  //不是刪除的方法
// $_SESSION['name'] = '';
  //真正的刪除方法
  //unset($_SESSION['name']);
// if(isset($_SESSION['name'])){
//   echo $_SESSION['name'];
// }else{
//   echo '不存在此人。';
// }
?>

Demo10.php

<?php
  session_start();
  //銷毀所有 session ,銷毀的也慢半拍
  session_destroy();
  echo $_SESSION['name1'] ;
  echo $_SESSION['name2'] ;
  //cookie適用於會員登錄,購物車啊。。。
  //因為他不占用服務器資源,所以會員特別多,購物車特別多的,就用 cookie
  //session 一般用於後台管理登錄,人少
  //安全性,一段時間不操作會自動過期
?>

更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP中cookie用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網絡編程技巧總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved