2015-06-02 4 views
2

Я пытаюсь реализовать контакт PHP для веб-сайта, который, кажется, походит на то, что я не должен застрять, но у меня все время возникают проблемы. Я помещал свой HTML и PHP в отдельных файлах, которые я цифра хорошая практика, так что моя установка выглядит следующим образом:PHP Контактный формуляр Почта Функция не работает

HTML (Мой файл index.php)

<head> 
    <?php include '../scripts/site.php' ?> 
</head> 

<form action='../scripts/site.php' method='post'> 
    <input type=text class="formfields" placeholder="Name" name="name"> 
    <br><br> 
    <input type=email class="formfields" placeholder="Email" name="contact_email">   <br><br> 
    <textarea type=text placeholder="Tell Us About Your Project" name="message"></textarea> 
    <br><br> 
    <input class="submit" type="submit" value="Send"> 
</form> 

PHP (site.php файл в моем каталоге скриптов)

<?php 

if(isset($_POST['name']) && isset($_POST['contact_email']) && isset($_POST['message'])) { 

echo $name = $_POST['name']; 
echo $contact_email = $_POST['contact_email']; 
echo $message = $_POST['message']; 

if(!empty($name) && !empty($contact_email) && !empty($message){ 
    $to = '[email protected]'; 
    $subject = 'contact email'; 
    $body = $message; 
    $headers = 'From: ' .$contact_email; 

    mail($to, $subject, $body, $headers); 

    if(mail($to, $subject, $body, $headers)){ 
     echo 'Thanks for contacting us!'; 
    } 
    else{ 
     echo 'Message could not be sent'; 
    } 
} 
else{ 
    echo 'All fields are required'; 
} 
} 

?> 

Я чувствую, что я, вероятно, что делает структурную ошибку в моем коде при попытке получить HTML и PHP, чтобы общаться друг с другом. Я думаю, что сама почтовая программа в порядке, но я могу ошибаться.

Я пробую это на живом сайте, так что это не проблема locahost/host. (И да, я понимаю, что форма не является удаленной, и я планирую ее исправление, как только я получу ее для правильной отправки.)

+0

Вы получаете сообщение благодарности? –

+0

Что такое '! = Empty ($ name)' ??? – Mysteryos

+0

Не получив сообщение благодарности, которое заставляет меня думать, что программа даже не попадает в почтовую часть. – 123

ответ

2

Удалите = из операторов if. Это должно быть (!empty()) вместо (!=empty())

Кроме того, вы никогда не закрывали () во втором заявлении if.

if((!empty($name)) && (!empty($contact_email)) && (!empty($message))){

выше линии, что бы исправить множество ваших вопросов. Добавьте это в свой скрипт.

+0

Еще одна вещь, которую нужно попробовать - поставить PHP в верхней части формы и сохранить ее как .php-файл. затем отправьте действие формы как «action =» "'. Не обязательно, но поможет сохранить код вместе. –

0

Вам не нужно включать ваш PHP-код, если вы ссылаетесь на него в атрибуте действия формы.

Кроме того, если бы вы были более конкретными об ошибках, которые вы видите, я лучше смогу вам помочь.

Очистка вашего текущего кода и удаление возможных ошибок приведет вас сюда. Попробуйте это вместо этого и сообщите мне, есть ли больше ошибок.

<?php 

    if(isset($_POST['name']) && isset($_POST['contact_email']) && isset($_POST['message'])) { 

    $name = $_POST['name']; 
    $contact_email = $_POST['contact_email']; 
    $message = $_POST['message']; 

    if(!empty($name) && !empty($contact_email) && !empty($message){ 
     $to = '[email protected]'; 
     $subject = 'contact email'; 
     $body = $message; 
     $headers = 'From: ' .$contact_email; 

     mail($to, $subject, $body, $headers); 

     if(mail($to, $subject, $body, $headers)){ 
      echo 'Thanks for contacting us!'; 
     } 
     else{ 
      echo 'Message could not be sent'; 
     } 
    } 
    else{ 
     echo 'All fields are required'; 
    } 
    } 

     ?> 
0

В PHP, использование NOT EQUAL при использовании Исеть или пуст, на самом деле следующее;

if(!empty()){ 
if(!isset()){ 

Ваше использование подходит для сравнения цен, таких как в следующем случае;

if($var1 != $var2){ 

Здесь может быть дополнительная полезная информация; http://php.net/manual/en/language.operators.comparison.php, но это должно помочь вам тем временем.

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