Сломалась форма обратной связи
Прошу помощи. На одностраничном (html) сайте сломалась форма заявки. Всего на странице 5 форм, работают через файл sendmail.php.
Код формы:
<?php
define("CONTACT_FORM", '[email protected]');
// function ValidateEmail($value){
// $regex = '/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i';
// if($value == '') {
// return false;
// } else {
// $string = preg_replace($regex, '', $value);
// }
// return empty($string) ? true : false;
// }
$post = (!empty($_POST)) ? true : false;
$title = $_POST['form_title'];
$nameForm = $_POST['form_nameForm'];
$name = $_POST['form_name'];
$email = $_POST['form_email'];
$phone = $_POST['form_phone'];
$area = $_POST['form_area'];
$date = $_POST['form_date'];
$gift = $_POST['form_gift'];
$text = $_POST['form_text'];
$quantity = $_POST['form_quantity'];
if (isset($area) && isset($quantity)){
$comments = "Площадь: ".$area." м.кв; \nКол-во помещений: ".$quantity;
} else if (isset($date)) {
$comments ="Заказ обратного звонка на: ".$date;
} else if(isset($gift)) {
$comments ="Выбранный подарок: ".$gift;
} else if(isset($text)) {
$comments ="Дополнение: ".$text;
} else {
$comments ="";
}
// create email body and send it
$to = '[email protected]'; // put your email
$subject = "Заявка от $name | ".$title." | Сайт - Водяной теплый пол";
$message = "Заполнена форма ".$title.". \n\n".
"Данные отправителя:\n\nИмя: ".$name." \n".
"Почта: ".$email." \n".
"Телефон: ".$phone." \n".
// "Отапливаемая площадь: ".$area." \n".
// "Количество помещений: ".$quantity." \n".
$comments;
/*$headers = "From: ".$name." <".$to.">" . "\r\n" .
"Reply-To: ".$name." <".$to.">" . "\r\n" ;*/
mail($to, $subject, $message ,$headers);
// return true;
// Bitrix24
// CRM server conect ion data
define('CRM_HOST', '************'); // your CRM domain name
define('CRM_PORT', '443'); // CRM server port
define('CRM_PATH', '/crm/configs/import/lead.php'); // CRM server REST service path
// CRM server authorization data
define('CRM_LOGIN', '[email protected]'); // login of a CRM user able to manage leads
define('CRM_PASSWORD', '***************'); // password of a CRM user
// OR you can send special authorization hash which is sent by server after first successful connection with login and password
// define('CRM_AUTH', '******************'); // authorization hash
/********************************************************************************************/
// POST processing
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$leadData = $_POST['DATA'];
$title = $_POST['form_title'];
$name = $_POST['form_name'];
$email = $_POST['form_email'];
$phone = $_POST['form_phone'];
$area = $_POST['form_area'];
$date = $_POST['form_date'];
$gift = $_POST['form_gift'];
$text = $_POST['form_text'];
$quantity = $_POST['form_quantity'];
if (isset($area) && isset($quantity)){
$comments = "Площадь: ".$area." м.кв; \nКол-во помещений: ".$quantity;
} else if (isset($date)) {
$comments = "Заказ обратного звонка на: ".$date;
} else if (isset($gift)) {
$comments ="Выбранный подарок: ".$gift;
} else if (isset($text)) {
$comments ="Выбранный подарок: ".$text;
} else {
$comments = "";
}
// get lead data from the form
$postData = array(
'TITLE' => $title,
'NAME' => $name,
'EMAIL_OTHER' => $email,
'PHONE_WORK' => $phone,
'COMMENTS' => $comments,
'SOURCE_ID' => 'Сайт теплый водяной пол',
'STATUS_DESCRIPTION' => $title,
// 'ASSIGNED_BY_ID' => '',
);
// append authorization data
if (defined('CRM_AUTH'))
{
$postData['AUTH'] = CRM_AUTH;
}
else
{
$postData['LOGIN'] = CRM_LOGIN;
$postData['PASSWORD'] = CRM_PASSWORD;
}
// open socket to CRM
$fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30);
if ($fp)
{
// prepare POST data
$strPostData = '';
foreach ($postData as $key => $value)
$strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
// prepare POST headers
$str = "POST ".CRM_PATH." HTTP/1.0\r\n";
$str .= "Host: ".CRM_HOST."\r\n";
$str .= "Content-Type: application/x-www-form-urlencoded\r\n";
$str .= "Content-Length: ".strlen($strPostData)."\r\n";
$str .= "Connection: close\r\n\r\n";
$str .= $strPostData;
// send POST to CRM
fwrite($fp, $str);
// get CRM headers
$result = '';
while (!feof($fp))
{
$result .= fgets($fp, 128);
}
fclose($fp);
// cut response headers
$response = explode("\r\n\r\n", $result);
$output = '<pre>'.print_r($response[1], 1).'</pre>';
}
else
{
echo 'Connection Failed! '.$errstr.' ('.$errno.')';
}
}
else
{
$output = '';
}
return true;
// HTML form
?>
По проблеме общалась с поддержкой хостинга ответили: В логах сайта видим следующее предупреждение о параметре в 52 строке:
PHP Warning: mail(): headers parameter must be string or array in /var/www/u124667/data/www/vodyanoj-pol-montazh.ru/html/sendmail.php on line 52
В логах почтового сервера никаких данных по аккаунту нет, это значит, что почтовый сервер хостинга не используется при отправке.
[![52 строка кода][1]][1]
Буду благодарна за любую помощь.