提交时联系表单错误

时间:2015-03-14 21:09:41

标签: php forms

我使用以下内容构建了一个基本联系表单:

<?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输入留空并提交表单,则表示成功。但是,如果我添加任何名称输入。表单没有发送,网站加载了未找到的页面&#39;。

2 个答案:

答案 0 :(得分:0)

将type =“text”添加到第一个输入元素中。

答案 1 :(得分:0)

此代码似乎对我有用,测试它并查看邮件是否正确发送。

我添加了

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