2013-11-15 4 views
0

Я пытаюсь создать контактную форму для сайта недвижимости, и представление работает. Однако, когда он попадает на мой адрес электронной почты, по какой-то причине поля «Арендаторы» и «Арендодатели» пусты. Я что-то упускаю? См .:Форма представления PHP, не отправляющая все поля?

<?php 
$action=$_REQUEST['action']; 
if ($action=="") /* display the contact form */ 
    { 
    ?> 
<form action="" method="POST" enctype="multipart/form-data"> 
    <input type="hidden" name="action" value="submit"> 
    First & Last Name:<br> 
    <input name="name" type="text" value="" size="30"/><br> <br> 
    Your Email Address:<br> 
    <input name="email" type="text" value="" size="30"/><br> <br> 
    Tenants, please describe what you're looking for:<br> 
    <textarea name="tenants" rows="7" cols="30"></textarea><br> <br> 

    Landlords, please describe what you're looking for:<br> 
    <textarea name="landlords" rows="7" cols="30"></textarea><br> <br> 

      Additional Comments:<br /> 
     <textarea name="message"></textarea> 
     <br> 
     <center> 
    <input type="submit" value="Send email"/> </center> 
<br /></p> 
    </form> 

<?php 
    } 
else    /* send the submitted data */ 
    { 
    $name=$_REQUEST['name']; 
    $email=$_REQUEST['email']; 
    $tenants=$_REQUEST['tenants']; 
    $landlords=$_REQUEST['landlords']; 

    $message=$_REQUEST['message']; 
    if (($name=="")||($email=="")||($message=="")) 
     { 
     echo "All fields are required, please fill <a href=\"\">the form</a> again."; 
     } 
    else{   
     $from="From: $name<$email>\r\nReturn-path: $email"; 
     $subject="Leasing Submission"; 
     mail("[email protected]", $subject, $message, $from); 
     echo "Email sent!"; 
     } 
    } 
?> 
+0

Вы не включая данные POST в теле вашего 'почты()' –

+0

Они не пусто - вы никогда не отправляете их в первую очередь. –

+0

Плюс, подумайте об использовании [надлежащего ** заголовка() ** информации] (http://php.net/manual/en/function.mail.php) –

ответ

0

просто попробуйте это:

else    /* send the submitted data */ 
{ 
$name=$_REQUEST['name']; 
$email=$_REQUEST['email']; 
$tenants=$_REQUEST['tenants']; 
$landlords=$_REQUEST['landlords']; 

$message=$_REQUEST['message']; 
$fullmessage = " {$name}, mailaddres {$email},tenant info: {$tenants} , landlord info: {$landlords}. He gaves us the following message: {$message}"; 

if (($name=="")||($email=="")||($message=="")) 
    { 
    echo "All fields are required, please fill <a href=\"\">the form</a> again."; 
    } 
else{   
    $from="From: $name<$email>\r\nReturn-path: $email"; 
    $subject="Leasing Submission"; 
    mail("[email protected]", $subject, $fullmessage, $from); 
    echo "Email sent!"; 
    } 
} 
?> 
0

Вы фактически не отправляете данные арендодателей или арендаторов. Вы берете поля, и вы назначаете их переменным, но вы не привязываете их к переменной $ message, которая отправляется по электронной почте.

Попробуйте что-то вроде:

$tenants = $_REQUEST['tenants']; 
$landlords = $_REQUEST['landlords']; 
$message = $_REQUEST['message']; 
$message .= "\n\nLandlords: $landlords\n\nTenants: $tenants"; 
+0

Предполагая, что OP использует 'Content-Type: text/html' поэтому '\ n' или разрывы строк были бы более подходящими. –

+0

@ Fred-ii- В любом случае я изменю их на новые строки, просто потому, что это настройка по умолчанию. –

+0

Всегда лучше показать это, используя это вместе с опубликованным кодом OP, если информация заголовка заголовка (html) не указана. Затем ОП может вернуться и сказать: «У меня есть«
'' s в моей электронной почте ». Что стоит, открывая банку червей. ;-) –

Смежные вопросы