我有自己的php设置,只有登录用户,查看自己的个人资料才能通过我提供的表单分享内容。如果您正在查看其他用户的个人资料页面,则不应该看到它,但由于某种原因,它仍然显示出来。我能做错什么?
<?php
if (isset($_COOKIE['user_id'])) {
if(isset($_GET['id'])) {
$user_id= $_GET['id'];
}
else {
$user_id= $_COOKIE['user_id'];
}
$dbc= mysqli_connect('localhost', 'root', '', 'beta');
$query= "SELECT * FROM users WHERE user_id= '$user_id'";
$result= mysqli_query($dbc, $query);
$data= mysqli_fetch_array($result);
if (!isset($_GET['user_id']) || ($_GET['user_id'] == $_COOKIE['user_id']))
{
echo "Share Something:";
?>
<form method="post" action="share.php">
<input type="text" name="story"/>
<input type="submit" name="submit" value="share"/>
</form>
<?php
}
echo '<a href="logout.php"> Logout </a></br><hr>';
echo $data['fname'] . " " . $data['lname'] . "</br><hr>";
$query2= "SELECT * FROM posts WHERE user_id= '$user_id'";
$result= mysqli_query($dbc, $query2);
while ($row= mysqli_fetch_array($result)) {
echo $row['story'] . "</br>";
}
}
else {
echo 'please <a href="login.html"> Login </a>!';
}
?>
答案 0 :(得分:2)
一次使用$user_id = $_GET['id'];
,如果您使用$_GET['user_id']
答案 1 :(得分:1)
我猜你的if语句是当前用户ID来自cookie,而“page”的用户ID来自查询字符串。
所以试试,
if (isset($_GET['user_id']) && ($_GET['user_id'] == $_COOKIE['user_id']))
这样你就必须在你的“用户页面”上看到表格。
您还在使用'id'
和'user_id'
这是正确的吗?