url — правильно обрабатывает ответные сообщения после некоторых операций в переполнении стека

Я разрабатываю приложение на corePHP, когда я обрабатываю добавить, редактировать & операции удаления, которые я перенаправляю с помощью метода «header» вместе со строками запроса, добавляемыми в URL, например «http://mywebsite.com/my_file.php?added=1«и я проверяю, есть ли это» добавлено «в URL или нет в глобальных переменных, таких как» isset ($ _ GET [‘добавлено’]) «, сообщения отображаются нормально, но что моя проблема здесь «всякий раз, когда я просто обновляю страницу на той же странице, сообщение снова отображается & снова, поскольку параметр «добавлен» присутствует в URL. Я знаю, что должен быть правильный способ справиться с этим. Итак, может кто-нибудь, пожалуйста, предложите правильный способ справиться с этим. Благодарю.

Мой код ниже:
URL браузера

http://mywebsite.com/my_website_page.php?added=1

my_website_page.php:

if(isset($_POST)){
$is_success = my_method_todo_some_task($_POST);
if($is_success ){
header('Location: my_website_page.php?id='.$my_var.'&added=1');
exit;
}else{
header('Location: my_website_page.php?id='.$my_var.'&added=0');
exit;
}
}

my_website_page.php:

if(isset($_GET['added'])) {
if($_GET['added'] == 1){
echo '<div class="" style="color:green;font-size:18px;text-align:center">1 Record added successfully</div>';
}else{
echo '<div class="" style="color:red;font-size:18px;text-align:center">Some problem occurred, please try again.</div>';
}
}

Я знаю, что это может быть возможно с сессиями, но если мы используем сессию, то снова возникнет та же проблема. Так что любая идея, кроме использования сессий. Благодарю.

-1

Решение

Там когда сессия пригодится

session_start();
if(isset($_POST)){
$is_success = my_method_todo_some_task($_POST);
if($is_success ){
$_SESSION['added'] = 1;
header('Location: my_website_page.php?id='.$my_var.'&added=1');
exit;
}else{
$_SESSION['added'] = 0;
header('Location: my_website_page.php?id='.$my_var.'&added=0');
exit;
}
}if(!empty($_SESSION['added'])) {
echo 'Your message here';
unset($_SESSION['added']);
}
0

Другие решения

В качестве быстрого исправления я бы рекомендовал установить сообщение об успехе или неудаче в сеансе
Увидеть:

       if($is_success ){
$_SESSION['msg']="Record added successfully";
$_SESSION['successful']=1;
header('Location: my_website_page.php?id='.$my_var);
exit;
}else{
$_SESSION['successful']=0;
$_SESSION['msg']="Some problem occurred, please try again.";
header('Location: my_website_page.php?id='.$my_var);
exit;
}

и в website.php:

   if(isset($_SESSION['successful']) && $_SESSION['successful'] ) {

echo '<div class="" style="color:green;font-size:18px;text-align:center">'. $_SESSION["msg"].'</div>';
}
if(isset($_SESSION['successful']) && !$_SESSION['successful'] ) {
echo '<div class="" style="color:red;font-size:18px;text-align:center">'. $_SESSION["msg"].'</div>';
}
unset($_SESSION['successfull']);
unset($_SESSION['msg']);
}

Не забудьте добавить session_start () вверху каждой страницы.

Примечание: есть несколько других способов сделать это, например, ajax-представление.

1

По вопросам рекламы [email protected]