後,我有與PHP處理的HTML表單顯示一條消息。我想顯示一條消息讓用戶知道表單已成功提交。現在我不介意頁面是否重新加載。我只想要一個'成功'!消息一旦提交表單就會出現。如何形成已成功提交
任何幫助將是偉大的!
PHP
<?php
$errors = array();
$missing = array();
if (isset($_POST['submit'])) {
$to = '[email protected]';
$subject = 'Web Design';
$expected = array('name', 'company', 'email', 'phone', 'contactYou', 'interest', 'budget', 'comments');
$required = array('name', 'email', 'contactYou', 'interest', 'budget', 'comments');
$headers = "From: [email protected]\r\n";
$headers .= "Content-type: text/plain; charset=utf-8";
$authenticate = '[email protected]';
require './_includes/mail_process.php';
if ($mailSent) {
header('Location: index.php#c');
exit;
}
}
?>
HTML
<div id="contactBox">
<form name="contact" id="contactForm" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<div id="formLeft">
<p>
<label for="name">Name</label>
<?php if ($missing && in_array('name', $missing)) { ?>
<div class="warningDivLeft">
<span class="warning">Please enter your name</span>
</div>
<?php } ?>
<input type="text" name="name" id="name" tabindex="10"
<?php
if ($errors || $missing) {
echo 'value="' . htmlentities($name, ENT_COMPAT, 'utf-8') . '"';
}
?>
>
</p>
<p>
<label for="company">Company Name/Website</label>
<input type="text" name="company" id="company" tabindex="30"
<?php
if ($errors || $missing) {
echo 'value="' . htmlentities($company, ENT_COMPAT, 'utf-8') . '"';
}
?>
>
</p>
<p>
<label for="email">Email</label>
<?php if ($missing && in_array('email', $missing)) { ?>
<div class="warningDivLeft">
<span class="warning">Please enter your email</span>
</div>
<?php } elseif (isset($errors['email'])) { ?>
<div class="warningDivLeft">
<span class="warning">Invalid email address</span>
</div>
<?php } ?>
<input type="email" name="email" id="email" tabindex="40"
<?php
if ($errors || $missing) {
echo 'value="' . htmlentities($email, ENT_COMPAT, 'utf-8') . '"';
}
?>
>
</p>
<p>
<label for="phone">Phone</label>
<input type="text" name="phone" id="phone" tabindex="50"
<?php
if ($errors || $missing) {
echo 'value="' . htmlentities($phone, ENT_COMPAT, 'utf-8') . '"';
}
?>
>
</p>
<p>
<label for="contactYou">Contact you by...</label>
<?php if ($missing && in_array('contactYou', $missing)) { ?>
<div class="warningDivLeft">
<span class="warning">Please select one</span>
</div>
<?php } ?>
<select name="contactYou" size="1" id="contactYou" tabindex="60">
<option value="" selected="selected">- select</option>
<option value="email" <?php echo ($contactYou == 'email') ? ' selected="selected"' : ''; ?>>Email</option>
<option value="phone" <?php echo ($contactYou == 'phone') ? ' selected="selected"' : ''; ?>>Phone</option>
</select>
</p>
</div>
<div id="formRight">
<p>
<label for="interest">I am interested in...</label>
<?php if ($missing && in_array('interest', $missing)) { ?>
<div class="warningDiv">
<span class="warning">Please select one</span>
</div>
<?php } ?>
<select name="interest" size="1" id="interest" tabindex="80">
<option value="" selected="selected">- select</option>
<option value="new" <?php echo ($interest == 'new') ? ' selected="selected"' : ''; ?>>Creating a new website</option>
<option value="current" <?php echo ($interest == 'current') ? ' selected="selected"' : ''; ?>>Redesigning a current website</option>
<option value="responsive" <?php echo ($interest == 'responsive') ? ' selected="selected"' : ''; ?>>Reponsive web design</option>
<option value="wordpress" <?php echo ($interest == 'wordpress') ? ' selected="selected"' : ''; ?>>A WordPress website</option>
<option value="general" <?php echo ($interest == 'general') ? ' selected="selected"' : ''; ?>>General enquiry</option>
</select>
</p>
<p>
<label for="budget">My budget is...</label>
<?php if ($missing && in_array('budget', $missing)) { ?>
<div class="warningDiv">
<span class="warning">Please select one</span>
</div>
<?php } ?>
<select name="budget" size="1" id="budget" tabindex="90">
<option value="" selected="selected">- select</option>
<option value="100" <?php echo ($budget == '100') ? ' selected="selected"' : ''; ?>>€100 - €500</option>
<option value="500" <?php echo ($budget == '500') ? ' selected="selected"' : ''; ?>>€500 - €1,000</option>
<option value="1000" <?php echo ($budget == '1000') ? ' selected="selected"' : ''; ?>>€1,000 - €2,000</option>
<option value="2000" <?php echo ($budget == '2000') ? ' selected="selected"' : ''; ?>>€2,000 - €5,000</option>
<option value="5000" <?php echo ($budget == '5000') ? ' selected="selected"' : ''; ?>>€5,000 - €10,000</option>
<option value="10000" <?php echo ($budget == '10000') ? ' selected="selected"' : ''; ?>>€10,000+</option>
</select>
</p>
<p>
<label for="comments">How can I help you?</label>
<?php if ($missing && in_array('comments', $missing)) { ?>
<div class="warningDiv">
<span class="warning">Please leave a comment</span>
</div>
<?php } ?>
<textarea name="comments" id="comments" cols="45" rows="5" tabindex="100"><?php
if ($errors || $missing) {
echo htmlentities($comments, ENT_COMPAT, 'utf-8');
}
?></textarea>
</p>
</div>
<div id="formSubmit">
<ul>
<li>
<input type="submit" name="submit" id="submit" value="Send Message" tabindex="70">
</li>
</ul>
</div>
</form>
</div>
mail_process.php
<?php
$suspect = false;
$pattern = '/Content-Type:|Bcc:|Cc:/i';
function isSuspect($val, $pattern, &$suspect) {
if (is_array($val)) {
foreach ($val as $item) {
isSuspect($item, $pattern, $suspect);
}
} else {
if (preg_match($pattern, $val)) {
$suspect = true;
}
}
}
isSuspect($_POST, $pattern, $suspect);
if (!$suspect) {
foreach ($_POST as $key => $value) {
$temp = is_array($value) ? $value : trim($value);
if (empty($temp) && in_array($key, $required)) {
$missing[] = $key;
$$key = '';
} elseif(in_array($key, $expected)) {
$$key = $temp;
}
}
}
if (!$suspect && !empty($email)) {
$validemail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($validemail) {
$headers .= "\r\nReply-to: $validemail";
} else {
$errors['email'] = true;
}
}
if (!$suspect && !$missing && !$errors) {
$message = '';
foreach ($expected as $item) {
if (isset($$item) && !empty($$item)) {
$val = $$item;
} else {
$val = 'Not selected';
}
if (is_array($val)) {
$val = implode(', ', $val);
}
$item = str_replace(array('_', '-'), ' ', $item);
$message .= ucfirst($item) . ": $val\r\n\r\n";
}
$message = wordwrap($message, 70);
$mailSent = mail($to, $subject, $message, $headers, $authenticate);
if (!$mailSent) {
$errors['mailfail'] = true;
}
}
的好,而不是重定向到另一個頁面,您可以顯示一條消息。 – idmean
感謝您的評論。我會怎麼做呢? – ineedhalp