我需要一些会话变量的帮助。我以前用过它们,但已经有一段时间了,显然我错过了一些东西。我编写了以下示例,演示了我认为会话变量应该如何工作,但我遗漏了一些东西。从page1.php提交值,将值传递给page2.php。会话变量已填充,在page2.php上正确显示但是,一旦我返回page1.php,该变量为空。我搞砸了哪里? 谢谢!
/* page1.php code ============================== */
<?php session_start(); ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Page 1</title>
</head>
<body>
<form method='post' id='pf' action='page2.php'>
<input type='text' id='box_inp' size='1' name='pBox'/>
<input type="submit" value="Submit">
</form><br/><br/>
<?php print_r($_SESSION); ?>
</body>
</html>
/* page1.php end ============================== */
/* page2.php code ============================== */
<?php
session_start();
$_SESSION["x_test"] = $_POST["pBox"];
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Page 2</title>
</head>
<body>
<?php print_r($_SESSION); ?>
<br/><br/>
<a href="page1.php">Back</a>
</body>
</html>
/* page2.php end ============================== */
答案 0 :(得分:0)
好的,你的代码运行正常。看起来您的问题来自您的确认。检查php.ini中的会话配置。 这是手册。 http://php.net/manual/en/session.configuration.php
这是一个完整的标准配置,你的会话配置应该可以工作:
session.save_handler = files
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.bug_compat_42 = On
session.bug_compat_warn = On
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180