PHP _REQUEST редирект? - PullRequest
       4

PHP _REQUEST редирект?

2 голосов
/ 19 августа 2010

Я читаю скрипт, но застрял при понимании этого:

$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 ]

1 голос
/ 19 августа 2010

Не думаю, что на этот вопрос можно ответить наверняка, не увидев фактический код, но $ _ REQUEST содержит все переменные в $_GET, $_POST и $_COOKIE.

Форма может заполнять как $_GET, так и $_POST, если для ее метода установлено значение 'post', а ее действие - это URL-адрес с закодированными в URL переменными.Таким образом, форма может отправлять все свои данные в 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.

1 голос
/ 19 августа 2010

$ _ REQUEST

Ассоциативный массив, который по умолчанию содержит содержимое $_GET, $_POST и $_COOKIE.

Так что если у вас есть $_POST['redirect'], $_GET['redirect'] или $_COOKIE['redirect'], будет определено $_REQUEST['redirect'] Попробуйте поставить:

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

Чтобы выяснить, откуда оно.

0 голосов
/ 19 августа 2010

Если это не пусто, что это за содержание?

Я думаю, что это должно быть примерно так ...

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

Неважно, что это не в сценарии, вы можете установить его с помощью GET, например /yourform.php?redirect=index.php

Это вызывает нежелательное перенаправление?

0 голосов
/ 19 августа 2010

есть такая большая вероятность, что переменная перенаправления является куки. если вы не можете найти его в форме.

var_dump($_REGISTER);

, в котором будут перечислены все ваши входные переменные, связанные с POST, GET и COOKIES.

...