这是我的第一个问题,我希望不要做错。
我在我的网站上使用一个简单的表格,这是邮件程序的PHP代码:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'xxxxx';
$to = 'xxxx@xxxx.com';
$subject = 'xxxxx';
$human = $_POST['human'];
$body = "De: $name\n E-Mail: $email\n Mensaje:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Su mensaje ha sido enviado correctamente!</p>';
} else {
echo '<p>Ocurrió un error, porfavor vuelva e intentlo de nuevo!</p>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<p>Su respuesta anti-spam es incorrecta!</p>';
}
} else {
echo '<p>Por favor, rellene todos los campos obligatorios!!</p>';
}
}
?>
1)我想在谢谢你的消息之后重定向到索引!!我找不到这样做的方法。
2)如果可行的话,请指出正确的方向来改进反垃圾邮件系统。
提前致谢!! ;)
答案 0 :(得分:0)
您确实可以使用SimonEritsch所述的php标头重定向。但是,如果表单有问题,请注意不要重定向,因为您很可能需要再次显示/重新呈现表单以允许用户更正错误。只有在成功时才会重定向。
你也可以立即使用标题(&#34;位置:myResponsePage.php&#34;),而不是加入延迟。
您可以采用多种方法来限制垃圾邮件/机器人处理表单。这些范围从captures such as that from Google(再次由SimonEritsch提到)到在表单的任一侧执行您自己的附加检查。例如:
你可以使用很多东西。好好看看这篇文章&#34; Stop spam without Captcha&#34;或Practical non-image based CAPTCHA approaches这两个都在SO。
答案 1 :(得分:0)
在您的代码中,您可以使用PHP header
来使页面重定向,但是您可能想要合并延迟以便用户看到谢谢你&#39;消息。
例如,您可以使用:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'xxxxx';
$to = 'xxxx@xxxx.com';
$subject = 'xxxxx';
$human = $_POST['human'];
$body = "De: $name\n E-Mail: $email\n Mensaje:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Su mensaje ha sido enviado correctamente!</p>';
$redirSec = 3;
$redirPage = "http://example.com/secretarea";
header("Refresh: ". $redirSec ."; url=". $redirPage);
} else {
echo '<p>Ocurrió un error, porfavor vuelva e intentlo de nuevo!</p>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<p>Su respuesta anti-spam es incorrecta!</p>';
}
} else {
echo '<p>Por favor, rellene todos los campos obligatorios!!</p>';
}
}
?>
至于您的反垃圾邮件人工验证,您应该尝试使用Recaptcha解决方案,例如one offered by Google,要求用户点击I'm not a robot
框以继续:
答案 2 :(得分:-1)
您可以使用php标头功能:
header('Refresh: 2; url=http://google.com');
2(刷新后:)是第二个url和url。 (也可以是相对于您的域名:“/success.php”)
关于你的反垃圾邮件系统:我不能说太多,因为我只看到你得到了POST值。 (但不是它来自何处或它是什么) 但谷歌“Captchas”或Howtos可以了解如何制作它们。