如果用户从特定功能重定向,我怎样才能确保用户访问我网站的页面?

时间:2010-09-22 07:25:14

标签: php javascript redirect

在我的页面中,我正在使用javascript函数

<script> 
function redirect(){ 
    window.location="hurray.php";
}
</script>

从下面一行调用该函数。

<input id="search_box" name="textbox" type="text" size="50" maxlength="100" onkeypress="redirect()" />

现在我想确保仅通过此操作访问页面'hurray.php'。如果我输入“hurray”页面的直接网址,我就无法访问此页面,而是将其重定向到此上一页。

4 个答案:

答案 0 :(得分:2)

你不能单独使用javascript,我不这么认为。

您需要在服务器上拦截它并相应地处理它。

您可能需要将令牌与重定向一起发送,然后您可以验证此令牌服务器端并允许重定向完成或执行其他操作(如果用户错误地发送到那里或通过键入URL直接。

为什么你想在你给出的例子中这样做?当然这会导致用户远离搜索表单到另一页?

答案 1 :(得分:2)

对PHP函数进行AJAX调用,该函数将在会话中设置变量。当AJAX调用返回响应时,将用户重定向到此页面并检查会话变量。如果您不希望用户再次访问此会话,则可以将其删除。

答案 2 :(得分:2)

扩展你的功能,使它通过“document.cookie”设置一个cookie,然后通过JS,PHP或目标页面上的任何内容进行检查(如果已设置cookie),如果没有则重定向到其他地方,非常简单。 当然不太安全!

答案 3 :(得分:0)

您的示例是否包含真实代码,或者您是否只包含了一些可以使问题更简单的问题?

这似乎很奇怪 - 为用户提供一个搜索框,然后,一旦他们开始输入,就会将他们重定向到另一个页面。

如果您正在进行搜索,并且您只希望从表单触发earch页面,而不是用户键入URL,则考虑将表单方法设置为“POST”并在搜索页面。如果方法是“GET”,则手动输入URL,您可以重定向回原始页面。

不可否认,这在技术上违反了使用“POST”的建议,这些建议仅适用于更改信息的操作,而不是在查询信息时应使用的“GET”。但是,这可能是一个可以原谅的场合。

您可以使用的另一种方法是生成某种类型的唯一键,并将其存储在表单的隐藏字段中,在决定是否重定向到原始页面之前对其进行检查。这需要某种可靠的密钥生成方案,使其稍微复杂一些,但并非不可能。