php - 配置 PHP 页面上的表单重定向
问题描述
我有一个功能齐全的表单,可以按原样发送邮件,但由于某种原因,当我(尝试)提交我的消息时,它没有在表单下显示成功或错误警报,而是打开sendmail.php
带有消息的页面,没有任何 CSS ......已经 4 天了,我快疯了。我确定这实际上是一个愚蠢的错字或其他东西,但我找不到它,请帮忙。
这是我的 sendmail.php:
<?php
$sendto = 'my@email.com';
$subject = 'Message de votre site';
$errormessage = 'Ah, vous avez oublié quelques informations. Réessayez ? ';
$thanks = "Merci pour votre message ! On vous répond aussi vite que possible. ";
$honeypot = "Vous êtes tombé dans le piège ! Si vous êtes humain.e, recommencez ! ";
$emptyname = 'Quel est votre nom ? ';
$emptyemail = 'Quelle est votre adresse mail ? ';
$emptymessage = 'Et votre message ? ';
$alertname = 'Utilisez uniquement un alphabet standard. ';
$alertemail = 'Entrez ce format de mail : <i>name@example.com</i>. ';
$alertmessage = "Vérifiez que vous n 'avez utilisé aucun caractère spécial. ";
$alert = '';
$pass = 0;
function clean_var($variable) {
$variable = strip_tags(stripslashes(trim(rtrim($variable))));
return $variable;
}
if ( empty($_REQUEST['last']) ) {
if ( empty($_REQUEST['name']) ) {
$pass = 1;
$alert .= "<li>" . $emptyname . "</li>";
$alert .= "<script>jQuery(\"#name\").addClass(\"error\");</script>";
} elseif ( preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] ) ) {
$pass = 1;
$alert .= "<li>" . $alertname . "</li>";
}
if ( empty($_REQUEST['email']) ) {
$pass = 1;
$alert .= "<li>" . $emptyemail . "</li>";
$alert .= "<script>jQuery(\"#email\").addClass(\"error\");</script>";
} elseif ( !preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $_REQUEST['email']) ) {
$pass = 1;
$alert .= "<li>" . $alertemail . "</li>";
}
if ( empty($_REQUEST['message']) ) {
$pass = 1;
$alert .= "<li>" . $emptymessage . "</li>";
$alert .= "<script>jQuery(\"#message\").addClass(\"error\");</script>";
} elseif ( preg_match( "/[][{}()*+?\\^$|]/", $_REQUEST['message'] ) ) {
$pass = 1;
$alert .= "<li>" . $alertmessage . "</li>";
}
if ( $pass==1 ) {
echo "<script>$(\".result\").toggle();$(\".result\").toggle().hide(\"fast\").show(\"fast\"); </script>";
echo "<script>$(\".result .alert\").addClass('alert-danger').removeClass('alert-success'); </script>";
echo $errormessage;
echo $alert;
} elseif (isset($_REQUEST['message'])) {
$message = "From: " . clean_var($_REQUEST['name']) . "\n";
$message .= "Email: " . clean_var($_REQUEST['email']) . "\n";
$message .= "Message: \n" . clean_var($_REQUEST['message']);
$header = 'From:'. clean_var($_REQUEST['email']);
mail($sendto, $subject, $message, $header);
echo "<script>$(\".result\").toggle();$(\".result\").toggle().hide(\"fast\").show(\"fast\");$('#contactForm')[0].reset();</script>";
echo "<script>$(\".result .alert\").addClass('alert-success').removeClass('alert-danger'); </script>";
echo $thanks;
echo "<script>jQuery(\"#name\").removeClass(\"error\");jQuery(\"#email\").removeClass(\"error\");jQuery(\"#message\").removeClass(\"error\");</script>";
echo "<script>$(\".result .alert\").delay(4000).hide(\"fast\");</script>";
die();
echo "<br/><br/>" . $message;
}
} else {
echo "<script>$(\".result\").toggle();$(\".result\").toggle().hide(\"fast\").show(\"fast\");</script>";
echo $honeypot;
}
?>
和 HTML:
<form class="form-inline flowuplabels" role="form" method="post" autocomplete="off" id="contactForm" action="js/sendmail.php">
<div class="form-group fl_wrap">
<label class="fl_label" for="name">Nom :</label>
<input type="text" name="name" value="" id="name" class="form-control fl_input" required>
</div>
<div class="form-group fl_wrap">
<label class="fl_label" for="email">Email :</label>
<input type="text" name="email" value="" id="email" class="form-control fl_input" required>
</div>
<span class="form-group fl_wrap honeypot">
<label class="fl_label" for="last">Honeypot:</label>
<input type="text" name="last" value="" id="last" class="form-control fl_input">
</span>
<div class="form-group fl_wrap">
<label class="fl_label" for="message">Message :</label>
<textarea type="text" name="message" value="" id="message" class="materialize-textarea" required></textarea>
</div>
<div class="form-group">
<button type="submit" value="Send" id="submit" class="btn btn-block">Envoyer</button>
</div>
<div id="form-alert" class="form-group">
<div class="result">
<div class="alert"></div>
</div>
</div>
</form>
正如一些人所问。HTML 在索引页上,sendmail.php
是一个独立的页面。这是成功/警报消息应该出现的地方:
解决方案
推荐阅读
- opencv - OpenCV 网格板姿态检测不正确
- apache-flink - 使用 Python 的 Apache Beam ReadFromKafka 在 Flink 中运行,但没有发布的消息通过
- css - CSS Grid > 如何让侧栏变得流畅?
- docker - 使用 nuget.config 恢复 Jenkins 包
- python - Python-pptx 与 LibreOffice 中的文本框的兼容性
- windows - Mac 和 PC 之间的通用文件夹名称和路径
- spring - Spring Boot 上的 Swagger:文档仅在 localhost 上可见
- c# - 将一个组件中的 API POST 请求的结果发送到另一个组件以供使用?
- ios - 通过代码更改表格字体大小时表格视图自动尺寸不适合
- sockets - Unix套接字的双向通信