Отображать div/span только после выполнения $_SERVER['HTTP_REFERER']

Я пытался подойти к этому множеством способов, но почему-то я не в состоянии понять это. Может вы, ребята, можете мне помочь?

Мне нужно отобразить определенный div/span или другой контейнер для отображения текста после того, как страница возвращается через

    header('Location: ' . $_SERVER['HTTP_REFERER']);

Причина, по которой мне нужен такой странный подход для отображения чего-либо, заключается в том, что я использую комбинацию href/GET для запуска функции PHP, когда моя ссылка нажата. (кнопка отправки используется другой функцией / модулем, поэтому я не могу ее использовать)

HTML часть

    <p id="show_project">
        <a id="add_to_project" name="add_to_project" href="?function">
        Add to project
        </a>
    </p>

PHP функция часть

    $this->getProductinfo();
    if (isset($_GET['function'])){
        $this->getSQLQuery($_GET['function']);
        header('Location: ' . $_SERVER['HTTP_REFERER']);
    }

Есть идеи?

БР

1 ответ

Решение

Почему бы не добавить сообщение в ваш вызов header()

$this->getProductinfo();
if (isset($_GET['function'])){
    $this->getSQLQuery($_GET['function']);
    header('Location: ' . $_SERVER['HTTP_REFERER'].'?msg=We got a message');
}

Получить сообщение

<?php

session_start();

if (!empty($_GET['msg'])){
    $_SESSION['msg'] = $_GET['msg'];
    header('Location: ' . $_SERVER['HTTP_REFERER']);
    die;
}
else{
    if (!empty($_SESSION['msg'])){
        $msg = $_SESSION['msg'];
        unset($_SESSION['msg']);
    }
}
    ?>

<?php
/* Later in the document */
echo '<div>' . $msg . '</div>';

?>

Вам нужно будет санировать и проверять переменную $_GET

заимствованный отсюда

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