PHP,MYSQL检查用户是否是页面的所有者

时间:2013-02-10 23:50:04

标签: php mysql session sessionid

我正在尝试检查用户是否是个人资料页面的所有者,这样我就可以显示一个文本框,用于输入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”的表,表用户有“firs”,“last”,“username”,“password”,“email”和“id”列。

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

2 个答案:

答案 0 :(得分: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
        }
    }

答案 1 :(得分:0)

你无法完全按照自己的意愿行事。你需要获取记录。

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

然后你可以这样做:

if($_SESSION['id']==$results['id']){