2014-12-27 1 views
0

Я новичок в PHP, поэтому у меня может быть ошибка в моем коде. formmail.pl не должен отсутствовать, если другой тестовый php-файл на сервере работает нормально. Я работаю с Untitled4.php и send_contact2.phpPHP Form отправляет пустые письма или formmail.pl не может быть найден

Вот мой код для Untitled4.php

<html> 
 

 
    
 
       <form action="/cgi-bin/formmail/formmail.pl" method="POST"> 
 
       <div align="left"> 
 
        <hr> 
 

 

 
        <body> 
 
        <table width="450" border="0" align="right" cellpadding="3" cellspacing="1"> 
 
         <tr> 
 

 
         <td><strong><Contact Form</strong> 
 
         </td> 
 
         </tr> 
 
        </table> 
 

 
        <table width="450" border="0" align="center" cellpadding="0" cellspacing="1"> 
 
         <tr> 
 
         <td> 
 
          <form name="form1" method="post" action="send_contact2.php"> 
 

 
          <img src="service.png" style="height: 42px; width: 533px" /> 
 
          <p style="color: #FF0000"> 
 

 
           <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1"> 
 
           <tr> 
 
            <td width="10%">Name</td> 
 
            <td width="2%">:</td> 
 
            <td width="82%"> 
 
            <input name="name" type="text" id="name" size="50"> 
 
            </td> 
 

 
           </tr> 
 

 

 

 
           <tr> 
 
            <td>Address</td> 
 
            <td>:</td> 
 
            <td> 
 
            <input name="address" type="text" id="address" size="50"> 
 
            </td> 
 
           </tr> 
 

 
           <tr> 
 
            <td>City</td> 
 
            <td>:</td> 
 
            <td> 
 
            <input name="city" type="text" id="city" size="50"> 
 
            </td> 
 
           </tr> 
 

 
           <tr> 
 
            <td>Phone Number</td> 
 
            <td>:</td> 
 
            <td> 
 
            <input name="phone" type="text" id="phone" size="50"> 
 
            </td> 
 
           </tr> 
 

 
           <tr> 
 
            <td>Email</td> 
 
            <td>:</td> 
 
            <td> 
 
            <input name="customer_mail" type="text" id="customer_mail" size="50"> 
 
            </td> 
 
           </tr> 
 

 
           <tr> 
 
            <td>Number of Dogs</td> 
 
            <td>:</td> 
 
            <td> 
 
            <select name="dogs" id="dogs"> 
 
             <option value="1">1</option> 
 
             </option> 
 
             <option value="2">2</option> 
 
             </option> 
 
             <option value="3">3</option> 
 
             </option> 
 
             <option value="4+">4+</option> 
 
             </option> 
 
            </select> 
 
            </td> 
 
           </tr> 
 

 
           <tr> 
 
            <td>Type of Service</td> 
 
            <td>:</td> 
 
            <td> 
 
            <select name="service_type" id="service_type"> 
 
             <option value="Weekly">Weekly</option> 
 
             </option> 
 
             <option value="BiWeekly">Bi-Weekly</option> 
 
             </option> 
 
             <option value="Twice a Week">Twice a Week</option> 
 
             </option> 
 
             <option value="One Time Cleanup">One Time Cleanup</option> 
 
             </option> 
 
            </select> 
 
            </td> 
 
           </tr> 
 

 
           <tr> 
 
            <td>Comments Questions</td> 
 
            <td>:</td> 
 
            <td> 
 
            <textarea name="address" cols="50" rows="4" id="address"></textarea> 
 
            </td> 
 
           </tr> 
 

 

 
           <tr> 
 
            <td>&nbsp;</td> 
 
            <td>&nbsp;</td> 
 

 
            <td> 
 
            <input type="submit" name="Submit" value="Submit"> 
 
            <input type="reset" name="Submit2" value="Reset"> 
 
            </td> 
 
           </tr> 
 
           </table> 
 

 

 
        </body> 
 

 
</html>

Вот мой код send_contact2.php

<?php 
 
// Contact subject 
 
$subject=$_POST['name']; 
 
// Details 
 
$address=$_POST['address']; 
 
$city=$_POST['city']; 
 
$phone=$_POST['phone']; 
 
$customer_mail=$_POST['customer_mail']; 
 
$dogs=$_POST['dogs']; 
 
$service_type=$_POST['service_type']; 
 
$completemessage="Address:$address City:$city Phone:$phone Email:$customer_mail Number of Dogs:$dogs Service Type:$service_type"; 
 

 
$message=$_POST['address', 'city', 'phone', 'customer_mail', 'dogs', 'service_type']; 
 

 
// Mail of Sender 
 
$mail_from=$_POST['customer_mail']; 
 
// From 
 
$header=$_POST['from: $name <$mail_from>']; 
 

 
// Enter your email address 
 
$to="[email protected]"; 
 

 
$send_contact=mail($to,$subject,$completemessage,$header); 
 

 
// Check if message sent to your email 
 
// display message "we've received your info" 
 
if($send_contact){ 
 
echo "We've recieved your information."; 
 
} 
 
else 
 
{ 
 
echo "Error"; 
 
} 
 
?>

+1

Ваш 'HTML' ужасна. Есть элементы перед телом. Вам нужно полностью переделать «HTML». – Mouser

+0

Ха-ха, я знаю. Я пытаюсь сделать этот проект как можно скорее. Мой редактор PHP тоже испортил его, это была моя ошибка. – iOSAaronDavid

+1

Я тоже относительно новичок в PHP. Я настоятельно рекомендую библиотеку PHPMailer - таким образом вы можете легко писать HTML-письма. –

ответ

0

Я думаю, что было бы лучше использовать PHPMailer или другую инфраструктуру, потому что использование mail() не столь безопасно. Многое связано с этой проблемой, поэтому я решил сделать эту задачу по-другому.

0

Строка ниже не подходит.

$header=$_POST['from: $name <$mail_from>']; 

Изменить его к этому

$header= "from: $name <$mail_from>"; 

Если вы хотите использовать переменные $var в строку, необходимо использовать двойные кавычки ". При использовании одинарных кавычек ' вам необходимо завершить и concat: 'string bla bla'.$var.'string continues'. Конкатенация с точками ..

2

Изменить метод = "POST \"> Для

method="POST" > 

Удалить \

+0

Я исправил его раньше, когда я был в комнате чата PHP. Я забыл исправить это, но сейчас я его исправил. благодаря – iOSAaronDavid