Перенаправление на одну страницу назад

Моя цель состоит в том, чтобы пользователь был перенаправлен на страницу, которой он был изначально, когда нажал кнопку входа в систему и ввел свое имя пользователя и пароль. Пока у меня не было проблем с этим. Однако, если я нажимаю кнопку просмотра еще, чтобы перенаправить меня на singleproduct.php, а затем нажимаю назад из браузера, возвращаясь к search.php, а после этого пытаюсь войти в систему, я перенаправляюсь на singleproduct.php вместо поиска .php. У меня не было проблем с тем, чтобы сделать это на других страницах, включая singleproduct.php или любую другую из моих страниц, и даже в search.php, если я не попал туда, перейдя назад или вперед с помощью кнопок браузера, он все еще работает.

Связано ли это с тем, что $ _SERVER ['REQUEST_URI'] не получил новый URL-адрес, или я что-то напортачил?

Мне было интересно, почему это происходит и что я могу сделать, чтобы это исправить.

search.php

<?php
session_start();
include 'includes/dbh.inc.php';
$_SESSION['current_page'] = $_SERVER['REQUEST_URI'];
?>
<!DOCTYPE html>
<html lang = "en">
<head>
</head>
<body>
    <form class = "sea" action = "search.php" method = "GET">
        <input class = "searchbar" name = "search" type = "text" placeholder = "Search...">
        <button class = "searchbutton" name = "submit-search" type = "submit"><i class = "fa fa-search"></i></button>
    </form>
    //button for login
    <?php
    if (isset($_GET['submit-search'])) {
        $search = mysqli_real_escape_string($conn, $_GET['search']);
        $sql = "SELECT * FROM table WHERE product_name LIKE '%$search%' OR product_category LIKE '$search'";
        $result = mysqli_query($conn, $sql);
        $queryResult = mysqli_num_rows($result);
        if ($queryResult > 0) {
            while ($row = mysqli_fetch_array($result)) { ?>
            //read from database
            <a href = "singleproduct.php?viewmore=<?php echo $row['product_id']; ?>"class = "viewmore btn-info" role = "button">View More</a>
            <?php }
        } ?>
</body>
</html>

singleproduct.php

<?php
session_start();
include 'includes/dbh.inc.php';
$_SESSION['current_page'] = $_SERVER['REQUEST_URI'];
?>
<!DOCTYPE html>
<div lang = "en">
<head>
</head>
<body>
    <form class = "sea" action = "search.php" method = "GET">
        <input class = "searchbar" name = "search" type = "text" placeholder = "Search...">
        <button class = "searchbutton" name = "submit-search" type = "submit"><i class = "fa fa-search"></i></button>
    </form>
    //button for login
    <?php
    $id = $_GET[viewmore];
    $result = mysqli_query($conn,"SELECT * FROM table WHERE product_id='".$id."' ");
 while($row = mysqli_fetch_array($result)){
 //read the database for the single item
 }?>
</body>
</html>

включает / login.inc.php

<?php

session_start();
if (isset($_POST['submit'])){
    //Error Handlers
    if (){
    }
    else{
        $_SESSION['u_id'] = $row['user_id'];
            $_SESSION['u_uid'] = $row['user_uid'];
            $_SESSION['u_email'] = $row['user_email'];
            $_SESSION['u_status'] = $row['user_status'];
            $_SESSION['u_level'] = $row['user_level'];
            $_SESSION['success-message'] = '';
            header("Location: ". $_SESSION['current_page']);
            exit();
    }
}

Когда вы нажимаете кнопку «Назад» в браузере, ваш браузер делает именно это. Это возвращается. На самом деле это не обновляет страницу. Таким образом, ваш PHP не запускается снова и не обновляет переменную сеанса.

icecub 12.04.2018 02:44

Вам просто нужно получить страницу, с которой они пришли, всякий раз, когда они попадают на страницу входа, установить ее в сеансе, после того, как они успешно вошли в систему, если в сеансе есть действующая страница, установить для нее значение var, отключить сеанс и перенаправить их используя var. На странице входа в систему просто проверьте, вошли ли они уже, и, если да, покажите сообщение «уже вошли в систему». Вы мало что можете сделать с некоторыми аспектами, когда люди нажимают ссылки и формы, а затем возвращают данные POST в историю их браузера.

James 12.04.2018 02:45

@James Спасибо! Я сделаю это.

tommyq1999 12.04.2018 02:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
40
0

Другие вопросы по теме