PHP会话不存储值
问题描述:
首页abc.htmlPHP会话不存储值
< 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'];
和输出之炊,它完全空白,因为会话变量中没有任何内容。
你能帮我解决这个问题吗?
答
你的情况是不正确的,变量标识符情况下,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;
答
我看到您提供的代码有几个问题。
您正在引用您的变量不正确。在
xyz.php
你设置$_Session['myvar'] = $var1;
,然后在ljk.php
你试图回声$_Session['var1']
哪些不会存在,因为它尚未设置。您想要访问的变量将是$_SESSION['myvar']
,因为这是在xyz.php
中设置的变量。你想利用
$_SESSION
而不是$_Session
。您正在使用
$_REQUEST
这是一个超全球性的,可能会引起一些安全问题。虽然您的代码可能不会因其当前目的而受到影响,但总是避免它的一个更好的主意。取而代之的是使用$_POST
,因为这只会接收已发布的数据。
你试过使用'$ _SESSION'而不是'$ _Session'吗? PHP变量区分大小写 – NullUserException