導航:首頁 > 編程語言 > phpsession許可權

phpsession許可權

發布時間:2022-10-05 19:06:02

① 深入理解php原理之Session Gc的一個小概率Notice

如果在ubuntu/Debian下,
採用apt安裝的PHP,
那麼在使用Session的時候,
就可能會有小概率遇到這個提示.
復制代碼
代碼如下:
PHP
Notice:
session_start():
ps_files_cleanup_dir:
opendir(/var/lib/php5)
failed:
Permission
denied
(13)
in
/home/laruence/www/htdocs/index.php
on
line
22
這是因為,
在PHP中,
如果使用file_handler作為Session的save
handler,
那麼就有概率在每次session_start的時候運行Session的Gc過程.
復制代碼
代碼如下:
//有省略
int
nrdels
=
-1;
nrand
=
(int)
((float)
PS(gc_divisor)
*
php_combined_lcg(TSRMLS_C));
if
(nrand
<
PS(gc_probability))
{
PS(mod)->s_gc(&PS(mod_data),
PS(gc_maxlifetime),
&nrdels
TSRMLS_CC);
}
//有省略
這個警告的原因是因為在apt的PHP中,
session的默認目錄/var/lib/php5的許可權是733
with
sticky
bit,
也就是
復制代碼
代碼如下:
drwx-wx-wt
root
roo
而一般PHP的worker都運行在非root身份下,
所以是沒有許可權來打開這個文件夾的(但是因為可以write,
所以不影響正常的Session文件讀取).
於是在s_gc中的如下代碼,
就會觸發開頭所說的Notice:
復制代碼
代碼如下:
//對於file
handler來說,
s_gc間接調用ps_files_cleanup_dir:
dir
=
opendir(dirname);
if
(!dir)
{
php_error_docref(NULL
TSRMLS_CC,
E_NOTICE,
"ps_files_cleanup_dir:
opendir(%s)
failed:
%s
(%d)",
dirname,
strerror(errno),
errno);
return
(0);
}
當然,
在ubuntu/Debian下,
還是有gc回收的,
只不過是外部的cron進程來完成的,
默認的在/etc/cron.d/php5:,
復制代碼
代碼如下:
09,39
*
*
*
*
root
[
-x
/usr/lib/php5/maxlifetime
]
&&
[
-d
/var/lib/php5
]
&&
find
/var/lib/php5/
-type
f
-cmin
+$(/usr/lib/php5/maxlifetime)
-print0
|
xargs
-n
200
-r
-0
r
另外,
可以看到,
在判別s_gc是否運行的時候,
有倆個關鍵變數:
PS(gc_divisor)和PS(gc_probability),
這倆個變數分別對應著session的運行時配置項的倆個同名配置項:
session.gc_probability和session.gc_divisor,
他們分別默認為1和100.
而php_combined_lcg是一個隨機數發生器,
生成0到1范圍的隨機數,
所以上面的判別相當於:
復制代碼
代碼如下:
rand
<
probability
/
gc_diviso
也就是說,
默認情況下,
差不多是100次能調用一次gc過程.
所以也就是小概率的可以看到這個Notice.
要關閉這個Notice,
只需要設置:
session.gc_probability
=
0,
讓s_gc完全沒有運行的可能即可.
當然,
你也可以改變這個文件夾的許可權…
最後,
感謝CFC4N提供這個問題.
作者:
Laruence(
)
本文地址:
http://www.laruence.com/2011/03/29/1949.html

② PHP網頁 帳號密碼 認證 怎麼保證許可權

感覺你好像理解的不太對。
首先資料庫里不能存名文密碼,一般用md5加密,這樣最起碼做到基本數據的安全。
其次,一般我們最多把用戶id,姓名,身份 這幾個數據放到session中。密碼是不會放到session裡面的。

我們的每一個單獨的項目,比如說一個微博,一個學生成績管理網,都需要登陸的。如果你的伺服器目錄里有這兩個項目,那要注意的是 session【『』】裡面的鍵名最好不要重復。否則會讓你兩個程序有session混亂,就是我登陸了微博網站,建立了名[『id』]這個session,而另一個網站也有一個叫id的session,這樣就會導致學生成績管理網不需要登陸也可以進入。一般正式伺服器就放一個項目,可是我們自己在做項目的時候才會有這種問題。

③ php後台登陸許可權判斷是用session好還是cookie好

一般是存session,但是如果要設置以後自動登錄就同時保存到cookie,因為cookie是客戶端的
登錄之後一般都是判斷session
安全性session是伺服器端的,相對cookie安全性要好一些,現在都是session和cookie結合使用

④ php、HTML、網頁設計,session裡面如何設定許可權

最好在資料庫中的賬戶管理表裡面加一個許可權欄位用來判斷


如果不加,在登錄成功時給每個用戶以用戶名的session


然後在1.php裡面寫

<?php
$_SESSION['username']='a';
if($_SESSION['username']=='a')
{
echo'你登錄的用戶是a,你可以使用';
}else{
echo'你不能使用此頁面';
}
?>

其它仿照。



⑤ php中如何使用SESSION

1、在php中使用session,首先要啟動session會話,啟動session會話要使用php內置函數session_start(),如圖所示。

⑥ php中怎麼用session來控制頁面的訪問許可權

在session()里放入一個值,然後用if-else語句判斷即可;如$_SESSION['name']='abc';
if($_SESSION['name']=='abc'){
//有許可權訪問該頁面

}else{
//無權訪問

}

⑦ php 中用戶許可權管理出,要用到session,怎麼做呢

其實不建議用session參與許可權模塊
1.session用來記錄當前用戶名,用戶編碼,角色編碼,職位編碼等等當前用戶的基本配置信息.
2.控制許可權的類獲取session中的信息後,在根據你資料庫中許可權表做控制.

閱讀全文

與phpsession許可權相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:172
python求商 瀏覽:475
ipad能用c語言編譯器嗎 瀏覽:559
軟泥解壓球最新版 瀏覽:996
4萬程序員辭職創業 瀏覽:757
thinkingphp 瀏覽:595
安卓相冊移動文件夾 瀏覽:4
耳朵清潔解壓聲控99的人都睡得著 瀏覽:203
叉車出租網站源碼 瀏覽:872
共享單車的app是什麼 瀏覽:406
不帶gui的伺服器什麼意思 瀏覽:371
金剛經及PDF 瀏覽:100
php中冒號 瀏覽:356
php5432 瀏覽:350
命令在哪使用 瀏覽:170
php獲取網頁元素 瀏覽:706
為什麼需要硬體驅動編譯 瀏覽:883
pm編程怎樣看導柱孔對不對稱 瀏覽:136
農業大學選課找不到伺服器怎麼辦 瀏覽:649
路由配置網關命令 瀏覽:933