Не авторизуется пользователь:
<?php
$dbc = mysqli_connect('localhost', 'root', '', 'test');
if (!isset($_COOKIE['user_id'])){
if (!isset($_POST['submit'])) {
$user_username = mysqli_real_escape_string($dbc, trim($_POST['username']));
$user_password = mysqli_real_escape_string($dbc, trim($_POST['$password']));
if (!empty($user_username) && !empty($user_password)) {
$query = "SELECT user_id, username FROM `singup` WHERE username = '$user_username' AND password = SHA('$user_password')";
$data = mysqli_query($dbc, $query);
if (mysqli_num_rows($data) == 1) {
$row = mysqli_fetch_assoc($data);
setcookie('user_id', $row['user_id'], time() + (60 * 60 * 24 * 30));
setcookie('username', $row['username'], time() + (60 * 60 * 24 * 30));
$home_url = 'http:// .$SERVER[HTTP_HOST]';
header('Location' . $home_url);
}
else {
echo 'Извините, Такого пользователя не существует';
}
}
else {
echo 'Введите даные правильно';
}
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>ВХОД</title>
<link href="style/style.css" rel="stylesheet">
</head>
<body>
<header>
<h2>ВХОД</h2>
</header>
<content>
<?php
if(empty($_COOKIE['username'])) {
?>
<form method="POST" action="<?php echo $_SERVER ['PHP_SELF']; ?>">
<label for="username">Логин:</label>
<br><input type="text" name="username">
<br><label for="password">Пароль:</label>
<input type="password" name="password1">
<br>
<button name="submit">Вход</button>
<a href="singup.php">Регистрация</a>>
</form>
<?php
}else{
?>
<p><a href="myprofile.php">Мой профиль</a></p>
<p><a href="exit.php">Выйти</a></p>
<?php
}
?>
</content>
</body>
</html>
Тут понять не могу: при нажатии кнопки "вход" перекидывает на форму входа опять.
Тут скорей всего две проблемы:
У вас не казан путь cookie, значит по умолчанию ставится текущий, а потом выполняется редирект. Скорей всего в новом расположении эта cookie уже не действует. Чтобы cookie работала на всем сайте поставьте путь "/".
setcookie('username', $row['username'], time() + (60 * 60 * 24 * 30), '/');
Вы проверяете наличие cookie в том же хите, а cookie устанавливается только при ответе. Соответственно
<?php
if(empty($_COOKIE['username'])) {
?>
сработает, даже если пользователь верно авторизовался. Думаю факт авторизации надо сохранять в другой переменной, которую изменять при авторизации и проверять дальше в скрипте
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть сайт https://oneru/, который сразу редиректится на https://two
Помогите пожалуйста что не так вот код:
пытаюсь произвести поиск по БД, в которой хранятся данные на русском и украинском языках, в таблицах через phpnyadmin все выглядит красиво без...