0

ログインしたユーザーのみが自分のプロファイルを表示して、提供するフォームを介して何かを共有できるように、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>!';
}

?>
4

2 に答える 2

2

一度使う$user_id = $_GET['id'];と使うなら$_GET['user_id']

于 2012-08-11T20:40:37.780 に答える
1

あなたの if ステートメントから、現在のユーザー ID は Cookie から取得され、「ページ」のユーザー ID はクエリ文字列から取得されると推測しています。

試してみてください。

if (isset($_GET['user_id']) && ($_GET['user_id'] == $_COOKIE['user_id']))

そうすれば、フォームを表示するには、自分の「ユーザーページ」にいる必要があります。

あなたも使っ'id'ていますが、'user_id'どちらが正しいですか?

于 2012-08-11T20:42:37.203 に答える