我正在尝试使用以下表单。我希望能够在用户提交表单时通过电子邮件从文本字段和单选按钮发送信息。我还希望在表单提交后页面重定向到“thankyou”页面。目前看来,页面重定向但没有发送电子邮件。这是我现在拥有的:
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.'">';
?>
答案 0 :(得分:1)
PHP不会为您提交的每个表单输入创建全局变量。使用$_POST
superglobal。
答案 1 :(得分:1)
你必须使用 $ _ POST [] 从html表单中检索你的数据...如果你使用POST方法然后改变你的代码......
$msg = $_POST['name'];
$msg.= $_POST['date'];
答案 2 :(得分:0)
希望检索所有值并且完全没有语法错误。 如果您正在离线或localhost进行测试,那么它可能无法通过简单的php邮件功能工作,因此在这种情况下,您可以使用smtp邮件服务器,如果有互联网连接,它将起作用。