亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 55
粉絲 3
評論 0
訪問量 69535
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PHP會話控制
王佳祥
原創(chuàng)
841人瀏覽過

PHP會話控制

一、對會話控制的認識

  • 會話控制的思想是指能夠在網(wǎng)站上根據(jù)一個會話來跟蹤用戶,通過會話控制,可以很容易的做到對用戶登錄的支持并根據(jù)其授權(quán)級別和個人愛好顯示相應(yīng)的內(nèi)容,可以根據(jù)會話控制記錄用戶的行為,還可以實現(xiàn)購物車。
  • setcookie('name','value','expire','path','domain','secure','httponly');
參數(shù) 描述
name 規(guī)定 cookie 的名稱
value 規(guī)定 cookie 的值
expire 規(guī)定 cookie 的過期時間,time()+3600 * 24 * 30 將設(shè)置 cookie 的過期時間為 30 天。如果這個參數(shù)沒有設(shè)置,那么 cookie 將在 session 結(jié)束后(即瀏覽器關(guān)閉時)自動失效
path 規(guī)定 cookie 的服務(wù)器路徑,如果路徑設(shè)置為 “/“,那么 cookie 將在整個域名內(nèi)有效
domain 規(guī)定 cookie 的域名,為了讓 cookie 在所有子域名中有效,您需要把 cookie 的域名前加上 “.”
secure 規(guī)定是否需要在安全的 HTTPS 連接來傳輸 cookie。如果 cookie 需要在安全的 HTTPS 連接下傳輸,則設(shè)置為 TRUE,默認是 FALSE
httponly 只可以通過http協(xié)議來訪問
  1. <?php
  2. //1.通過setcookie(),來設(shè)置cookie
  3. setcookie('name','admin',time()+600,'/','.php.edu',0);


  • header()方法發(fā)送原生http頭來設(shè)置cookie
  1. <?php
  2. header("Set-Cookie:n=1");


  • setrawcookie()發(fā)送未經(jīng) URL 編碼的 cookie
  1. <?php
  2. setcookie('email','7777@qq.com');
  3. setrawcookie('email','8888@163.com');


  1. <?php
  2. setcookie('name','admin',time()+600,'/','.php.edu',0);
  3. echo $_COOKIE['name'];


  1. <?php
  2. setcookie('name','admin',time()+600,'/','.php.edu',0);
  3. setcookie('name','zhang');
  4. echo $_COOKIE['name'];


  1. <?php
  2. //刪除cookie,把第三個參數(shù)設(shè)置為過去的時間,值設(shè)置為空
  3. setcookie('name','admin',time()+600,'/','.php.edu',0);
  4. setcookie('name','',time()-3600,'/','.php.edu',0);
  5. print_f($_COOKIE);
  • 如果cookie設(shè)置了根目錄和域名,刪除的時候也要加上根目錄和域名


5.localStorage 用于長久保存整個網(wǎng)站的數(shù)據(jù),保存的數(shù)據(jù)沒有過期時間,直到手動去刪除

  1. localStorage.setItem('name','wang');
  2. /*添加數(shù)據(jù)*/
  3. localStorage.getItem('name');
  4. /*讀取數(shù)據(jù)*/
  5. /*刪除一條數(shù)據(jù)*/
  6. localStorage.removeItem('name');
  7. /*批量刪除數(shù)據(jù)*/
  8. localStorage.clear();


三、session會話控制

1. 對session的認識

  • session把用戶的會話信息保存到服務(wù)器上

  • session的工作原理:

    1. 用戶向服務(wù)器發(fā)送請求,服務(wù)器會檢測請求里有沒有一個session ID,沒有的話,服務(wù)器會創(chuàng)建一個session文件并生成一個session ID,然后把session ID返回給客戶端;如果請求中有session ID的話,服務(wù)器就會把之前的會話信息讀取出來并且這個會話信息在服務(wù)器的任何一個頁面都是共享的。

2.session_start():啟動會話

  1. <?php
  2. session_start();
  3. //session_start() 函數(shù)必須位于 <html> 標簽之前
  4. //存儲 Session 變量
  5. $_SESSION['name'] = 'admin001';
  6. //輸出session變量
  7. echo 'session的值是:'.$_SESSION['name'];
  8. //銷毀session
  9. //session_destroy();
  10. session_unset();
  11. //釋放當前在內(nèi)存中已經(jīng)創(chuàng)建的所有$_SESSION變量,但不刪除session文件以及不釋放對應(yīng)的session id
  12. session_destroy();
  13. //刪除當前用戶對應(yīng)的session文件以及釋放session id,內(nèi)存中的$_SESSION變量內(nèi)容依然保留
  14. print_r($_SESSION);
  15. ?>




四、實戰(zhàn)練習(xí)

  1. //demo3.php代碼
  2. <?php
  3. $username = $_POST['username'];
  4. $password = $_POST['password'];
  5. //清除cookie
  6. function clearCookies(){
  7. setcookie('username','',time()-3600);
  8. setcookie('isLogin','',time()-3600);
  9. }
  10. //登錄驗證
  11. if ($_POST['sub']){
  12. if($username == 'admin' && $password == '123456'){
  13. clearCookies();
  14. setcookie('username',$username);
  15. setcookie('isLogin','1');
  16. print_r($_COOKIE);
  17. header("Location:demo4.php");
  18. }else{
  19. exit('<script>
  20. alert("用戶名或密碼錯誤");
  21. </script>');
  22. }
  23. }
  24. //退出登錄
  25. if($_GET['action'] == 'logOut'){
  26. clearCookies();
  27. }
  28. ?>
  29. <!DOCTYPE html>
  30. <html lang="en">
  31. <head>
  32. <meta charset="UTF-8">
  33. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  34. <title>實戰(zhàn)練習(xí)</title>
  35. <style>
  36. body{
  37. margin:0;
  38. padding: 0;
  39. box-sizing: border-box;
  40. background-color: gainsboro;
  41. display:flex;
  42. justify-content: center;
  43. align-items: center;
  44. }
  45. .content{
  46. width: 500px;
  47. height: 300px;
  48. border-radius: 10px;
  49. box-shadow: 0 0 5px #888;
  50. background-color: #fff;
  51. position:absolute;
  52. top:30%;
  53. padding:10px;
  54. }
  55. </style>
  56. </head>
  57. <body>
  58. <table class="content">
  59. <form action="" method="post">
  60. <tr>
  61. <td><label for="username">賬號:</label></td>
  62. <td><input type="text" name="username" id="username"></td>
  63. </tr>
  64. <tr>
  65. <td><label for="password">密碼:</label></td>
  66. <td><input type="password" name="password" id="password"></td>
  67. </tr>
  68. <tr>
  69. <td colspan="2"><input type="submit" name="sub" value="提交"></td>
  70. </tr>
  71. </form>
  72. </table>
  73. </body>
  74. </html>

  1. //demo4.php代碼
  2. <?php
  3. if(!isset($_COOKIE['isLogin']) || $_COOKIE['isLogin'] != "1"){
  4. exit('<script>
  5. alert("請先登錄");
  6. location.href = "demo3.php";
  7. </script>');
  8. }
  9. echo '<h1>歡迎登錄</h1>'.$_COOKIE['username'].'<a href="demo3.php?action=logOut">退出</a>';






五、學(xué)習(xí)總結(jié)

  • 設(shè)置setcookie(),header(‘Set-Cookie:a=1’),setrawcookie()

  • 查看cookie用$_COOKIE

  • 更新直接覆蓋setcookie()

  • 刪除cookie,設(shè)置時間為負數(shù),setcookie(‘參數(shù)’,’null’,time()-3600);

  • 如果設(shè)置了根目錄,域名;刪除時必須寫上根目錄和域名

2.session(保存在服務(wù)器端)

  • 設(shè)置php.ini,session.auto_start = 0;啟動會話時需要寫session_start();

  • session變量賦值:$_SESSION[‘name’] = ‘a(chǎn)dmin’;

  • 刪除session:

  1. session_unset();
  2. 釋放當前在內(nèi)存中已經(jīng)創(chuàng)建的所有$_SESSION變量,但不刪除session文件以及不釋放對應(yīng)的session id
  3. session_destroy();
  4. 刪除當前用戶對應(yīng)的session文件以及釋放session id,內(nèi)存中的$_SESSION變量內(nèi)容依然保留
批改老師:GuanhuiGuanhui

批改狀態(tài):合格

老師批語:寫的可以,這種卡片樣式我也喜歡!
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費學(xué)