我的网络表单工作正常,除了 如果用户提交的表单中缺少1个或多个字段 用户将看到错误消息并且所有输入/消息都消失了。 用户必须再次输入消息
1)如何保留消息,以便用户不必再次输入?
2)我的网页表格是不是垃圾邮件发送者?
我的网络表单 http://www.jewelryindonesia.com/contact.php
我的表单代码:
<?php
// check for a successful form post
if (isset($_GET['s'])) echo "<div class=\"alert alert-success\">".$_GET['s']."</div>";
// check for a form error
elseif (isset($_GET['e'])) echo "<div class=\"alert alert-danger\">".$_GET['e']."</div>";
?>
<form role="form" method="POST" action="contact-form-submission.php">
<div class="row">
<div class="form-group col-lg-4">
<label for="input1">Name</label>
<input type="text" name="contact_name" class="form-control" id="input1">
</div>
<div class="form-group col-lg-4">
<label for="input2">Email Address</label>
<input type="email" name="contact_email" class="form-control" id="input2">
</div>
<div class="form-group col-lg-4">
<label for="input3">Phone Number/WhatsApp</label>
<input type="phone" name="contact_phone" class="form-control" id="input3">
</div>
<div class="clearfix"></div>
<div class="form-group col-lg-12">
<label for="input4">Message</label>
<textarea name="contact_message" class="form-control" rows="6" id="input4"></textarea>
</div>
<div class="form-group col-lg-12">
<input type="hidden" name="save" value="contact">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
my php:
<?php
// check for form submission - if it doesn't exist then send back to contact form
if (!isset($_POST['save']) || $_POST['save'] != 'contact') {
header('Location: contact.php'); exit;
}
// get the posted data
$name = $_POST['contact_name'];
$email_address = $_POST['contact_email'];
$phone = $_POST['contact_phone'];
$message = $_POST['contact_message'];
// check that a name was entered
if (empty($name))
$error = 'You must enter your name.';
// check that an email address was entered
elseif (empty($email_address))
$error = 'You must enter your email address.';
// check for a valid email address
elseif (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $email_address))
$error = 'You must enter a valid email address.';
// check that a phone number was entered
if (empty($phone))
$error = 'You must enter your phone number.';
// check that a message was entered
elseif (empty($message))
$error = 'You must enter a message.';
// check if an error was found - if there was, send the user back to the form
if (isset($error)) {
header('Location: contact.php?e='.urlencode($error)); exit;
}
$headers = "From: $email_address\r\n";
$headers .= "Reply-To: $email_address\r\n";
// write the email content
$email_content = "Name: $name\n";
$email_content .= "Email Address: $email_address\n";
$email_content .= "Phone Number: $phone\n";
$email_content .= "Message:\n\n$message";
// send the email
//ENTER YOUR INFORMATION BELOW FOR THE FORM TO WORK!
mail ('xxxx@gmail.com', 'Jewelryxxx.com Online Form', $email_content, $headers);
// send the user back to the form
header('Location:jewelry-indonesia-thankyou.html?s='.urlencode('Your Message Has Been Sent ! Thank you for your message.')); exit;
?>
答案 0 :(得分:0)
为避免用户在脚本跳转到错误验证时不必再次键入,可以将$ _POST字段存储到变量中,然后再次调用html字段值上的该变量。
可以通过设置capcha和更多验证输入来避免Web表单垃圾邮件发送者,如上所述,只是可以解决问题。
isset($_POST['keterangan'])
!isset()和$ _POST [var] ==“”;相同的含义
编辑所有过程在1页代码contact.php
<?php
$name = $_POST['contact_name'];
$email_address = $_POST['contact_email'];
$phone = $_POST['contact_phone'];
$message = $_POST['contact_message'];
if ($name=="" || $email_address="" || $phone=="" || $message==""){
if ($_POST['save']=="contact"){
echo "semua field harus diisi untuk melanjutkan";
}
}else{
// check that a name was entered
if (empty($name))
$error = 'You must enter your name.';
// check that an email address was entered
elseif (!isset($email_address))
$error = 'You must enter your email address.';
// check for a valid email address
elseif (preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $email_address))
$error = 'You must enter a valid email address.';
// check that a phone number was entered
if (empty($phone))
$error = 'You must enter your phone number.';
// check that a message was entered
elseif (empty($message))
$error = 'You must enter a message.';
// check if an error was found - if there was, send the user back to the form
if (isset($error)) {
echo "<div class=\"alert alert-danger\">".$error."</div>";
}else{
$headers = "From: $email_address\r\n";
$headers .= "Reply-To: $email_address\r\n";
$email_content = "Name: $name\n";
$email_content .= "Email Address: $email_address\n";
$email_content .= "Phone Number: $phone\n";
$email_content .= "Message:\n\n$message";
mail ('xxxx@gmail.com', 'Jewelryxxx.com Online Form', $email_content, $headers);
// send the user back to the form
echo "<div class=\"alert alert-success\">Your Message Has Been Sent ! Thank you for your message.</div>";
}
}
echo '<form role="form" method="POST" action="contact.php">
<div class="row">
<div class="form-group col-lg-4">
<label for="input1">Name</label>
<input type="text" name="contact_name" class="form-control" id="input1" value="'.$name.'">
</div>
<div class="form-group col-lg-4">
<label for="input2">Email Address</label>
<input type="email" name="contact_email" class="form-control" id="input2" value="'.$email_address.'">
</div>
<div class="form-group col-lg-4">
<label for="input3">Phone Number/WhatsApp</label>
<input type="phone" name="contact_phone" class="form-control" id="input3" value="'.$phone.'">
</div>
<div class="clearfix"></div>
<div class="form-group col-lg-12">
<label for="input4">Message</label>
<textarea name="contact_message" class="form-control" rows="6" id="input4">'.$message.'</textarea>
</div>
<div class="form-group col-lg-12">
<input type="hidden" name="save" value="contact">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>';
?>