表单提交时的预期URL重定向

时间:2011-08-19 15:20:09

标签: php javascript jquery wordpress redirect

我正在使用一个带有插件“SplashScreen”的静态挤压页面的WordPress网站。

用户可以从两个选项中进行选择:

A。)在表单中输入他们的电子邮件地址以进入该站点。

B。)点击字段下方的链接,允许他们绕过发送电子邮件。

目前,用户在收到电子邮件时会被带到感谢页面,然后他们可以点击链接进入主页。或者,如果他们点击旁路链接,他们会直接进入主页。但是,如果他们直接来到网站,这只会很好。如果他们从直接链接到特定帖子或页面进入网站,他们将不会被带回他们原本打算查看的页面。

我要做的是在填写表格或点击旁路链接时将它们直接带到目标页面。我到处寻找这个,我能找到的是有关如何在登录后将用户重定向回目标页面的信息。我知道如何做到这一点,这有点复杂。

挤压页面是一个简单的静态HTML页面,它使用Javascript设置cookie,因此页面只出现一次:

function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
 }

function setsplash() {
var exp = new Date();
var expDays = 365;
exp.setTime(exp.getTime() + (expDays * 24 * 60 * 60 * 1000));
setCookie("splash", "1", exp, "/");
}

<input class="sub-btn-join" type="submit" value="" onclick="setsplash()">

我愿意使用任何作品,但Javascript或jQuery是理想的。希望你们其中一个可以帮助我解决这个问题。我浪费了很多时间。

2 个答案:

答案 0 :(得分:1)

您可以分三步完成:

  1. 将用户的URL请求临时存储在同一个cookie中。您可以使用PHP http://$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];或JavaScript(document.URL)获取请求的网址。
  2. 像你已经使用“泼溅”cookie一样处理启动检查。
  3. 如果最初尝试的URL不是home / splash页面,请再次使用PHP重定向到它。

    <?php
        header( 'Location: http://www.example.com/the_page_we_first_wanted.html' ) ;
    ?>
    

答案 1 :(得分:0)

虽然我没有在您的问题中看到代码,这会将用户重定向到某个地方,但可以通过发送带有新位置的重定向标头将其重定向到正确的页面。可以从$ _SERVER ['HTTP_HOST']和$ _SERVER ['REQUEST_URI']中读取原始位置。这些应该放在重定向的链接/目标页面上,这可能意味着你必须编辑SplashScreen-Plugin来发送它:

header('Location: '.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);

请记住,当某些其他内容已经发送时,不会发送标题。