【问题标题】:Redirect to home page after submitting contact form and saying thank you提交联系表格并说谢谢后重定向到主页
【发布时间】:2013-10-25 03:32:14
【问题描述】:

我正在尝试让我的网站在提交联系表单后重定向到主页,然后转到感谢页面。我让它工作得很好,除了在感谢页面之后重定向之外,如果我删除感谢页面,它就可以工作。我知道我需要在该行后面加上一个 of 语句,然后是 header(www.google.com) 类型的东西,但不确定 if 语句应该放什么。

我将我的联系表格文件上传到下面的 Dropbox 链接中,如果有人能让我走上正轨,那就太好了。提前致谢。

https://www.dropbox.com/sh/2zrci8b04989u3d/gEc3u6rPK4

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
      <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
      <title>Thank you!</title>
      <link rel="STYLESHEET" type="text/css" href="contact.css">
</head>
<body>

<script>
window.onload=function() {
  setTimeout(function() {
    location.replace("index.php");
  },3000); // wait 3 seconds
}
</script>
<h2>Thank you...</h2>
<a href="index.php">click here if you are not redirected in a few seconds</a>

</body>
</html>

【问题讨论】:

标签: php html


【解决方案1】:

因为我在手机上,所以不看页面,把这个放在感谢页面

<script>
window.onload=function() {
  setTimeout(function() {
    location.replace("somepage.php");
  },3000); // wait 3 seconds
}
</script>
<h2>Thank you...</h2>
<a href="somepage.php">click here if you are not redirected in a few seconds</a>

【讨论】:

  • 我会将它添加到哪个文件中? Contactform.php,谢谢-form.php,?
  • @Terrythank-you-form.php。但只有在浏览器启用了 javascript 的情况下,javascript 才有效。相当多的公司在他们的网络计算机上禁用了 javascript 的使用。我还会在文件中添加一个 html 重定向(即使这可能不适用于所有浏览器)
  • @webcoder,我还没有遇到一家这样做的公司。现代浏览器相当安全,我的公司有实时病毒检查和站点阻止功能,但不会梦想禁用 javascript。我更新了答案以显示一条消息,仅供您使用
  • 好的,我明天就去睡觉了。所以只需将其添加到。 HTML的正文部分?很酷,谢谢,我一定会试试的,让你知道结果如何
  • 好的,所以我试了一下,我用你列出的代码用感谢表更新了 OP,但由于某种原因,它只是将我引导到一个 contact.php 页面,但只有我的 shell显示,没有联系表格,所以我将位置更改为 index.php 并且没有运气,仍然加载相同的 contact.php shell 页面。
【解决方案2】:

尝试这样的事情,以防用户确实禁用了 javascript:

<?php

header( "Refresh: 5 url=http://yourdomain.com/" );

?>
<!DOCTYPE html>
<html>

<!-- HTML CODE GOES HERE -->

</html>

header() 函数中的数字 5 是页面重定向用户 url 之前的秒数。 header 函数必须出现在任何 html 和/或 php 输出之前

【讨论】:

  • 我试过了,但它不会重定向到正确的页面。如果你去 darthvixcustomsabers.com 并去联系,提交表单,它会提交,说谢谢,然后重新加载一个页面“感觉不对”,不知道为什么,我将它设置为重定向到 google.com 只是为了测试它
  • 好的,现在我只想延迟java脚本执行几秒钟,所以谢谢你能出现。
【解决方案3】:

您可以通过 3 种方式做到这一点。

1 - Html 重定向:

<!doctype html>
<head>
<META http-equiv="refresh" content="0;URL=http://www.example.com">
</head><body></body></html>

2 - PHP 标头重定向:

<?php
header('Location: http://www.example.com');
?>
<!doctype html><html><head></head><body></body></html>

3 - Javascript 重定向:

<!doctype html><html><head>
<script>
window.location.assign("http://www.example.com");
</script>
</head><body></body></html>

【讨论】:

  • 分配是怎么回事?而且 HTML 重定向会破坏后退按钮,导致无法阅读页面上的消息
  • @mplungjan - 与分配无关。分配是在不中断返回按钮的情况下重定向应该如何工作。有关assign 的更多信息。 HTML 重定向不会破坏后退按钮。您可以通过双击返回来测试它。而且由于整个页面没有消息,所以我提供了空白的html;没有任何评论或不必要的代码。如果您希望能够阅读消息,请将超时设置为您喜欢的秒数。根据content 属性值,它是0
  • 我是这个意思。从未使用过分配:stackoverflow.com/questions/10302905/… - 但是 0 秒的刷新会破坏后退按钮,并且不允许访问者阅读感谢消息
  • @mplungjan - 以 0 秒刷新不允许用户阅读消息 - 是的;打破后向功能 - 错误。当您按一次后退按钮时,您将返回到上一个 URL 并立即被向前推。浏览器历史记录保持不变。按返回两次,您将转到您在 refresh 所在页面之前看到的页面。 location.replacebreaks back functionality as it completely replaces the reference of the page you visited last
  • 当我说 break 时,它会破坏 BACK 按钮,除非您单击 REALLY QUICK 或下拉列表。在某些情况下,替换可能是更好的选择,但至少要让刷新几秒钟
猜你喜欢
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 2012-11-11
  • 2015-02-11
  • 2013-02-09
  • 1970-01-01
相关资源
最近更新 更多