如何仅向登录的人显示链接?

时间:2012-05-15 20:46:38

标签: php html session post

我有一个链接,使用jQuery,显示一个框来更新用户的生物。但是,我希望该链接仅在用户登录时显示,并且仅在该用户的页面上显示。因此,举例来说,如果我已登录,它会显示在我的页面上,但如果我转到朋友页面,它就不会显示出来以便我不必选择改变他们的生物。这是我的代码:

    <div class="changeBio">
        <?php
            if ($_SESSION['loggedin'] == true) {
                ?><a href="" id="showBio">Change bio</a><?php
            }
        ?>
    </div>

此代码将检查用户是否已登录,但是我应该在if语句中添加什么来检查它是否是正确的用户?提前谢谢!

编辑:

当每个用户登录时,他们在数据库中具有存储其信息的唯一ID。每个朋友页面都会根据这些ID显示,因此我只希望链接显示在登录人员的页面上,而不是显示在他们的朋友页面上。我试过了    if($ _SESSION [&#39; loggedin&#39;]&amp;&amp; $ id!= $ _GET [&#39; id&#39;]) 和    if($ _SESSION [&#39; loggedin&#39;]&amp;&amp; $ id == $ _SESSION [&#39; id&#39;]) 但它们都不起作用..在朋友页面的网址中,您正在查看它会将该用户的ID显示为GET变量(如果有帮助的话)。

3 个答案:

答案 0 :(得分:0)

您将不得不包括WHO已登录,而不仅仅是他们是否登录。您需要这些信息来确定要显示的生物。

您的数据与此类似:

<div class="changeBio">
    <?php
        $id = $_POST['id'];
        if ($_SESSION['loggedin'] == true && $_POST['id'] == $_SESSION['loggedin_userid']) {
        ?><a href="biopage.php?userid='<?php echo $_SESSION['loggedin_userid']; ?>'" id="showBio">Change bio</a><?php
        }
    ?>
</div>

答案 1 :(得分:0)

您需要在会话数据中存储当前登录用户的ID,用户名或某些识别功能。

然后,您可以使用类似于

的代码验证特定用户是否已登录
if ($_SESSION['currentUserID'] == $idOfTheUserThatTheBioBelongsTo)
    // let the user change the bio

答案 2 :(得分:0)

您可以在会话中存储另一个变量$ current_user以及$ id,如上所述(我猜这将继续从用户更改为用户),然后在您需要为当前用户显示消息的页面上可以使用

if($id == $current_user){
 //whatever you want to do
}