如何根据随机URL字符串重定向用户?

时间:2015-04-22 06:04:25

标签: php string redirect random parameters

出于安全考虑,我只需要向用户显示一个页面,如果他们来自特定网站,而不是直接访问者。

我目前设置的方式,将生成一个随机的12个字符的字符串并附加到网址。例如:

http://www.example.com?skey=a72bzy321bgf

skey参数始终是随机的,但始终有12个字符。所以基本上,如果我的URL有一个带有12个随机字符的& key =参数,页面就会正确显示。如果没有,访客会去其他地方。

有关如何将此代码编入页面的任何帮助,或者Google应该如何找到必要的说明?我已经看了一遍,还没有找到如何继续这个,也不知道到底要找什么。所以任何帮助都将不胜感激。

谢谢!

4 个答案:

答案 0 :(得分:1)

您可以获取网址密钥,然后检查您的功能,因为它在启动网页时有效

$key = trim($_GET['key']);

if(!isValidKey($key)){
  //die('Invalid Key'); //or
  header("Location: wrongkey.html");
  exit;
}

答案 1 :(得分:1)

请求值skey并找到值的长度。如果长度不等于12,则使用die()来阻止用户查看页面。在目标页面中使用如下。( http://www.example.com/index.php?skey=a72bzy321bgf

<?php 
    if(!isset($_REQUEST['skey']) || strlen($_REQUEST['skey']) != 12){
        die("Soory,You came to this page in a Wrong Way.");
    }
?>
//Your Code will goes here.

答案 2 :(得分:1)

您需要检查是否$_GET['skey'] isset(),以及string length是否为12个字符。

if (isset ($_GET['skey']) && strlen($_GET['skey']) == 12) {
    // Get in
}
else {
    // Go away
}

这当然不是检查用户来自何处的正确方法,因为您的引用网址需要以某种方式将skey设置为网址的一部分。

您可以检查一下$_SERVER['HTTP_REFERER'] isset()吗?

答案 3 :(得分:1)

谢谢大家!

根据你的所有建议,我结合了一些事情,到目前为止,这对我来说非常合适:

<?php 
if(!isset($_REQUEST['skey']) || strlen($_REQUEST['skey']) != 12){
     header("Location: http://example.org/not-allowed.php");
     exit;
}
?>

谢谢!希望我能回复你的所有回复。希望这有助于其他人。