導航:首頁 > 編程語言 > php監聽session

php監聽session

發布時間:2023-05-31 22:17:59

㈠ 怎麼在指定的頁面監聽sessions

自動退出和返回主頁這些都是瀏覽器端的動作,伺服器端是沒法控制的。瀏覽器端的動作可以使用javascript來實現。
具體可以用javascript來纖首實現一彎野個倒數功能,時間到了之後,返回主頁。
伺服器端可以用 SessionListener 來監聽 Session 的銷毀(destroy),銷毀發生時觸發修改數據毀鬧數庫就可以了。

php session原理

在解決問題之前,先來了解一下 PHP SESSION 的工作原理。在客戶端(如瀏覽器)登錄網站時,被訪問的 PHP 頁面可以使用 session_start() 打開 SESSION,這樣就會產生客戶端的唯一標識 SESSION ID(此 ID 可通過函數 session_id() 獲取/設置)。SESSION ID 可以通過兩種方式保留在客戶端,使得請求不同的頁面時,PHP 程序可以獲知客戶端的 SESSION ID;一種是將 SESSION ID 自動加入到 GET 的 URL 中,或者 POST 的表單中,默認情況下,變數名為 PHPSESSID;另一種是通過 COOKIE,將 SESSION ID 保存在 COOKIE 中,默認情況下,這個 COOKIE 的名字為 PHPSESSID。這里我們主要以 COOKIE 方式進行說明,因為應用比較廣泛。

那麼 SESSION 的數據保存在哪裡呢?當然是在伺服器端,但不是保存在內存中,而是保存在文件或資料庫中。默認情況下,php.ini 中設置的 SESSION 保存方式是 files(session.save_handler = files),即使用讀寫文件的方式保存 SESSION 數據,而 SESSION 文件保存的目錄由 session.save_path 指定,文件名以 sess_ 為前綴,後跟 SESSION ID,如:sess_。文件中的數據即是序列化之後的 SESSION 數據了。如果訪問量大,可能產生的 SESSION 文件會比較多,這時可以設置分級目錄進行 SESSION 文件的保存,效率會提高很多,設置方法為:session.save_path="N;/save_path",N 為分級的級數,save_path 為開始目錄。當寫入 SESSION 數據的時候,PHP 會獲取到客戶端的 SESSION_ID,然後根據這個 SESSION ID 到指定的 SESSION 文件保存目錄中找到相應的 SESSION 文件,不存在則創建之,最後將數據序列化之後寫入文件。讀取 SESSION 數據是也是類似的操作流程,對讀出來的數據需要進行解序列化,生成相應的 SESSION 變數。

㈢ php網站退出功能

要實現你想要的功能,需要在打開的其他頁面上添加一個 監聽session(cookie)登陸狀態的js功能,可以使用ajax或者(iframe嵌套頁面)來刷新監聽登陸狀態,一旦一個頁面退出登陸,監聽session的頁面可以使用js重定向頁面登陸。

㈣ 關於php獲取Session問題  怎麼獲取session中的值


$_COOKIE
輸出來,我覺得你那裡
$_COOKIE里的傳送session_id的值都變了。如果真的是這樣,我猜你測試的
網址

域名
是有
下劃線
的。

㈤ php中session有什麼用怎麼使用

原生態php的session簡單使用如下:
sesstion_start();//首先開啟session
$_SESSION['user']='username';//把username存在$_SESSION['user']裡面
echo$_SESSION['user'];//直接輸出username
session_destroy();//銷毀session

㈥ 關於 php中session的問題

首先,
php

session
是存儲在
伺服器
上,
不隨用戶
瀏覽器
的關閉而消失的.
PHP
有自己的一套清理
SESSION
的機制.
建議你打開
php.ini
看下面這些部分:
;
Name
of
the
session
(used
as
cookie
name).
session.name
=
PHPSESSID
;
Initialize
session
on
request
startup.
session.auto_start
=
0
;
Lifetime
in
seconds
of
cookie
or,
if
0,
until
browser
is
restarted.
session.cookie_lifetime
=
0
session.gc_probability
=
1
session.gc_divisor
=
1000
尤其是最後2句,
關繫到
SESSION
的談橋清理
演算法
.
自己
BAIDU
查一下吧,
一言難盡.
最後說你要的效果:
我實現的效果是登錄
後台

管理員
的名字創建session,關閉瀏覽含扒猛器後session消失
那你首先需要對
COOKIE
做設置,
關閉後就消失
(當然有的瀏覽器並此野不嚴格執行,比如Firefox)
或者
PHP
判斷連接中斷時,
調用
unset($_SESSION);
session_destroy();
將用戶
SESSION
擦掉

㈦ PHP有沒有辦法監聽session - PHP進階討論

java中似乎有一個session監聽的功能,不知道PHP有沒有提供類似的東西……比如,一個商城,要記錄顧客今天訪問了哪些商品,如果採用每訪問一個商品就在資料庫里寫一次數據的話,資料庫操作稍顯頻繁,所以我想把用戶的訪問記錄先暫存在session里,在用戶退出,或者session失效的時候,再一次性寫入資料庫。如果PHP不能自動監聽session的話,那有沒有好的方法來實現上面所說的功能?

㈧ 關於php中session的問題

PHP可以用session存儲單個的敏拿陪值,也可以以數組形橋蠢式存儲和傳遞。示例如下:
入口文件設置session數組:
<?php
session_start();
$_SESSION['name']="";
$_SESSION['age']=9;
在其敏乎他頁面獲取session數組示例:
<?php
session_start();

var_mp($_SESSION['name']);
//

echo $_SESSION['age'];

㈨ 關於PHP里SESSION的問題

session是在用戶登錄伺服器後,伺服器給每個用戶一個sessionID,這個是唯一的,通常我寫程序會在session裡面記錄一下登錄用戶的信息,你在A機器上面訪問那個給session賦值的頁面,這個時候那個賦值已經這個A機器的sessionID對應的session了,而跑到B機器上面的話,你只訪問那個輸出的頁面,因為沒有賦值,肯定不會顯示,就是先訪問了賦值的頁面,輸出來了,也和A機器的是不一樣的sessionID

編程語言php中,session的意思以及詳細的介紹(望語言直白些)謝謝啦!

Session,中文譯為「會話」,它的主要用途在於實現對客戶端調用狀態的保持。

要理解這個意思,可以考慮以下的情況:

你訪問某個網站,然後這個網站是需要以會員身份登錄的,那麼當你輸入用戶名、密碼正確登錄後,這個信息怎麼讓下面的網頁得知這個呢?

我們知道,網頁是無狀態的,這句話的意思是:如果你訪問 a 網頁,再訪問 b 網頁,從實質上說,兩個網頁之間如果沒有特別的手段是完全互不相乾的(唯一的聯系可能是這兩個文件都存在一個伺服器上)。

php里的session是超全局數組(php 5以上版本),從這個角度來說,你可以把session看成是保存在內存里,供所有php腳本的訪問的數據塊。

請參看以下相關資料:

關於session

我們知道,用戶訪問一個網站時往往需要瀏覽許多網頁。對於一個通過PHP構築的網站來說,用戶在訪問的過程中需要執行許多的PHP腳本。然而由於HTTP協議自身的特點,用戶每執行一個PHP腳本都需要和Web伺服器重新建立連接。

又由於無狀態記憶的特點,此次連接無法得到上次連接的狀態。這樣,用戶在一個PHP腳本中對一個變數進行了賦值操作,而在另外一個PHP腳本中卻無法得到這個變數的值。例如,用戶在負責登錄的PHP腳本中設置了$user="wind",卻無法在另一個PHP腳本中通過調用$user來獲得「wind」這個值。也就是說,在PHP中無法設置全局變數。每個PHP腳本中所定義的變數都是只在這個腳本內有效的局部變數。

Session解決方案,就是要提供在PHP腳本中定義全局變數的方法,使得這個全局變數在同一個Session中對於所有的PHP腳本都有效。上面我們提到了,Session不是一個簡單的時間概念,一個Session中還包括了特定的用戶和伺服器。因此更詳細地講,在一個Session定義的全局變數的作用范圍,是指這個Session所對應的用戶所訪問的所有PHP。

例如A用戶通過Session定義了一個全局變數$user=「wind」中,而B用戶通過Session定義的全局變數$user=「jane」。那麼在A用戶所訪問的PHP腳本中,$user的值就是wind。

php中的Session與Cookie

在PHP開發中對比起Cookie,session 是存儲在伺服器端的會話,相對安全,並且不像鎮世 Cookie 那樣有存儲長度限制,本文簡單介紹 session 的使用。

由於 Session 是以文本文件形式存儲在伺服器端的,所以不怕客戶端修改 Session 內容。實際上在伺服器端的 Session 文件,PHP 自動修改 session 文件的許可權,只保留了系統讀和寫許可權,而且不能通過 ftp 修改,所以安全得多。

對於 Cookie 來團宏說,假設我們要驗證用戶是否登陸,就必須在 Cookie 中保存用戶名和密碼(可能是 md5 加密後字元串),並在每次請求頁面的時候進行驗證。如果用戶名和密碼存儲在資料庫,每次都要執行一次資料庫查詢,給資料庫造成多餘的負擔。因為我們並不能只做一次驗證。為什麼呢?因為客戶端 Cookie 中的信息是有可能被修改的。假如你存儲 $admin 變數來表示用戶是否登陸,$admin 為 true 的時候表示登陸,為 false 的時候表示未登錄,在第一次通過驗證後將 $admin 等於 true 存儲在 Cookie,下次就不用驗證了,這樣對么?錯了,假如有人偽造一個值為 true 的 $admin 變數那不是就立即取的了管理許可權么?非常的不安全。

而 Session 就不同了,Session 是存儲在伺服器端的,遠程用戶沒辦法修改 session 文件的內容,因此我們可以單純存儲一個 $admin 變數來判斷是否登陸,首次驗證通過後設置 $admin 值為 true,以後判斷該值是否為 true,假如不是,轉入登陸界面,這樣就可以減少很多資料庫操作了。而且可以減少每次為了驗證 Cookie 而傳遞密碼的不安全性了(session 驗證只需要傳遞一次,假如你沒有使用 SSL 安全協議的話)。即使密碼進行了 md5 加密,也是很容易被截獲的。

當然使用 session 還有很多優點,比如控制容易,可以按照用戶自定義存儲等(存儲於資料庫)。我這里就不多塌旅冊說了。

閱讀全文

與php監聽session相關的資料

熱點內容
一捏就變形的解壓玩具怎麼折 瀏覽:196
易融貸app借錢怎麼 瀏覽:939
單片機側重點 瀏覽:867
江蘇惠普伺服器虛擬化設計雲主機 瀏覽:647
在歐拉app好貓充電樁怎麼申請 瀏覽:449
反編譯代碼教程 瀏覽:798
linuxio阻塞 瀏覽:973
8腳單片機pic 瀏覽:821
如何看彩色塗鴉遮住的字安卓 瀏覽:688
擺渡機器人編程 瀏覽:654
軟程序員著裝 瀏覽:139
寶雞雲存儲伺服器 瀏覽:668
推薦超解壓游戲無廣告 瀏覽:634
大華伺服器怎麼添加門禁 瀏覽:784
戰地伺服器60hz什麼意思 瀏覽:760
成高級程序員學什麼 瀏覽:501
阿里雲接入備案後退掉伺服器 瀏覽:928
ne40e命令 瀏覽:85
安卓輸入法使用什麼編碼 瀏覽:184
手機如何開淘寶店步驟安卓手機 瀏覽:593