当我在联系表单上点击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;
?>
答案 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"