2016-10-08 2 views
-1

Сначала позвольте мне начать с того, что я не очень много знаю о php и html. Я хотел бы создать форму php с перенаправлением на главную страницу. В любое время, когда я заполняю контактную форму, он не отправляет электронное письмо и не делает ничего на странице.
Вот HTML:PHP Форма электронной почты с перенаправлением

<form action="contact-form.php" method="post" class="contact-form" id="contact-form"> 
<fieldset class="form-rows row"> 
    <div class="form-row column medium-6"> 
     <label for="contact-name">Your name</label> 
     <input type="text" name="name" id="contact-name" placeholder="e.g. John Smith"> </div> 
    <div class="form-row column medium-6"> 
     <label for="contact-email">Email address</label> 
     <input type="email" name="email" id="contact-email" placeholder="e.g. [email protected]"> </div> 
    <div class="form-row column medium-12 half"> 
     <label for="contact-phone">Phone number 
      <br><small>We promise we will only use your phone number to contact you regarding this message.</small></label> 
     <input type="tel" name="phone" id="contact-phone" class="half" placeholder="e.g. 123 456 7890"> 
    </div> 
</fieldset> 
<fieldset class="for-rows row"> 
    <div class="form-row column medium-12"> 
     <label for="contact-subject">Message subject</label> 
     <select name="subject" id="contact-subject"> 
      <option value="">Please select one</option> 
      <option value="1">General enquiry</option> 
      <option value="2">I'd like to say thank you!</option> 
      <option value="2">Something wasn't right with my order!</option> 
     </select> 
    </div> 
</fieldset> 
<fieldset class="form-rows row"> 
    <div class="form-row column"> 
     <label for="contact-message">Your message</label> 
     <textarea name="message" id="contact-message" rows="8" placeholder="Enter message here &hellip;"></textarea> 
    </div> 
    <div class="form-row column"> 
     <input type="checkbox" name="newsletter" id="contact-newsletter" placeholder=""> 
     <label for="contact-newsletter">I would like to receive information about news, promotions, customer surveys, competitions, exclusive offers, events.</label> 
    </div> 
    <div class="form-row form-button column"> 
     <button type="submit" class="button-orange">Send Message</button> 
    </div> 
    <div class="column"> 
     <h3>Your information</h3> 
      <p>We will use your information for dealing with your request and, if you agree, to contact you with information about news, promotions, customer surveys, competitions, exclusive offers, events and other information we think may be of interest to you. We will not share your information for marketing purposes with any third party.</p> 
    </div> 
</fieldset> 
</form> 

И PHP:

<?php 
$field_name = $_POST['name']; 
$field_email = $_POST['email']; 
$field_phone = $_POST['phone']; 
$field_subject = $_POST['subject']; 
$field_message = $_POST['message']; 

$mail_to = '[email protected]'; 
$subject = $field_subject; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Phone: '.$field_phone."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
<script language="javascript" type="text/javascript"> 
    window.location = 'index.html'; 
</script> 
<?php 
} 
else { ?> 
<script language="javascript" type="text/javascript"> 
    window.location = 'contact.html'; 
</script> 
<?php 
}?> 

ответ

0

ваш Перенаправление бессмысленно, вы должны использовать PHP заголовок так:

if ($mail_status) { 
    header('Location: index.html'); 
} 
else { 
    header('Location: contact.html'); 
} 

функция почты выглядит нормально , Я бы рекомендовал вам использовать phpmailer, потому что письма нуждаются в надлежащих заголовках для надлежащего приема.

Вы можете сделать var_dump ($ _ POST); умереть(); чтобы узнать, правильно ли вы получаете _POST.

также почта() = True doesnt mean it reached its destination

Ваша проблема может быть сервер более чем PHP

Вы делаете это на локальном сервере? Это не работает, используйте test mail server для целей отладки.

Вы делаете это в хосте? Проверьте разрешения php.ini, попробуйте с простым сценарием mail("[email protected]","My subject",$msg); проверить ответ и если он действительно поставляет.

+0

Мы не использовали тестовый почтовый сервер, и мы загрузили его на сайт Godaddy, чтобы узнать, работает ли он. Где я могу найти разрешения php.ini? Мы очень новичок в этом. – Zoned

+0

testmail сервер только для локального. Поскольку вы не на локальном компьютере, попробуйте выполнить простой скрипт .php, назовите его «testmail.php» и выполните var_dump (mail («[email protected]», «My subject», $ msg)); это ложь? у вас нет прав, правда? вы должны получить электронное письмо, если вы затем не используете phpmailer – Aschab

+0

Я снова загрузил веб-сайт и нажал submit, и вот что я получил: site.js: 2254 Uncaught TypeError: Невозможно прочитать свойство «captcha» неопределенной (анонимной функции) @ site .js: 2254c @ libs.js: 1534add @ libs.js: 1549 (анонимная функция) @ site.js: 2253dispatch @ libs.js: 1901g.handle @ libs.js: 1853 – Zoned

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