Отображать форму, только если cookie установлены в PHP и SQL?

0

Я пишу скрипт в PHP. Как только пользователь зашел на сайт, я установил файл cookie для запуска:

$cookie_name = "logged";
$cookie_value = $row['uid'];
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");

Затем они перенаправляются на главную страницу. Однако вместо того, чтобы встречаться с окном входа в верхнем правом углу веб-страницы, я хочу, чтобы форма скрывалась и отображалась информация о пользователе. Однако на данный момент окно регистрации остается, даже когда cookie установлен. Вот код для окна входа:

if (!isset($_COOKIE[$cookie_name])) {
echo '<form action="attempt.php" method="post">
<div align="right"><br />
Email Address:<br />
<input type="text" name="mail"><br />
Password:<br />
<input type="password" name="pword"><br />
<input type="submit" value="Login" />
</div>
</form>
<div align="right"><br />
</div>';
} else {
print '<a href=" . $_COOKIE[$cookie_name] . ".php">View my profile.</a>';
}

Заранее благодарю за любой совет :)

  • 0
    Вы инициализируете переменную $cookie_name на домашней странице после того, как перенаправили пользователя на нее после установки cookie? Также вы можете использовать сессию вместо куки, чтобы поддерживать логин пользователя в сессии.
  • 0
    Спасибо за ответ Vivek, как мне инициализировать переменную? Я думал, как только я сделаю это на предыдущей странице, cookie будет там в фоновом режиме?
Теги:
set
cookies

1 ответ

0

Я думаю, вы не инициализировали $ cookie_name в форме входа.

Попробуй это:

$cookie_name = "logged";//add this before checking
if (!isset($_COOKIE[$cookie_name])) {
echo '<form action="attempt.php" method="post">
<div align="right"><br />
Email Address:<br />
<input type="text" name="mail"><br />
Password:<br />
<input type="password" name="pword"><br />
<input type="submit" value="Login" />
</div>
</form>
<div align="right"><br />
</div>';
} else {
print '<a href="' . $_COOKIE[$cookie_name] . '".php">View my profile.</a>';
}

Если это не решит проблему, попробуйте установить error_reporting (E_ALL) и покажите нам какие-либо уведомления или предупреждения.

  • 0
    Не повезло с этим, мой друг: / извините, я все еще на стадии noob в php, как мне сделать это сообщение об ошибке?
  • 0
    попробуйте добавить эту функцию в начале php-файла: error_reporting (E_ALL) и ini_set ("display_errors", 1);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню