2016-09-28 168 views
0

您好我正在学习PHP并试图建立论坛作为开始。 Forum 您可以执行测试并查看登录会话未正确响应。 用户名:密码测试:测试PHP会话无法正常工作

<?php 
//signout.php 
include 'connect.php'; 
include 'header.php'; 

echo '<h2>Sign out</h2>'; 

//check if user if signed in 
if(isset($_SESSION['signed_in']) && $_SESSION['signed_in'] == true) 
{ 
    //unset all variables 
    $_SESSION['signed_in'] = NULL; 
    $_SESSION['user_name'] = NULL; 
    $_SESSION['user_id'] = NULL; 
    $_SESSION['user_level'] = NULL; 


    echo 'Succesfully signed out, thank you for visiting.'; 
    echo " test"; 
} 
else 
{ 
    echo 'You are not signed in. Would you <a href="sign_in.php">like to</a>?'; 
} 

include 'footer.php'; 
?> 

您可以登录,但再经过某些页面看起来您还没有登录或试图退出不退出的情况下正确。

问题是我的网站托管服务器上的会话。 本机在我的电脑上,它在WAMP下工作正常。 测试另一个网络托管它工作正常。

不知道它是什么...

+5

请给我们提供你的代码。即使我们访问您的网站,我们也无法看到它背后的PHP代码。我们不可能知道发生了什么事。 – icecub

+0

这里是例如注销代码。当我尝试注销时,我可以多次执行此操作,并且实际会话为空时需要时间。在另一个虚拟主机或本地服务器WAMP上,它的工作原理应该如何。没问题。 – Marcel

+0

检查您的PHP日志“Headers already sent”错误并修复它们。见http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php – Barmar

回答

0

你是如何处理你的会话在每一页上?它似乎通常设置正确,我已回复“主题测试”,并报告我已成功回复,但未显示在列表中。

过去搞砸了我的一件事是忘记把session_start();在页面的顶部,或在提供该页面的函数中。您的会话数据仍然存在,但无法访问该页面,也不会记录您尝试存储的任何会话数据。

+0

嗨克雷格是的,这是另一个问题,答复不立即显示。这需要时间。 session_start()作为第一件事在标题中。这个问题只有在我的虚拟主机没有其他地方。我也可以继续退出,有时它可以在某些时候不工作... – Marcel

0

只是快速更新

问题是不是与我的剧本,但与虚拟主机和“启用Unixy漆”。 我不得不禁用它。

谢谢你的全力帮助