Функция защиты Laravel от «обновления» страницы

#php #laravel #page-refresh

#php #laravel #обновление страницы

Вопрос:

Когда я открываю веб-страницу, laravel через мой пользовательский класс и функцию отправляет мне текстовое сообщение на мой мобильный, но можно заблокировать отправку, когда я нажимаю F5 или обновляю веб-страницу?

controller

 public function index()
{
    $phoneNumber = $user['mobile_phone'];
    $smsMessage= $user['smsMessage'];
    SendTextMessage::SendMessage($phoneNumber, $smsMessage);

    return view('welcome');
}
  

Комментарии:

1. Вы отправляете сообщение только на странице приветствия?

2. @ Harpal Singh да

Ответ №1:

Если вы отправляете сообщение только тогда, когда пользователь посещает страницу приветствия, то вы можете установить флаг в сеансе и проверить, не существует ли значение сеанса, только после этого отправить сообщение.

 use Session;
public function index()
{
    if(!Session::has('message_sent')){
       SendTextMessage::SendMessage($phoneNumber, $smsMessage);
       Session::put('message_sent', true);
     }
    
    return view('welcome');
}
  

Ответ №2:

Попробуйте:

 public function index()
{
   if(url()->previous()!=url()->current()){
      SendTextMessage::SendMessage($phoneNumber, $smsMessage);
   }

   
    return view('welcome');
}
  

История URL хранится в сеансе, поэтому это может быть решением для обновления страницы.