0

我对会话变量有疑问。

我有一个简单的注册 php 页面,它使用 ajax 调用来验证用户名和电子邮件地址(如果它们已经存在)。它还有一个 ajax 图像上传器,可以预览所选图像。

现在这就是我设置会话变量的方式:-

session_start();
session_unset();
$_SESSION = array();

if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

session_destroy();
session_start();

$_SESSION['avurl'] = $filename;

$filename 是有效的,因为它在上面的代码中就在这个片段之后回显。

在我需要使用此会话变量的页面中,我有这个:-

session_start();

$av_url = $_SESSION['avurl'];

现在奇怪的是,每当它第一次运行时,会话变量没有任何值。但是第二次就可以了。

我如何检查这一点是我创建了一个 test.php ,它只是回显 $_SESSION['avurl'] 并且第一次它从不显示任何东西,但它第二次显示。

我从中得出的结论是,一旦它回显了这个会话变量,它就会开始存储该值。

我用来设置该变量的所有代码都是从以下内容编辑的:-

session_start();

$_SESSION['avurl'] = $filename;

对此,因为这也不起作用,我认为这可能是现有会话的问题。

谢谢你希望这是解决我的问题的足够信息!

4

1 回答 1

1
session_start();
session_unset();

此代码删除您的会话...您为什么这样做?

于 2012-05-07T11:55:03.813 回答