第一页abc.html
< form action="xyz.php" method="post" >
< input type=text value="ABC" name="first" id="first" />
< /form>
第二页xyz.php
session_start();
$var1 = $_Request['first'];
$_Session['myvar'] = $var1;
session_write_close();
echo "<a href='lkj.php'>click here</a>"
第三页lkj.php
session_start();
echo $_Session['var1'];
并且输出什么都没有,它完全是空白的,因为会话变量中没有任何内容 你能帮帮我吗?
答案 0 :(得分:6)
您的情况不正确,并且变量标识符在PHP中区分大小写:
// Incorrect:
$var1 = $_Request['first'];
$_Session['myvar'] = $var1;
session_write_close();
// Should be:
$var1 = $_REQUEST['first'];
$_SESSION['myvar'] = $var1;
session_write_close();
// On lkj.php:
session_start();
echo $_SESSION['var1'];
此外,我强烈建议您使用$_REQUEST
而不是$_POST
。您的表单指定method='post'
。
$var1 = $_POST['first'];
$_SESSION['myvar'] = $var1;
答案 1 :(得分:1)
我在您提供的代码中看到了一些问题。
您正在错误地引用变量。在xyz.php
上设置$_Session['myvar'] = $var1;
,然后在ljk.php
上设置您正在尝试回显$_Session['var1']
,因为它尚未设置。您要访问的变量为$_SESSION['myvar']
,因为这是xyz.php
中设置的变量。
您想要使用$_SESSION
,而不是$_Session
。
您使用的是$_REQUEST
,这是一个超全局,可能会引起一些安全问题。虽然您的代码可能不会因其当前目的而受到影响,但最好还是避免使用它。而是使用$_POST
,因为它只会获取已发布的数据。