Я понимаю, что это старый вопрос, но недавно у меня была такая же проблема.Ни одно из решений Post / Redirect / Get не работает на WHMCS, если вы хотите остаться на странице productdetails (например), даже если вы переключаетесь на другой файл шаблона Smarty после POST.Вероятно, потому что ему нужен $ _POST [id '], и он исчезает после обновления.Поэтому самое близкое, что я мог получить, - это вернуться на страницу со списком продуктов, что не то, что я хочу, и, вероятно, не то, что хочет оригинальный плакат.
Решение, которое я наконец-то придумал, было добавить $_SESSION[submitted]
переменная после отправки формы.Вам нужно будет самостоятельно определить логику в зависимости от того, что вы делаете.
Моя логика выглядит примерно так:
if ($_SESSION['submitted'] == 1 && !isset($_POST['somecustomkey'])) {
unset($_SESSION['submitted']);
}
То есть сверху и сбрасывается«отправленный» ключ сеанса, если данные формы POST не существуют.
Затем добавьте проверку, прежде чем записывать информацию в свою базу данных или что-либо подобное.
if ($_SESSION['submitted'] != 1) {
//Do some stuff with $_POST form data
$_SESSION['submitted'] = 1;
}
Я думаю, что это хорошо согласуется с целью $ _SESSION и легко реализуемо.