我使用以下方法构建了一个基本的联系表单:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$contact = $_POST['contact'];
$message = $_POST['message'];
$from = 'From: Contact';
$to = 'info@mydomain.com';
$subject = 'message';
$body = "From: $name'n E-Mail: $email'n Contact Number: $contact'n Message:'n $message";
?>
<form id="contact-1" method="post">
<label>Name</label>
<input name="name" placeholder="YOUR NAME">
<label>Email</label>
<input name="email" type="email" placeholder="EMAIL ADDRESS">
<label>Contact Number</label>
<input name="contact" type="tel" placeholder="TELEPHONE">
<label>Message</label>
<textarea name="message" placeholder="MESSAGE"></textarea>
<input id="submit" name="submit" type="submit" value="Submit">
</form>
<?php
if ($_POST['submit'] ) {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been submitted</p>';
} else {
echo '<p>Something went wrong, please try again!</p>';
}
}
?>
如果将name
输入留空并提交表单,则表单成功。但是,如果我添加任何名称输入。表单未发送,网站加载"找不到页面"。
将 type="text" 添加到第一个输入元素中。
这段代码似乎对我有用,测试一下,看看邮件是否正确发送。
我添加了
type="text"
到名称,并添加
isset()
周围
$_POST['submit']
我用
if (isset($_POST['submit']) ) {
避免在首次提交页面之前出错。
<?php
if (isset($_POST['submit']) ) {
$name = $_POST['name'];
$email = $_POST['email'];
$contact = $_POST['contact'];
$message = $_POST['message'];
$from = 'From: Contact';
$to = 'info@mydomain.com';
$subject = 'message';
$body = "From: $name'n E-Mail: $email'n Contact Number: $contact'n Message:'n $message";
}
?>
<form id="contact-1" method="post">
<label>Name</label>
<input type="text" name="name" placeholder="YOUR NAME">
<label>Email</label>
<input name="email" type="email" placeholder="EMAIL ADDRESS">
<label>Contact Number</label>
<input name="contact" type="tel" placeholder="TELEPHONE">
<label>Message</label>
<textarea name="message" placeholder="MESSAGE"></textarea>
<input id="submit" name="submit" type="submit" value="Submit">
</form>
<?php
if (isset($_POST['submit'])) {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been submitted</p>';
} else {
echo '<p>Something went wrong, please try again!</p>';
}
}
?>