作者pavlov (海风)
看板PHP
标题[请益] php.ini的Session设定启用
时间Sat Feb 13 04:56:17 2016
//以下是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://webptt.com/cn.aspx?n=bbs/PHP/M.1455310579.A.854.html
1F:→ JustGame: 猜测是 /share/HDA_DATA/.php_session 这个目录不存在或 02/13 22:35
2F:→ JustGame: 权限问题。 02/13 22:35
4F:→ JustGame: 这样就知道问题出在哪里 02/13 22:37
我试着按你的方法叫出错误讯息
[/] # 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