Вот обработчик формы обратной связи, нужно сюда добавить имя пользователя из формы.
Почему-то стандартный способ не помогает
$name = $_POST['name'];
Форма в html:
<form>
<input class="br" type="text" placeholder="Ваше Имя" name="name">
<div class="userphone"> <input class="br user_phone" type="tel" placeholder="(___) ___ __ __" name="tNum"></div>
<input class="mal_knopka br" type="submit" value="Заказать звонок!" />
</form>
Вот весь код функции обработчика:
function zakaz_order($page_name, $params)
{
global $mysqli;
$tel = substr($_POST['tNum'], 0, 15);
$json = array();
if (!$tel) $json['error'] ='Пожалуйста, укажите номер телефона!';
$black_list = array('0000000000', '2222222222', '3333333333', '4444444444', '5555555555',
'6666666666', '7777777777', '8888888888', '9999999999', '1212121212',
'9000000000', '9222222222', '9333333333', '9444444444', '9555555555',
'9666666666', '9777777777', '9888888888', '9111111111', '1212121212',
'1313131313', '1231231231', '1234567890', '9876543210', '1234567891',
'1111111111', '0000000001', '0000000002', '0000000003', '0000000004');
$patternTel = '/^\(?([^8][^9]\d|999)\)?\s?\d{3}-?\d{2}-?\d{2}$/';
$tel = preg_replace('/\(|\)|\s|-/', '', $tel);
if (!preg_match($patternTel, $tel) || in_array($tel, $black_list) && substr($tel, 0, 3) != '999') $json['error'] = 'Не верный формат номера телефона!';
if(!$json['error'])
{
$tel = clear_mysql($tel);
$query = "SELECT customer_id FROM customers WHERE phone = '$tel'";
$res = mysqli_query($mysqli, $query);
if(mysqli_num_rows($res) < 1) // телефона пользователя ранее в базе данных не было, то регистрируем
{
$query = "INSERT INTO customers (phone) VALUES ('$tel')";
$res = mysqli_query($mysqli, $query);
if(mysqli_affected_rows($mysqli) > 0)//если пользователь добавлен
{
$customer_id = mysqli_insert_id($mysqli); //получаем id клиента
}
else
{
$json['error'] = 'Ошибка, попробуйте еще раз!';
die(json_encode($json));
}
}
else
{
$customer = true; // клиент уже был ранее
}
$type = process_text(substr($_POST['type'], 0, 15));
$client_ip = getRealIP();
$to = $params['to_mail'];
$subject = "ЗАКАЗ РАССРОЧКИ НА САЙТЕ ".strtoupper($page_name)."!";
if($type == 'zakaz_zvonka') $subject = "ЗАКАЗ ЗВОНКА НА САЙТЕ ".strtoupper($page_name)."!";
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p>Cтраница сайта: <strong style="color:red;font-size:1.5em">'.ucfirst($page_name).',</strong></p>
<p>Номер телефона: <strong style="color:red;font-size:1.5em">'.$tel.'</strong>,</p>
<p>Дата и время отправки: <strong>'.date("d.m.Y H:i").'</strong>,</p>
<p style="color:red;">Перезвонить до: <strong style="color:red; font-size:1.5em;">'.date("H:i", time() + $params['min_to_ans'] * 60).'</strong>,</p>
<p>IP адрес клиента: <strong>'.$client_ip.'</strong></p>
</body>
</html>';
$headers = "Content-type: text/html; charset = \"utf-8\"\r\n";
$headers .= "From: {$params['from_name']} <{$params['email']}>\r\n";
// формируем сообщение
if(!mail($to, $subject, $message, $headers))
{
if(!$customer) mysqli_query($mysqli, "DELETE FROM customers WHERE customer_id = $customer_id"); //удаляем, если ранее не было клиента
$json['error'] = 'Ошибка, попробуйте еще раз!';
}
}
return $json;
}
А вот эта функция с легкостью принимает имя из этой же формы:
function book_land($page_name, $params, $land_name = 0)
{
global $mysqli;
if($land_name)
{
$page_name = $land_name;
}
$land_id = (int)$_POST['land_id'];
$number = process_text(substr($_POST['number'], 0, 20));
$name = $_POST['name'];
$tel = substr($_POST['tNum'], 0, 15);
$json = array();
if(!$land_id || !$number || !$page_name) $json['error'] ='Ошибка сервера, попробуйте еще раз!';
if (!$name || !$tel) $json['error'] ='Вы заполнили не все поля!';
$black_list = array('0000000000', '2222222222', '3333333333', '4444444444', '5555555555',
'6666666666', '7777777777', '8888888888', '9999999999', '1212121212',
'9000000000', '9222222222', '9333333333', '9444444444', '9555555555',
'9666666666', '9777777777', '9888888888', '9111111111', '1212121212',
'1313131313', '1231231231', '1234567890', '9876543210', '1234567891',
'1111111111', '0000000001', '0000000002', '0000000003', '0000000004');
$patternTel = '/^\(?([^8][^9]\d|999)\)?\s?\d{3}-?\d{2}-?\d{2}$/';
$tel = preg_replace('/\(|\)|\s|-/', '', $tel);
if (!preg_match($patternTel, $tel)|| in_array($tel, $black_list)) $json['error'] = 'Не верный формат номера телефона!';
$row = get_data("SELECT status_id, id FROM lands
WHERE land_group_id = (SELECT land_group_id FROM land_groups WHERE group_name = '$page_name') AND land_id = $land_id"
, TRUE);
$status_id = $row['status_id'];
if($status_id != 1)
{
$json['error'] ='Участок продан/забронирован или недоступен!';
}
else
{
$id = $row['id'];
}
if(!$json['error'])
{
$tel = clear_mysql($tel);
$name = clear_mysql(substr($name, 0, 100));
$query = "SELECT customer_id, request_id FROM customers WHERE phone = '$tel'";
$res = mysqli_query($mysqli, $query);
if(mysqli_num_rows($res) < 1) // телефона пользователя ранее в базе данных не было, то регистрируем
{
$query = "INSERT INTO customers (customer_name, phone, request_id) VALUES ('$name', '$tel', 2)";
$res = mysqli_query($mysqli, $query);
if(mysqli_affected_rows($mysqli) > 0)//если пользователь добавлен
{
$customer_id = mysqli_insert_id($mysqli); //получаем id клиента
}
else
{
$json['error'] = 'Ошибка, попробуйте еще раз!';
die(json_encode($json));
}
}
else
{
$row = mysqli_fetch_assoc($res);
$customer_id = $row['customer_id'];
$request_id = $row['request_id'];
if($request_id != 2)
{
$query = "UPDATE customers SET customer_name = '$name', request_id = 2 WHERE customer_id = $customer_id";
$res = mysqli_query($mysqli, $query);
if(mysqli_affected_rows($mysqli) < 1)//если пользователь добавлен
{
$json['error'] = 'Ошибка, попробуйте еще раз!!';
die(json_encode($json));
}
$request = true; //изначально был другой request
}
$customer = true; // клиент уже был ранее
}
$query = "UPDATE lands SET status_id = 2, customer_id = $customer_id, date_last_oper = NOW() WHERE id = $id";
$res = mysqli_query($mysqli, $query);
if(mysqli_affected_rows($mysqli) < 1) // если не сделали апдейт, то удаляем пользователя, которого ввели
{
if(!$customer) mysqli_query($mysqli, "DELETE FROM customers WHERE customer_id = $customer_id"); //если ранее клиента не было
$json['error'] = "Ошибка, попробуйте еще раз!!!";
die(json_encode($json));
}
$client_ip = getRealIP();
$to = $params['to_mail'];
$subject = "БРОНИРОВАНИЕ НА САЙТЕ ".strtoupper($params['from_name'])."!";
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p>Массив: <strong style="color:red;font-size:1.5em">'.ucfirst($page_name).',</strong></p>
<p>Номер участка: <strong style="color:red;font-size:1.5em">'.$land_id.' ('.$number.')</strong>,</p>
<p>Имя клиента: <strong>'.$name.',</strong></p>
<p>Номер телефона: <strong style="color:red;font-size:1.5em">'.$tel.'</strong>,</p>
<p>Дата и время отправки: <strong>'.date("d.m.Y H:i").'</strong>,</p>
<p style="color:red;">Перезвонить до: <strong style="color:red; font-size:1.5em;">'.date("H:i", time() + $params['min_to_ans'] * 60).'</strong>,</p>
<p>IP адрес клиента: <strong>'.$client_ip.'</strong></p>
</body>
</html>';
$headers = "Content-type: text/html; charset = \"utf-8\"\r\n";
$headers .= "From: {$params['from_name']} <{$params['email']}>\r\n";
// формируем сообщение
if(!mail($to, $subject, $message, $headers))
{
mysqli_query($mysqli, "UPDATE lands SET status_id = $status_id, customer_id = 0 WHERE id = $id");
if(!$customer) mysqli_query($mysqli, "DELETE FROM customers WHERE customer_id = $customer_id"); //удаляем, если ранее не было клиента
if($request) mysqli_query($mysqli, "UPDATE customers SET request_id = $request_id WHERE customer_id = $customer_id"); // возвращаем исходный request, если ранее клиент был
$json['error'] = 'Ошибка, попробуйте еще раз!!!!';
}
}
return $json;
}