2015-04-11 4 views
1

В нижней части этой страницы в разделе «Быстрое сообщение» в правом нижнем углу находится контактная форма, которую я пытаюсь исправить.Я пытаюсь создать рабочую контактную форму PHP

http://danielgruttadaro.chapter7ny.com

форма не позволяет представления, которые не имеют все три секции, заполненные. Тем не менее, я получаю ошибку: «извините непредвиденную ошибку, пожалуйста, попробуйте еще раз позже», когда форма будет правильно заполнена. Ниже приведены соответствующие html и php. Спасибо за вашу помощь.

<form method="post" action="contact.php" id="contactform"> 
<div class="form"> 
<input class="col-md-6" type="text" name="name" placeholder="Name"> 
<input class="col-md-6" type="text" name="email" placeholder="E-mail"> 
<textarea class="col-md-12" name="message" rows="4" placeholder="Message"></textarea> 
<input type="submit" id="submit" class="btn" value="Send"> 
</div> 

Вот PHP:

<?php 

//Retrieve form data. 
//GET - user submitted data using AJAX 
//POST - in case user does not support javascript, we'll use POST instead 
$name = ($_GET['name']) ? $_GET['name'] : $_POST['name']; 
$email = ($_GET['email']) ?$_GET['email'] : $_POST['email']; 
$message = ($_GET['message']) ?$_GET['message'] : $_POST['message']; 

//flag to indicate which method it uses. If POST set it to 1 

if ($_POST) $post=1; 

//Simple server side validation for POST data, of course, you should  validate the email 
if (!$name) $errors[count($errors)] = 'Please enter your name.'; 
if (!$email) $errors[count($errors)] = 'Please enter your email.'; 
if (!$message) $errors[count($errors)] = 'Please enter your message.'; 

//if the errors array is empty, send the mail 
if (!$errors) { 

//recipient - replace your email here 
$to = '[email protected]'; 
//sender - from the form 
$from = $name . ' <' . $email . '>'; 

//subject and the html message 
$subject = 'Message from ' . $name; 
$message = 'Name: ' . $name . '<br/><br/> 
      Email: ' . $email . '<br/><br/>  
      Message: ' . nl2br($message) . '<br/>'; 

//send the mail 
$result = sendmail($to, $subject, $message, $from); 

//if POST was used, display the message straight away 
if ($_POST) { 
    if ($result) echo 'Thank you! We have received your message.'; 
    else echo 'Sorry, unexpected error. Please try again later'; 

//else if GET was used, return the boolean value so that 
//ajax script can react accordingly 
//1 means success, 0 means failed 
} else { 
    echo $result; 
} 

//if the errors array has values 
} else { 
//display the errors message 
for ($i=0; $i<count($errors); $i++) echo $errors[$i] . '<br/>'; 
echo '<a href="index.html">Back</a>'; 
exit; 
} 


//Simple mail function with HTML header 
function sendmail($to, $subject, $message, $from) { 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 
$headers .= 'From: ' . $from . "\r\n"; 

$result = mail($to,$subject,$message,$headers); 

if ($result) return 1; 
else return 0; 
} 

?> 
+0

Я бы предложил библиотеку phpMailer, которая проста в использовании. –

ответ

1

Скорее всего, машина, которая работает под управлением PHP не имеет почтовый сервер, а также. Функция почты требует этого. Вы можете использовать библиотеку как:

https://github.com/PHPMailer/PHPMailer

и использовать существующую учетную запись GMAIL, чтобы отправить по электронной почте:.

http://phpmailer.worxware.com/?pg=examplebgmail

, который позволит вам по почте себя все, что они печатают в этом есть что Я использую практически все мои проекты.

Вы также можете использовать PEAR:

https://pear.php.net/package/Mail

который я также имел удачи в прошлом. Godspeed.