Cookie要记住和重定向

时间:2011-12-22 16:50:40

标签: php javascript jquery css

这可能是一个复杂的问题,但我需要做的是真实的类似于你去制造商网站时看到的国家选择页面 - 那些问你来自哪里然后选择你的网站发送到相应的网站,比如美国版或西班牙文版。我已经看到这些用弹出窗口或影子盒完成,这是首选。所以......

  1. 当你去我们的主页时,弹出一个(或者更好的是,一个影子盒)两秒后出现
  2. 向用户提供图形和/或文本链接以转到站点A或站点B
  3. 用户为他们选择正确的网站并发送给他们
  4. Cookie留给用户 答:只要饼干在那里,他们就再也看不到选择框了。 B.当他们点击页面时,他们总是被重定向到正确的选择。
  5. 在我的研究中看起来你可以做一个而不是两个。你觉得怎么样?

1 个答案:

答案 0 :(得分:0)

大致需要执行每一步

function redirectPopup(){
 /*Do your popup stuff*/
}

document.onload = function(){

    /*set timer to call your popup renderer*/
    setTimeout(redirectPopup,2000)
}

上面你有几个弹出选项,我建议使用以下其中一个

- 从站点访问的响应文本中包含弹出窗口,其可见性设置为隐藏。然后让你的redirectPopup函数更改样式属性以显示弹出窗口 - 禁用其他所有内容。 -Have redirectPopup函数生成整个弹出窗口。

对于cookie,您可以使用setcookie函数http://php.net/manual/en/function.setcookie.php,该函数可用于在现场访问时自动重定向用户。例如:

/*Server request with $_GET redirectTo property*/
if(isset($_GET['redirectTo']))
    setcookie('redirectTo', $_GET['redirectTo'], time() + 86400 * 14);

/*Check if the redirectTo cookie exists, redirect if true*/
if(isset($_COOKIE['redirectTo']))
    header("location:". $_COOKIE['redirectTo']);

/*Do your initial, no redirect stuff here*/
....

在上面的示例中,当用户访问该站点时,服务器首先检查他们是否已选择重定向选项;假设当用户选择重定向选项时,目标URL与包含GET参数'redirectTo'的站点相同。如果找到此参数的值,则假定用户必须访问过该站点才能查看重定向选项并设置其重定向cookie。

第二部分检查cookie是否已设置并重定向用户(如果已设置)。在这个例子中,我只是将cookie值传递给头部函数,实际上以稍微复杂的方式处理它会更实际。

setcookie方法不需要传递有限的时间段,因此您无法设置永久cookie,但您可以设置一个荒谬的保留期。最后,只有用户可以从他们当时使用的机器和浏览器访问cookie,如果没有某种形式的用户登录,就无法实现不加区别的时间和地点的重定向。

Kevin B对用户并不总是启用Cookie表示赞赏。考虑到这一点,可以将php代码的第一行部分编辑为以下内容以处理此类情况。

/*Server request with $_GET redirectTo property*/
if(isset($_GET['redirectTo']))

    /*Where setting a cookie fails*/
    if(! setcookie('redirectTo', $_GET['redirectTo'], time() + 86400 * 14))
        header("location:" $_GET['redirectTo']);

与之前一样,重定向可能会受益于更多参与,但使用此方法将在cookie不可用时强制重定向。