Привет Я пытаюсь извлечь файл cookie, который я успешно создал, и сравнить его с строкой.Использование файлов cookie для проверки, если вы вошли в систему
Проблема заключается в том, что если пользователь обращается к странице напрямую, отображается весь контент, и я не хочу, чтобы это произошло, я хочу перенаправить пользователя на страницу входа.
В принципе, если он говорит «да», он просто покажет мне страницу, и если либо нет файла cookie, либо установлен на нет, он перенаправит меня на логин.
Я пытаюсь использовать PHP. Это то, что я пробовал.
<?php
$value = "Yes";
if(isset($_COOKIE['user']) && $_COOKIE['user'] == $value)
{
?>
<!------- HTML code goes here ------->
<?php
}
else{
$cookie_name = "user";
$cookie_value = "No";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
header("Location: index1.html");
}
?>
Это php, на который я звоню, чтобы в основном проверить данные, введенные с помощью базы данных SQL.
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$conn = mysqli_connect("localhost", "root", "", "accounts");
if (mysqli_connect_errno()){
echo "Error: Could not connect to database. Please try again later";
exit;
}
$query="SELECT * FROM accounts WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn, $query)
or die("Error in query: ". mysqli_error($conn));
$number_of_rows = mysqli_num_rows($result);
if($number_of_rows == 1){
$cookie_name = "user";
$cookie_value = "Yes";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
header("Location: main.html");
exit;
}
else{
$cookie_name = "user";
$cookie_value = "No";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
header("Location: index2.html");
}
?>
Может кто-нибудь помочь мне разобраться, как это сделать? Я попробовал другой код, а также попробовал сеансы, но не повезло. Я успешно сохранил файл cookie, но не могу решить эту часть.
Благодаря
вы можете сделать сеанс вместо печенья? – maria
Это очень плохая идея, каждый может установить этот файл cookie вручную и притвориться, что вы вошли в систему на своем сайте. Для этого вы должны использовать сеанс. – jeroen
Вы установили значение cookie в значение «Нет», но вы пытаетесь проверить «Да»? Могу я узнать почему? –