检查两个结果是否相同无效

时间:2014-06-27 20:05:15

标签: php html forms url pdo

所以我正在尝试为该帐户的用户显示一条消息。所以我要转到用户个人资料/index.php?username=joe。如果我Joe你有发布的能力,那么我会展示一个邮箱。由于某些原因,即使您不是Joe,该框也会显示。这是我的代码

$stmt = $con->prepare("SELECT username FROM users WHERE username = :username");
$stmt->bindValue(':username', $_GET['username']);
$stmt->execute();
$row = $stmt->fetch();
$username = $row['username'];

if (count($username) < 1){
    echo "User not found";
}


echo $_SESSION['user'];
echo $username;
?>
//Issue has to be here somewhere 
<?php if($_SESSION['loggedIn'] == true || $username == $_SESSION['user']) : ?>
        <form method="post" action="http://localhost:8888/post/p.php">
            <input type="text" name="post" placeholder="Post">
            <input type="submit">
        </form>

<?php else: ?>
<!--Display sign up and in-->
<p>Sign in </p>
<?php endif; ?>

所以echo $_SESSION['user'];显示Allen,而echo $username;显示Joe。所以我假设表格不应该显示。有任何想法吗?

2 个答案:

答案 0 :(得分:1)

您使用的操作符错误。 ||表示逻辑OR

<?php if($_SESSION['loggedIn'] == true || $username == $_SESSION['user']) : ?>

相反,您需要一个逻辑AND

<?php if($_SESSION['loggedIn'] == true && $username == $_SESSION['user']) : ?>

答案 1 :(得分:1)

不确定但你在这做什么

<?php if($_SESSION['loggedIn'] == true || $username == $_SESSION['user']) : ?>

如果您已登录或您是用户。我想你可能想把它改成:

<?php if($_SESSION['loggedIn'] == true && $username == $_SESSION['user']) : ?>