Re[3]: реклама на каждую страницу (.htaccess или?)
От: UserAd Россия http://userad.net.ru
Дата: 13.07.06 09:44
Оценка:
А>Пытаюсь передать GET-параметр в скрипт. Пишу в строке браузера:

А>http://myhost.com/newfolder/setup.php?go=forward


А>В index.php делаю echo var_dump($_GET);


А>Получаю только:


А>array(1) { ["url"]=> string(19) "newfolder/setup.php" }


А>Можно как-нибудь в тот же скрипт GET-параметр передать?

А>В любом виде, главное чтобы было.
А>А то решение очень простое и красивое, не хочется искать другое...

<?
function ParseUrl($query_string)
{
    global $_GET;
    
        // Разбиваем запрос на две части: сам запрос и параметры
        // Запрос без GET: /директория/поддиректория/.../файл/параметр1/значение1/.../параметрN/значениеN/
        // Запрос c GET:   /директория/поддиректория/.../файл?параметр1=значение1&...&параметрN=значениеN
        $query = explode('?', $query_string);

        // Обрабатываем запрос, разбивая его по слэшам
        $query_string = $query['0'];
        $uri_array = explode('/', $query['0']);

        // Разбираем запрос: выбираем сам файл и переданные в него параметры. Параметры сохранаяем в GET
        for ($i = 0, $count_uri_array = count($uri_array); $i < $count_uri_array; $i++)
        {
            if ($i == 0)
            {
                for ($directory = ''; is_dir($directory . $uri_array[$i]); $i++)
                {
                    $directory .= $uri_array[$i] . '/';
                }
                $file = $uri_array[$i] . '.php';
                $this->directory = $directory;
                $this->file = $file;
                $this->requestedfile = $directory . $file;
            }
            else
            {
                $key = $uri_array[$i];
                if(!array_key_exists($key, $_GET))
                {
                    $_GET[$key] = urldecode($uri_array[$i + 1]);
                }
                else
            //если пришло несколько одинаковых значений, превращаем в массив
                {
                    if(!is_array($_GET[$key]))
                    {
                        $_GET[$key] = array($_GET[$key]);
                    }
                    $_GET[$key][] = urldecode($uri_array[$i + 1]);
                }
                $this->parameters[$key] = $_GET[$key];
                $i++;
            }
        }

        // Разбираем параметры GET, пришедшие к нам как нормальные параметры, и обрабатываем их
        $request = $query['1'];

        $uri_array = explode('&', $request);

        for ($i = 0, $count_uri_array = count($uri_array); $i < $count_uri_array; $i++)
        {
            $uri_array[$i] = explode('=', $uri_array[$i]);
            $key = $uri_array[$i]['0'];
            if (!array_key_exists($key, $_GET))
            {
              $_GET[$key] = urldecode($uri_array[$i]['1']);
            }
            else
            //если пришло несколько одинаковых значений, превращаем в массив
            {
                if(!is_array($_GET[$key]))
                {
                    $_GET[$key] = array($_GET[$key]);
                }
                 $_GET[$key][] = urldecode($uri_array[$i]['1']);
            }
            $this->parameters[$key] = $_GET[$key];
        }
    }
?>


немного поправь под свои нужды ))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.