Я создаю форму, которую заполняет пользователь, а затем я сохраняю ее в db. Затем я извлекаю пользователей, которые соответствуют критериям, и для каждого из них я храню в другой таблице, а также отправляю им электронное письмо.Как запустить php-функцию после перенаправления пользователя на другую страницу?
$userModel = new User();
$currentUser = $userModel->findUserById($user->id);
$requestModel = new Requests();
$success = $requestModel->saveRequest($currentUser->usr_id, $tagId, $title, $task, $fixed, $price, $hour, $quality, $multiple, $datetime, $postal, $cityId, $travel);
if($success){
$request = $requestModel->getUserLatestRequest($currentUser->usr_id);
if($request){
$user = new User();
$alluserids= $user->getAllSkillCityUserIds($cityId, $tagId);
$targetId = (array_column($alluserids, 'usr_id'));
//error_log("<pre>targetId".print_r($targetId,true)."</pre>");
foreach($targetId as $target) {
if($target == $currentUser->usr_id){
continue;
}
$lead = new RequestsLead();
$lead->addRequest($request->req_id, $request->req_userid, $target);
$contractor = $userModel->findUserbyId($target);
$nemail = new NotificationsEmail();
$nemail->sendGotRequest($contractor->usr_email, $contractor->usr_firstname);
}
}
$this->flash->success('<div data-toggle="notify" data-onload data-message="Thanks for using our service!." data-options="{"status":"success"}" class="hidden-xs"></div>');
$this->response->redirect($this->url->get(""));
}else{
$this->flash->error('<div data-toggle="notify" data-onload data-message="Sorry! Please try again." data-options="{"status":"danger"}" class="hidden-xs"></div>');
$this->response->redirect($this->url->get("request"));
}
Проблема возникает, когда есть много пользователей, и эта функция будет необходимо завершить работу до того, как пользователь перенаправляется обратно на страницу с сообщением вспышки. Как я могу изменить это, поэтому сначала перенаправляю пользователя на страницу с помощью флэш-сообщения, затем запускаем функции php foreach, хранящиеся в db и отправляющие электронные письма после?
Я попытался переключить порядок функций, но как только пользователь перенаправлен с помощью флэш-сообщения, функции php перестали работать.
попробовать 'ignore_user_abort()', который должен держать свой скрипт работает независимо от того, когда клиент отсоединяется –
@MarcB Спасибо, что указал на эту функцию php. – Blkc