我正在尝试检查用户是否是个人资料页面的所有者,这样我就可以显示一个文本框,用于输入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检查它输出文本字段并且它可以工作。问题是,如果我然后转到另一个人的个人资料,我可以看到文本字段并为他们写帖子。
答案 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']){