根据会话状态更改变量内容的错误

时间:2011-03-14 08:00:37

标签: php mysql session variables

  

可能重复:
  Errors for changing variables content depending on session status

您好!我正在尝试编写一个脚本,根据会话状态和页面URL中的ID(例如www.example.com/profile.php?id=1)更改变量内容,以便显示一组内容,如果他们登录并查看别人的个人资料,另一个如果登录并在那里有自己的个人资料,另一个如果登录并查看别人的资料。

首先,脚本从url获取ID:

 if(isset($_GET['id'])) {
     $id = preg_replace('#[^0-9]#i', '', $_GET['id']); // filter everything but numbers
} else if (isset($_SESSION['idx'])) {
     $id = $logOptions_id;
} else {
   header("location: index.php");
   exit();
}

然后它运行一些我不会包含的其他代码,然后是这段代码:

// ------- DECIDES WHAT TO DISPLAY, DEPENDING ON SESSION---------

    if (isset($_SESSION['idx']) && $logOptions_id == $id) { // If session is set and ID matches the profiles ID
    $content = ""Your viewing your own profile";

    } else if (isset($_SESSION['idx']) && $logOptions_id != $id) { // If SESSION is set, but ID dosent match profiles ID
    $follow_option = "Your viewing someone elses profile";


    } else {
    $content = "Your are not logged in";
    }
// ------- END DECIDES WHAT TO DISPLAY, DEPENDING ON SESSION---------

print $content;

现在我的问题是,它所做的只是显示登录和查看别人个人资料的选项“你正在查看别人的资料”。如果您发现任何导致此问题的错误,请在下面回答。谢谢! :)

1 个答案:

答案 0 :(得分:0)

从我所看到的,没有错误。 id只是与logoptions不匹配。

最有可能的是,您正在更改分配和最终检查之间的ID或logoptions。在两个变量的两个位置尝试vardump,看看它们是否仍然匹配。

顺便说一句,您可以使用intval()或简单地转换为(int)而不是正则表达式