2011-03-14 39 views
0

可能重复:
Errors for changing variables content depending on session status误差取决于会话状态变化的变量内容

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

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(); 
} 

然后运行一些其他的代码,我不会有,那么这段代码:

首先脚本从URL中获取的ID

// ------- 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; 

现在我的问题,它所做的一切显示用于登录并查看某人elses配置文件“您正在查看某人elses配置文件”的选项。如果您发现任何会导致此问题的错误,请在下面回答。谢谢! :)

+0

哥们,他有一个问题。除非他绝对地复制他的接踵而至,否则不会重复。 +1 –

+0

@Steven - 再看一遍;这是一个直接转发。这完全是**相同的问题。由于*鼓励*转贴,而不是改进原始问题以澄清现有答案如何回答,因此您的+1非常有害。 –

回答

0

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

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

顺便说一句,你可以使用INTVAL()或简单地铸造为(INT),而不是正则表达式