2012-05-07 66 views
0

我遇到了会话变量问题。第一次登录PHP会话

我有一个简单的注册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; 

到因为这也没有工作,我认为这可能是与已经存在的一个问题会话。

Thankyou 希望这是足够的信息来解决我的问题!

+0

在编码和session_destroy的顶部只使用session_start()一次,session_unset用于刷新会话。 – VibhaJ

+0

使用session_start()后,它仍然不能正常工作.. –

回答

1
session_start(); 
session_unset(); 

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

+1

正确。在开始一个会话然后调用session_unset来禁止将任何变量注册到会话范围中,有什么意义? – verisimilitude

+0

之后我再次开始会话,并且正如我所说的那样,第二次以及我使用普通代码session_start()时都正常工作。 $ av_url = $ _SESSION ['avurl']; 这也不起作用.. –

+0

您确定,您是否在任何html代码或php输出之前开始会话? (在每个页面上) – YamahaSY