提交时联系表单错误


Contact form error on submit

我使用以下方法构建了一个基本的联系表单:

<?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>'; 
    }
}
?>