#php #html #forms #url #pdo
#php #HTML #формы #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'];
отображается Аллен, в то время echo $username;
как отображается Джо. Поэтому я бы предположил, что форма не должна отображаться. Есть какие-нибудь идеи?
Ответ №1:
Вы используете не того оператора. ||
означает логический OR
.
<?php if($_SESSION['loggedIn'] == true || $username == $_SESSION['user']) : ?>
Вместо этого вам нужен логический AND
:
<?php if($_SESSION['loggedIn'] == true amp;amp; $username == $_SESSION['user']) : ?>
Ответ №2:
Не уверен, но что вы здесь делаете
<?php if($_SESSION['loggedIn'] == true || $username == $_SESSION['user']) : ?>
Говорит, являетесь ли вы пользователем loggedin ИЛИ вы пользователь. Я думаю, вы можете изменить это на:
<?php if($_SESSION['loggedIn'] == true amp;amp; $username == $_SESSION['user']) : ?>