arturweb01
@arturweb01

Как добавить в этот обработчик имя из формы обратной связи?

Вот обработчик формы обратной связи, нужно сюда добавить имя пользователя из формы.
Почему-то стандартный способ не помогает
$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;
}
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
@xtress
Web-dev
Ну, если ничего в мире html не поменялось - просто тег form, насколько я помню, отправляет get запрос, а вы пытаетесь данные из post вытащить. Как минимум стоит попробовать в тег form добавить method=“post”
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы