PHP会话未设置()与火狐

问题描述:

我试图显示错误消息,当用户不输入数据在某些领域。如果用户没有在字段中输入任何内容,我将该错误存储在会话中。当用户输入并且设置了带有错误消息的会话时,它应该防止用户继续并显示错误。当我显示错误时,我将会话中的错误存储在变量中,然后取消设置会话,然后遍历错误,将每个错误都打印出来。这适用于除Firefox以外的所有浏览器。PHP会话未设置()与火狐

在firefox中,如果我尝试在页面任何位置的会话上使用unset(),它也会消除变量中的值。就好像变量引用会话一样。这只是Firefox中的一个问题。我需要取消设置会话,否则会影响打印出错消息的其他任何页面。

任何人有任何想法如何解决这个问题?

已经发现错误显示在我的本地主机服务器上的Firefox,但不是当我上传到网络。

+0

当你说取消设置会话你的意思是你'调用session_unset()'或者是你'调用未设置($ _ SESSION)'或你的意思是,你只是未设置单个阵列关键例如'未设置($ _ SESSION [ '关键'])'?这将是很好的你可以复制到你的文章,你现在有什么。 – bluegman991

为什么不将错误消息存储在数组中并检查数组是否为空?

$errors = array(); 

if(empty($_POST['variable'])) 
{ 
    $errors[] = "Variable empty."; 
} 

if(empty($errors)) 
{ 
    // Process form 
} 
else 
{ 
    // Loop through the array and echo out each error messsage 
} 

这样做会更有意义,可以保证在所有浏览器中都能正常工作。

+0

系统设置的方式是检查错误消息是否在第二页上,如果存在错误,则重定向到上一页以显示错误。我无法改变它的布局方式,这就是为什么我认为他们只是使用数组来使用会话。这只是一个奇怪的事情,它只是Firefox的一个问题。 – user1404472

+0

你能修改你的主帖以显示相关的代码吗? –

当我遇到类似问题时,此解决方案解决了我的问题。

http://sofiac.us/resources/press/20120521_firefox_unset.php