Показать сообщение отдельно
  #1 (permalink)  
Старый 18.02.2023, 12:48
Аспирант
Отправить личное сообщение для BorisJe Посмотреть профиль Найти все сообщения от BorisJe
 
Регистрация: 03.12.2021
Сообщений: 66

Супер Долгое выполнение скрипта
Всем привет ребята. Скрипт

(function($) {
	$(function() {
		
		jQuery('#quote_form').on('submit', function(e){
			e.preventDefault();
			jQuery('.btn ').attr('disabled','disabled');
			jQuery('#quote_form').addClass('form_sending');
			var request = {
				option       : 'com_ajax',
				module       : 'c_form',
				method       : 'sendMail',
				format       : 'row',	
				data: jQuery('#quote_form').serialize(),	
				src: window.location.href,
			};
			jQuery.ajax({
				method: 'POST', 
				data: request,
				
			})
			.success(function(response){
				console.log(response);
				//jQuery(location).attr('href', window.location.origin + '/thanks-you-for-contacting');
			});
		});
	}); 
})(jQuery);


<?php 
 
 
 
require_once '../../configuration.php'; 
 
$jconfig = new JConfig(); 
 
$host   = $jconfig->host; 
$dbname  = $jconfig->db; 
$username  = $jconfig->user; 
$password  = $jconfig->password; 
$dbprefix  = $jconfig->dbprefix; 
 
$db = mysqli_connect($host, $username, $password, $dbname); 
if (!$db) { 
    die('Ошибка соединения: ' . mysqli_error()); 
} 
$stmt = $db->prepare('SELECT params FROM ' . $dbprefix .'template_styles WHERE template = "easy_moving"'); 
$stmt->execute(); 
$result = $stmt->get_result(); 
$row = $result->fetch_assoc(); 
$params = json_decode($row['params']); 
mysqli_close($db); 
 
 
$to = $params->email; 
 
$subject = $_POST['subject'];  
$mailheaders = "Content-type:text/html;charset=utf-8rn";  
$mailheaders .= "From: SiteRobot <noreply@easy-moving.ca/>rn";  
$mailheaders .= "Reply-To: [email]noreply@easy-moving.ca[/email]/";  
 
if ($subject == 'Free Quote') { 
 $message = 
 '<table> 
  <tbody> 
   <tr> 
    <td>Moving From</td> 
    <td>'. $_POST['movingfrom'] .'</td> 
   </tr> 
   <tr> 
    <td>Moving To</td> 
    <td>'. $_POST['movingto'] .'</td> 
   </tr> 
   <tr> 
    <td>Contact Phone</td> 
    <td>'. $_POST['phone'] .'</td> 
   </tr> 
   <tr> 
    <td>Full Name</td> 
    <td>'. $_POST['fullname'] .'</td> 
   </tr> 
   <tr> 
    <td>Email Address</td> 
    <td>'. $_POST['email'] .'</td> 
   </tr> 
   <tr> 
    <td>Moving Date</td> 
    <td>'. $_POST['movingdate'] .'</td> 
   </tr> 
   <tr> 
    <td>What Size?</td> 
    <td>'. $_POST['whatsize'] .'</td> 
   </tr> 
   <tr> 
    <td>How did you hear about us?</td> 
    <td>'. $_POST['howdid'] .'</td> 
   </tr> 
  </tbody> 
 </table>'; 
} 
 
elseif ($subject == 'Free Estimate Online') { 
 $message = 
 '<table> 
  <tbody> 
   <tr> 
    <td>Full Name</td> 
    <td>'. $_POST['fullname'] .'</td> 
   </tr> 
   <tr> 
    <td>Email Address</td> 
    <td>'. $_POST['email'] .'</td> 
   </tr> 
   <tr> 
    <td>Contact Phone</td> 
    <td>'. $_POST['phone'] .'</td> 
   </tr> 
   <tr> 
    <td>Moving From</td> 
    <td>'. $_POST['movingfrom'] .'</td> 
   </tr> 
   <tr> 
    <td>Moving To</td> 
    <td>'. $_POST['movingto'] .'</td> 
   </tr> 
   <tr> 
    <td>Moving Date</td> 
    <td>'. $_POST['movingdate'] .'</td> 
   </tr> 
   <tr> 
    <td>Move Size</td> 
    <td>'. $_POST['movesize'] .'</td> 
   </tr> 
   <tr> 
    <td>Truck Size</td> 
    <td>'. $_POST['trucksize'] .'</td> 
   </tr> 
   <tr> 
    <td>Сomments</td> 
    <td>'. $_POST['comments'] .'</td> 
   </tr> 
  </tbody> 
 </table>'; 
} else { 
 die('error'); 
} 
 
 
 
$res = mail($to, $subject, $message, $mailheaders); 
echo $res; 
 
?>zz


Супер долго выполняется, Я уже не знаю что с ним делать.
А проблема в том что пока он выполняется пользователь еще раз 15 жмет на кнопку, думаю что не работает и по итогу приходит 9999 сообщений от пользователя, в зависимость от агрессии.

Вышел пока из положения тупо ее заморозить, но при этом и редирект страдает.
Друзья подскажите пожалуйста что может быть и как оптимизировать бы это можно?
Может как то асинхронно можно?

Ссылка https://easy-moving.ca/get-free-quote

Последний раз редактировалось BorisJe, 18.02.2023 в 12:57.
Ответить с цитированием