Пользователь не перенаправлен обратно на последнюю посещенную страницу после выхода из системы - PullRequest
0 голосов
/ 05 мая 2018

На моем веб-сайте я пытаюсь перенаправить пользователей обратно на последнюю страницу, которую они посетили после входа в систему, но я не получаю ее. Я использовал cookie для отслеживания их последней посещенной страницы и создал страницу перенаправления, чтобы проверить, существуют ли cookie по-прежнему, и если это так, он должен перенести их на последнюю страницу, на которой они остановились.

вот заголовок моего сайта, который я включил во все страницы:

include('../includes/admins.php');  

// Set your cookie before redirecting to the login page
$current_page = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$_COOKIE['redirect_to'] = $current_page;

$cookie_name = $_COOKIE['redirect_to'];
$cookie_value = $current_page;
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
     <meta name="description" content="Automating your school work.">
    <meta name="author" content="<?php echo $set['siteName']; ?>">
    <meta name="keyword" content="content, management, system, schools, school management system, schoool portal, chat, link, linkedln, <?php echo $set['siteName']; ?>">
    <link rel="icon"  href="<?php echo $set['installUrl'].'logo/'.$set['schoolLogo']; ?>" type="image" />
    <title><?php echo $fullname;  ?></title>
    <!-- Favicon-->
    <link rel="apple-touch-icon" sizes="57x57" href="images/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="images/apple-icon-60x60.png">
     <link rel="manifest" href="images/manifest.json">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="images/ms-icon-144x144.png">
    <meta name="theme-color" content="">
    <!-- Google Fonts -->
    <link href="../afiles/css/font.css" rel="stylesheet" type="text/css">
    <link href="../afiles/css/icon.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link href="../afiles/css/font-awesome.min.css" rel="stylesheet"  type="text/css">
    <!-- Bootstrap Core Css -->
    <link href="../afiles/plugins/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link rel="stylesheet" href="../afiles/css/bootstrap-material-datetimepicker.css" />
</head>

Если вы посмотрите сверху, вы увидите, что я включил печенье.

Вот страница перенаправления, чтобы увидеть, существуют ли cookie:

<?php
include('../includes/functions.php');

if(!isset($_COOKIE[$cookie_name])) {
    header("Location: main");
} else {
    header("Location: ". $cookie_name);
}

?>

Нужен кто-то, чтобы указать мне правильное направление.

1 Ответ

0 голосов
/ 05 мая 2018

Во втором блоке кода у вас есть $_COOKIE[$cookie_name], но, поскольку вы не определили $cookie_name в своем файле, !isset($_COOKIE[$cookie_name]) всегда вернет false. Возможные решения:

Заменить

if(!isset($_COOKIE[$cookie_name])) {

с

if(!isset($_COOKIE['redirect_to'])) {

Чтобы соответствовать значению индекса первого кода блока.

Второй вариант, если вы думаете, что можете изменить значение redirect_to, это определить константу в отдельном файле и затем использовать ее в обоих ваших блоках.

...