发布和感谢消息后的PHP重定向
这是我的第一个问题,我希望不要做错 我在我的网站上使用了一个简单的表单,下面是mailer php代码:发布和感谢消息后的PHP重定向,php,forms,redirect,post,Php,Forms,Redirect,Post,这是我的第一个问题,我希望不要做错 我在我的网站上使用了一个简单的表单,下面是mailer php代码: <?php $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $from = 'xxxxx'; $to = 'xxxx@xxxx.com'; $subject = 'xxxxx'; $human = $_POST['h
<?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)如果可能,为我指出改进反垃圾邮件系统的正确方向
提前谢谢!!;) 您可以使用php头函数:
header('Refresh: 2; url=http://google.com');
2(刷新后:)是秒数,url是url。(也可以与您的域相关,如:“/success.php”)
关于你的反垃圾邮件系统:我不能说太多,因为我只看到你得到了POST值。(但不是它来自哪里或是什么)
但是google“Captchas”或Howtos可以帮助您了解如何制作它们。您确实可以使用SimonEritsch所述的php头重定向。但是,如果表单出现问题,请注意不要重定向,因为您很可能需要再次显示/重新呈现表单,以允许用户更正错误。只有在成功的时候才能改变方向 您还可以使用标题(“Location:myResponsePage.php”),它是即时的,而不是包含延迟 您可以使用多种方法来限制垃圾邮件/机器人程序处理表单。这些检查的范围从(正如SimonEritsch在下面提到的)到在表单的任意一侧执行您自己的附加检查。例如:
你可以用很多东西。仔细看一看,比如这篇文章“”,或者这两篇文章都是如此。在你的代码中,你可以使用一个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>';
$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解决方案,如,该解决方案要求用户单击I not a robot
框以继续:
谢谢cybermonkey,你能告诉我如何在我的代码中使用它吗?@Diego我不使用任何Recaptcha解决方案,因为我不运行任何网站(需要它),但实施过程有很好的文档记录。没关系,我会找到Recaptcha,我的意思是你给我的标题代码。@Diego不清楚你的谢谢你代码在哪里,因为它不是英文的,我翻译它有困难。是这句话:echo'sumensaje ha sido enviado correctante ",代码>?请查看我的编辑并给出反馈。是的,这是正确的一行。我试过了,但我的朋友认为它不起作用。