[請益] php.ini的Session設定啟用
//以下是phpinfo()輸出結果
session
Session Support enabled
Registered save handlers files user
Registered serializer handlers php_serialize php php_binary
Directive Local Value Master Value
session.auto_start On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path /share/Web/php/session/ /share/Web/php/session/
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /share/HDA_DATA/.php_session /share/HDA_DATA/.php_session
session.serialize_handler php php
session.upload_progress.cleanup On On
session.upload_progress.enabled On On
session.upload_progress.freq 1% 1%
session.upload_progress.min_freq 1 1
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix upload_progress_ upload_progress_
session.use_cookies On On
session.use_only_cookies On On
session.use_strict_mode Off Off
session.use_trans_sid 1 1
//以下是php.ini
[Session]
session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 1
session.cookie_lifetime = 0
session.cookie_path = /share/Web/php/session/
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
session.save_path = /share/HDA_DATA/.php_session
//以下是 session01.php
<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content Type" content="text/html; charset=UTF-8">
<title>session01
</title>
<style>
</style>
</head>
<body>
<?php
$_SESSION['IDX1']=10;
$_SESSION['IDX2']=20;
echo "<hr>";
echo '<a href="session02.php">Go to Page-Session02</a><hr>';
?>
</body>
</html>
//以下是 session02.php
<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content Type" content="text/html; charset=UTF-8">
<title>session02
</title>
<style>
</style>
</head>
<body>
<?php
echo "IDX1 is:".$_SESSION["IDX2"]."</br>";
echo "IDX2 is:".$_SESSION["IDX2"]."</br>";
echo "<hr>";
echo '<a href="session01.php">Go to Page-Session01</a><hr>';
?>
</body>
</html>
//先在瀏覽器開session01.php,點擊Go to Page-Session02顯示以下:
<html>
<head>
<meta http-equiv="Content Type" content="text/html; charset=UTF-8">
<title>session02
</title>
<style>
</style>
</head>
<body>
IDX1 is:</br>
IDX2 is:</br>
<hr><a href="s1.php">Go to Page-Session01</a><hr>
</body>
</html>
//問題:要如何修改php.ini才能使Session正常可用?
//才有辦法在最後使之出現: IDX1 is:10 和 IDX2 is:20
//環境補充說明:
// QNAP QTS 4.2.1
// PHP 5.5.29
// Server API:Apache 2.0 Handler
// Apache API Version:20051115
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.126.209
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1455310579.A.854.html
→
02/13 22:35, , 1F
02/13 22:35, 1F
→
02/13 22:35, , 2F
02/13 22:35, 2F
→
02/13 22:36, , 3F
02/13 22:36, 3F
→
02/13 22:37, , 4F
02/13 22:37, 4F
我試著按你的方法叫出錯誤訊息
[/] # chmod 666 /share/HDA_DATA/.php_session
[/] # ls -la /share/HDA_DATA/.php_session
drw-rw-rw- 2 admin administ 4096 Feb 13 23:37 ./
drwxrwxrwx 33 admin administ 4096 Feb 11 15:53 ../
此時透過session01.php和session02.php新加入顯示錯誤程式:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
會回傳:
Warning: Unknown:
open(/share/HDA_DATA/.php_session/sess_da2519c8bbab51f839ca0b906a3f6386,
O_RDWR) failed: Permission denied (13) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that
the current setting of session.save_path is correct
(/share/HDA_DATA/.php_session) in Unknown on line 0
我再改權限為全部可讀可寫後
[/] # chmod 777 /share/HDA_DATA/.php_session
[/] # ls -la /share/HDA_DATA/.php_session
drwxrwxrwx 2 admin administ 4096 Feb 13 23:48 ./
drwxrwxrwx 33 admin administ 4096 Feb 11 15:53 ../
-rw------- 1 httpdusr administ 0 Feb 13 23:47
sess_0263a76edc2257bd7df2b3a6ae4fbcb9
-rw------- 1 httpdusr administ 73 Feb 13 23:47
sess_0f5dcdcae867886f13d0ad48c9dc5844
-rw------- 1 httpdusr administ 73 Feb 13 23:47
sess_18ce177bc8c5429d2ad6abbdf2fac52d
-rw------- 1 httpdusr administ 73 Feb 13 23:47
sess_1a26e665987b3606322e29b52120274e
-rw------- 1 httpdusr administ 0 Feb 13 23:47
sess_2104c53f5ecd17d27e7ef54b9343e67d
-rw------- 1 httpdusr administ 73 Feb 13 23:47
sess_24c8ce30d9e52fbef0f0c5cf3bbb9b04
-rw------- 1 httpdusr administ 0 Feb 13 23:47
sess_92cc230c4053183b6746014b1fb5a7f0
-rw------- 1 httpdusr administ 0 Feb 13 23:48
sess_a2d01faa8eff88ec206b40eaf15010b8
-rw------- 1 httpdusr administ 73 Feb 13 23:48
sess_bc4a70f18c79fd47f8cc030ba0bc2515
-rw------- 1 httpdusr administ 0 Feb 13 23:47
sess_fe760a888ed3f2bd0c7284a2f1f6deaf
發現session01.php和session02.php的錯誤訊息不見了,且有找到上述的Session檔案
但是瀏覽器的結果 IDX1 is: 和 IDX2 is:後面還是空值
代表session01.php即便已經建立session檔案但還是沒有把值傳到session02.php
請教如何解決? 感恩!!
※ 編輯: pavlov (119.14.70.115), 02/14/2016 00:01:01
PHP 近期熱門文章
PTT數位生活區 即時熱門文章