基于url变量的php重定向

时间:2010-10-31 17:15:52

标签: php

我想根据网址变量创建网址重定向。

所以,如果学生%20gender(学生性别)是男性,那么请访问www.one.com,如果是女性,请访问www.two.com。

还没想出来。有什么帮助吗?

3 个答案:

答案 0 :(得分:3)

问题可以使用一些更好的解释。你是说有人会去 http://www.yoursite.com/yourscript.php?student%20gender=male并且您希望将它们重定向到http://www.one.com

如果是这种情况,PHP有一个内置变量$_GET,它存储URL中?之后列出的值。所以在上面的例子中,我们看到:

$_GET['student gender'] = male;

您可以使用它来访问由&

分隔的任意数量的参数

因此,网址http://www.site.com/index.php?val1=a&val2=b&val3=c会给我们:

$_GET['val1'] = a;
$_GET['val2'] = b;
$_GET['val3'] = c;

在此之后,要在PHP中进行重定向,最简单的方法是发送Location:标头。这样做是这样的:

<?php
header("Location: www.newsite.com");
?>

将此与我们的$_GET变量和一些简单的逻辑相结合:

<?php
    if($_GET['student gender'] == 'male'){
        header("Location: www.one.com");
        die();
    } else {
        header("Location: www.two.com");
        die();
    }
?>

答案 1 :(得分:2)

$var = $_GET['yourvar'];

if($var == 'one'){
    header("Location: http://www.one.com/");
}else if ($var == 'two'){
    header("Location: http://www.two.com/");
}

然后执行http://www.yoururl.com?yourvar=one

答案 2 :(得分:1)

您还必须确保在此处查看安全方面,您完成此任务的最佳方式是

$gender = isset($_REQUEST['gender']) ? $_REQUEST['gender'] : false;

switch($gender)
{
    default: //The default action
        //Send back to the gender select form
    break;

    case 'male':
        //Send to male site!
    break;

    case 'female':
        //Send to female site!
    break;
}

这应该足够了,但请不要在没有卫生条件的情况下执行shell或数据库查询的函数中使用$_X['?']

注意:_X正在(GET,POST,REQUEST,FILES)