-1

我正在尝试使以下表格起作用。当用户提交表单时,我希望能够通过电子邮件从文本字段和单选按钮发送信息。我还希望页面在表单提交后重定向到“谢谢”页面。按照目前的情况,页面重定向但没有发送电子邮件。这是我目前拥有的:

HTML:

  Name: <input type="text" id="name" name="name" />
  Date: <input type="text" id="date" name="date" />
  Job description: <input type="text" id="job" name="job" />

    <label for="yes">Yes</label>
    <input type="radio" id="Yes" name="q1" value="Yes"/>
    <label for="no">No</label>
    <input type="radio" id="No" name="q1" value="No"/>

    <label for="yes">Yes</label>
    <input type="radio" id="Yes" name="q2" value="Yes"/>
    <label for="no">No</label>
    <input type="radio" id="No" name="q2" value="No"/>

    <label for="yes">Yes</label>
    <input type="radio" id="Yes" name="q3" value="Yes"/>
    <label for="no">No</label>
    <input type="radio" id="No" name="q3" value="No"/>
    <input type="radio" id="Maybe" name="q3" value="Maybe"/>
    <label for="why">Why? (please state)</label><input type="text" id="why" name="why"/>

    <input type="submit" id="message_submit" class="submit-button"/>
</form> 

PHP

<?php
$toaddress = "example@example.com"; 
$subject = "Subject"; 
$email = "sender@example.com"; 
$url = 'thankyou.php'; 

$msg = "$name\n"; 
$msg.= "$date\n"; 
$msg.= "$job\n"; 
$msg.= "$q1\n"; 
$msg.= "$q2\n"; 
$msg.= "$q3\n";
$msg.= "$why\n"; 

$mailheaders = "From: $email\n"; 
$mailheaders .= "To: recipient@example.com\n"; 
$mailheaders .= "Content-Type: multipart/mixed; \n"; 

mail($toaddress, $subject, $msg, $mailheaders); 

if($sent)
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
?>  
4

3 回答 3

1

PHP 不会为您提交的每个表单输入创建全局变量。使用$_POST超全局.

于 2013-09-23T11:08:13.423 回答
1

您必须使用$_POST[ ]从 html 表单中检索数据...如果您使用 POST 方法,则像这样更改您的代码...

$msg = $_POST['name']; 
$msg.= $_POST['date']; 
于 2013-09-23T11:13:37.500 回答
0

希望所有值都被检索并且完全没有语法错误。如果您是在离线或本地测试它,那么它可能无法通过简单的 php 邮件功能工作,所以在这种情况下,您可以使用 smtp 邮件服务器,如果有互联网连接,它将工作。

看看这个:PHP邮件服务器类

于 2013-09-23T11:47:12.073 回答