在查看现有帐户中的特定帐户时显示特定用户信息

问题描述 投票:0回答:1

目前,我一直困扰着如何识别/区分我的数据库中存在的许多帐户中的特定帐户。假设我在主页并点击一个帐户,我希望显示我查看过的特定帐户的信息,但我无法显示,因为我不知道如何识别我尝试的特定帐户查看。

这是我的PHP代码,显示所有帐户。

$username = $_SESSION['username'];
$sql1 = "SELECT username, address, country, zipcode, photo, bio FROM user WHERE NOT username = '$username'";
        $result = $conn->query($sql1);
        if($result->num_rows > 0)
        {
            while($row = $result->fetch_assoc())
            {
                echo "<div id = 'account'>";
                    echo "<span id = 'image'><a id = 'accounts' href = 'accounts.php'><img src = '".$row['photo']."' alt = 'profile photo' width = '100px' height = '100px' style = 'margin-right:40px; margin-top: 5px;'></span>";
                    echo "<div id = 'username'><big><b style='text-transform:lowercase;'>".$row['username']."</big></a></b><br><small><i><q>".$row['bio']."</q></i></small><br>Lives in <b style='text-transform: capitalize;'>".$row['address']."</b><br>From <b>".$row['country']."</b></div><button id = 'addFriend' type = 'button' onclick = 'addFriends()'>Add friend</button>";
                echo "</div>";
            }
        }

从上面的代码我可以通过在注册时从输入文本存储他/她的用户名来轻松识别用户(登录的人)帐户。但是现在因为没有文本字段或者我可以在会话中获得用户名的任何内容,我仍然坚持如何识别用户。而且要从数据库中检索它,我想我首先需要识别用户。希望我很清楚。先感谢您。

php html html5 mysqli
1个回答
1
投票

根据我的理解,您有一个主页,当您单击一个帐户时,您希望显示特定于该帐户的页面。假设这是您正在寻找的,您可以使用他们的ID或用户名来识别帐户。我通常做什么我使用GET参数来获取信息然后我运行查询来获取信息。所以你需要的是像这样的特定链接https://example.com/user?id=3

正如你在域和页面(https://example.com/user)之后看到的那样,我们在这种情况下有一个问号和名称id(可以是你想要的任何东西)和值=3这意味着我在超全局数组$_GET中有一个值,这是可以使用id作为关键,所以如果我这样做echo $_GET["id"]; //3输出将是3。通过这样做,您可以使用此值来查询数据库并获取特定帐户。

记住SANITIZE INPUT !!!其他明智的用户可以在您运行查询以获取信息后攻击您的数据库(使用此link获取更多信息)。详细示例:


-Home.php

/**/
<a href="https://example.com/user.php?id=1">Visit This Account!!</a>
/**/

--User.php

/**/
$id = $_GET["id"]; //SANITIZE INPUT!!!!!!
$sql1 = "SELECT username, address, country, zipcode, photo, bio FROM user WHERE id = '$id'";
        $result = $conn->query($sql1);
        if($result->num_rows > 0)
        {
            while($row = $result->fetch_assoc())
            {
                echo "<div id = 'account'>";
                    echo "<span id = 'image'><a id = 'accounts' href = 'accounts.php'><img src = '".$row['photo']."' alt = 'profile photo' width = '100px' height = '100px' style = 'margin-right:40px; margin-top: 5px;'></span>";
                    echo "<div id = 'username'><big><b style='text-transform:lowercase;'>".$row['username']."</big></a></b><br><small><i><q>".$row['bio']."</q></i></small><br>Lives in <b style='text-transform: capitalize;'>".$row['address']."</b><br>From <b>".$row['country']."</b></div><button id = 'addFriend' type = 'button' onclick = 'addFriends()'>Add friend</button>";
                echo "</div>";
            }
        }
/**/

附:您应该使用PDO和准备好的语句来防止攻击。

© www.soinside.com 2019 - 2024. All rights reserved.