Я разрабатываю приложение на 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>';
}
}
Я знаю, что это может быть возможно с сессиями, но если мы используем сессию, то снова возникнет та же проблема. Так что любая идея, кроме использования сессий. Благодарю.
Там когда сессия пригодится
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']);
}
В качестве быстрого исправления я бы рекомендовал установить сообщение об успехе или неудаче в сеансе
Увидеть:
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-представление.