没有参数提供! - PHP联系表格

时间:2017-04-03 05:25:11

标签: php contact-form

当我在联系表单上点击Send Message时,我会转到mysite.com/mail.php,并向我显示错误No arguments Provided!

这是我的HTML

<form id="myForm" method="post" action="../mail.php">

            <div class="row">
                    <div class="medium-6 columns">
                        <input type="text" name="name" value="" placeholder="Your Name">
                    </div>
                    <div class="medium-6 columns">
                        <input type="text" name="website" value="" placeholder="Website">
                    </div>
                    <div class="medium-6 columns">
                        <input type="email" name="email" value="" placeholder="Email">
                    </div>
                    <div class="medium-6 columns">
                        <input type="text" name="service" value="" placeholder="Service Needed">
                    </div>
            </div>

            <div class="row">
                <div class="columns">
                    <label for="textarea">
                        <textarea name="message" rows="8" cols="80" placeholder="Tell me about your project"></textarea>
                    </label>
                </div>
            </div>

        <div class="row">
            <div class="columns">
                <input name="Submit" type="submit" class="button" value="Send Message">
            </div>
        </div>

        </form>

这是PHP

<?php
if(empty($_POST['name'])        ||
   empty($_POST['email'])       ||
   empty($_POST['website'])     ||
     empty($_POST['service'])   ||
   empty($_POST['message'])   ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
    echo "No arguments Provided!";
    return false;
   }

$name = $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];

// Create the email and send the message
$to = 'myemail@gmail.comm';
$email_subject = "Website Contact Form SRC:  $name";
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message";
$headers = "From: myemail@gmail.comm\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
return true;
?>

2 个答案:

答案 0 :(得分:1)

通过一个验证数据,因此您知道缺少什么,并且可以将其返回给用户:

<?php
    $errors = [];

    if (empty($_POST['name'])) {
        $errors[] = 'No name provided';
    }

    if (empty($_POST['email'])) {
        $errors[] = 'No email provided';
    }

    if (!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) {
        $errors[] = 'Email format wrong';
    }

    if (empty($_POST['website'])) {
        $errors[] = 'No website provided';
    }

    if (empty($_POST['service'])) {
        $errors[] = 'No service provided';
    }

    if (empty($_POST['message'])) {
        $errors[] = 'No message provided';
    }

    if (count($errors)) {
        print_r($errors); // Or return to previous window with errors
    }

答案 1 :(得分:0)

使用name="website"代替name="webiste"

相关问题