我的php联系表单没有正常工作

时间:2014-07-17 04:31:52

标签: php html

联系表单只会发送一封电子邮件,上面写着电子邮件和邮件的名称。我已经过了几个小时,但似乎没有任何工作。

这是联系人php文件(电子邮件已编辑)

<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];

$mail_to = 'outlook.com';
$subject = 'Message about Tejano Fest '.$field_name;

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\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">
  alert('Thank you for the message. We will contact you shortly.');
  window.location = 'index.html';
</script>
<?php

以下是与之相关的html片段:

<form method="post" name="contact" action="#contact">
    <div class="left">
        <label for="author">Name:</label> 
        <input name="author" type="text" class="input_field" id="author" maxlength="40" />
    </div>
    <div class="right">
        <label for="email">Email:</label> 
        <input name="email" type="text" class="input_field" id="email" maxlength="80" />
    </div>
    <div class="clear"></div>
    <label for="text">Message:</label> <textarea id="text" name="text" rows="0" cols="0"></textarea>
    <input type="submit" class="submit_btn float_l" name="submit" id="submit" value="Send" />
</form>

提前感谢你的帮助。

4 个答案:

答案 0 :(得分:4)

更改它(有输入的名称):

$field_name = $_POST['author'];
$field_email = $_POST['email'];
$field_message = $_POST['text'];

享受您的代码!

答案 1 :(得分:1)

使用此...您的POST数组值与表单字段名称不匹配。

<form method="post" name="contact" action="#contact">
<div class="left">
    <label for="author">Name:</label> 
    <input name="cf_name" type="text" class="input_field" id="author" maxlength="40" />
</div>
<div class="right">
    <label for="email">Email:</label> 
    <input name="cf_email" type="text" class="input_field" id="email" maxlength="80" />
</div>
<div class="clear"></div>
<label for="text">Message:</label> <textarea id="text" name="cf_message" rows="0" cols="0"></textarea>
<input type="submit" class="submit_btn float_l" name="submit" id="submit" value="Send" />

答案 2 :(得分:0)

<?php 

if(isset($_POST['submit'])){

$field_name = $_POST['author'];
$field_email = $_POST['email'];
$field_message = $_POST['text'];

$mail_to = 'test@outlook.com';
$subject = 'Message about Tejano Fest '.$field_name;

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\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">
  alert('Thank you for the message. We will contact you shortly.');
  window.location = 'index.html';
</script>
<?php
} }?>

答案 3 :(得分:0)

要考虑的其他一些选项(当然在更改POST数组的值之后),您可能想尝试使用PhpMailer - http://phpmailer.worxware.com/?pg=examplebsendmail,因为您的托管解决方案可能需要Smtp authourisation。