【问题标题】:Errors for changing variables content depending on session status [duplicate]根据会话状态更改变量内容的错误[重复]
【发布时间】:2011-03-14 16:20:51
【问题描述】:

可能重复:
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
  • @Steven - 再看一遍;这是直接转发。这完全是同一个问题。您的 +1 在鼓励转发时是非常有害的,而不是改进原始问题以澄清现有答案如何无法回答它。

标签: php mysql session variables


【解决方案1】:

据我所知,没有错误。 id 只是与 logoptions 不匹配。

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

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

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 2019-09-26
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2020-12-06
    • 1970-01-01
    相关资源
    最近更新 更多