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

php之session會話控制

編輯:關於PHP編程

php之session會話控制


當浏覽器將 cookie 數據關閉之後,網站使用cookie傳遞將不能進行,而url參數傳遞還是能夠進行(session),其實編寫php的session會話控制整體和cookie會話控制一樣

首先建立編寫要用到的php文件

data-cke-saved-src=https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011709224606.png

這一步是和 cookie 一樣,其實session也可以通過cookie進行傳遞,在 cookie的基礎上在開的頭開啟session:session_start()

 



下面要注意的是,login.php 的跳轉頁面不能使用header 而只能通過 javascript 進行跳轉

 

 

//跳轉界面
echo '<script>';|r|
echo location='index.php';|r|
echo '</script>';

然後將 $_COOKIE[ ] 改為 $_SESSION[ ] 即可

 

session 通過 cookie傳遞就是這樣,下面主要是講解一下 url參數傳遞

第一種:通過sid的方式進行參數傳遞,即在鏈接或表單後加上 “?sid=

這種方法也可以使用配置文件中的PHPSESSID來替換sid,也能達到一樣的效果

login.php

 




login.php 的php部分也稍作修改

 

 

;  //跳轉頁面不能不是header

    if(isset($_POST[sub])){
    	include conn.inc.php;

    	$sql=select id from users where name='{$_POST[name]}' and password='.md5($_POST[password]).';

    	$result=$mysqli->query($sql);

    	//保存數據
    	if($result->num_rows > 0){
    		$row=$result->fetch_assoc();
    		
    		$_SESSION[username]=$_POST[name];
    		$_SESSION[uid]=$_POST[uid];
    		$_SESSION[isLogin5]=1;

    		//跳轉界面
    		echo '<script>';|r|
    		echo location='index.php?sid=.session_id().';   //將session_id() 調過來|r|
    		echo '</script>';
    	}
    	echo 用戶名密碼有誤;
    }
?>
其它頁面只要在鏈接後面加上 “?sid=” 即可

 

注銷程序不像cookie那樣,分四步:開啟、清空、刪除和徹底銷毀

 

    //開啟session
    session_start();

    //情況session值
    $_SESSION=array();

    //刪除客戶端的在cookie中的sessionid
    if(isset($_COOKIE[session_name()])){
        setCookie(session_name(),'',time()-3600,'/'); //一定要寫上第四個參數(路徑)
    }

    //徹底銷毀session
    session_destroy();


第二種,不需要設置根據浏覽器是否開啟cookie數據功能而自動選擇用cookie還是session進行傳遞

 

a、 鏈接或表單後面都加上 ”?“, 這個跟通過sid傳遞相似,不過SID是常數

index.php:

 

    >第二頁

    >第三頁

    >退出

login.php:
   		//跳轉界面
    		echo '<script>';|r|
    		echo location='index.php?.SID.';   //SID 常量如果開啟cookie則使用cookie,如果沒開啟就用session|r|
    		echo '</script>';



method=post>

用戶登錄

  用戶名 密碼
b、修改php.ini配置文件

 

代碼基本和cookie傳遞的一樣,就只是開頭需要開啟session:session_start();

作法:將配置文件中 session.use_trans_sid 的值改為 1
作用:在所有鏈接的地方默認加上 PHPSESSID 的形式

data-cke-saved-src=https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011709224608.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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