PHP _REQUEST重定向?

时间:2010-08-18 22:44:50

标签: php request

我正在阅读一个剧本,但我仍然坚持理解这个:

$redirect = base64_decode($_REQUEST['redirect']);
header("Location:$redirect");exit;

因为REQUEST中的重定向变量未在脚本中的任何位置定义。在此之前已经填写了一个POST表单,但是在脚本的任何地方都没有提到重定向变量,所以我很困惑它是如何不是空的......

编辑:

这是下面的表单代码。顺便说一下,“重定向”这个词并没有出现在剧本的任何地方,这让我感到困惑。

        <form name="login" action="{$baseurl}/login" method="post">
            {$lang12}
            <input type="text" name="username" />
            {$lang11}
            <input type="password" name="password" />
            <input type="submit" value="{$lang18}" />
            <div class="test"><a href="{$baseurl}/signup"><b>{$lang30}</b></a> - <a href="{$baseurl}/password">{$lang19}</a></div>
            <input type="hidden" name="authenticate" value="1" />
        </form>
        </div>

$ lang的东西通常是从数组中出现的单词,例如login等。

4 个答案:

答案 0 :(得分:1)

  

$ _ REQUEST

     

默认情况下的关联数组   包含$_GET$_POST的内容   和$_COOKIE

因此,如果您有$_POST['redirect']$_GET['redirect']$_COOKIE['redirect'],则会定义$_REQUEST['redirect']。试着把:

var_dump($_POST['redirect']);
var_dump($_GET['redirect']);
var_dump($_COOKIE['redirect']);

了解它的来源。

答案 1 :(得分:1)

如果没有看到实际的代码,我认为这是不可能的,但$_REQUEST包含$_GET$_POST$_COOKIE中的所有变量。< / p>

如果某个表单的方法设置为“post”且其操作是带有url编码变量的url,则该表单实际上可以填充$_GET$_POST。因此,表单可能会将其所有数据发布到URL,然后将get变量添加到该URL的末尾。例如:

<form method='post' action='example.php?var=test'>
    <input name='var2' id='var2' />
</form>

如果提交了该表格,将定义以下内容:$_POST['var2'], $_GET['var'], $_REQUEST['var2'], $_REQUEST['var']

$_COOKIE也可以将隐藏变量放在$ _REQUEST中。

答案 2 :(得分:0)

重定向变量很可能是一个cookie。如果你在表格中找不到它。

var_dump($_REGISTER);

将列出与POST,GET和COOKIES关联的所有输入变量。

答案 3 :(得分:0)

如果它不是空的,它的内容是什么?

我认为它应该是这样的......

$redirect = base64_decode($_GET['redirect']);
if(!empty($redirect){
header("Location: $redirect");
exit;
}

它不在脚本中并不重要,你可以通过GET设置它, 例如/yourform.php?redirect=index.php

是否导致不必要的重定向?