0

我正在尝试检查用户是否是个人资料页面的所有者,以便我可以显示一个用于输入 twitter 类似帖子的文本框。

编码

$id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'");

$ultimatum_form ='';
if(isset($_SESSION['id'])){
    if($_SESSION['id']==$id){
        $ultimatum_form = 'Write an ultimatum!(220 char max)<br/>
        <form action="profile.php" method="post" enctype="multipart/form-data" name="ultimatum_form">
        <textarea name="ultimatum_field" rows="3" style="width:97%;"></textarea>
        </form>';
    }
}
print "$ultimatum_form";

在我的数据库中,我有一个名为“users”的表,表 users 有“firs”、“last”、“username”、“password”、“email”和“id”列。

如果我在会话之外设置 $ultimatum_form 检查它会输出文本字段并且它可以工作。问题是,如果我然后去另一个人的个人资料,我可以看到文本字段并为他们写帖子。

4

2 回答 2

1

您需要从查询中获取数据:

$id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'");
$r = mysql_fetch_assoc($id);
$id = $r['id'];

然后 $id 包含行“id”值。
查看 pdo/mysqli,mysql 不会在下一个 php 版本中工作。

在这里,更好:

  $id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'");
    $r = mysql_fetch_assoc($id);
    $id = $r['id'];


    if(isset($_SESSION['id']))
    {
        if($_SESSION['id']==$id)
        {
            echo '
             Write an ultimatum!(220 char max)<br/>
            <form action="profile.php" method="post" enctype="multipart/form-data" name="ultimatum_form">
            <textarea name="ultimatum_field" rows="3" style="width:97%;"></textarea>
            </form>';
        }
        else
        {
            // Not users profile page
        }
    }
于 2013-02-10T23:54:26.600 回答
0

你不能完全做你正在做的事情。您需要获取记录。

$results = mysql_fetch_array(mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'"));

然后你可以这样做:

if($_SESSION['id']==$results['id']){
于 2013-02-10T23:55:53.510 回答