Page 1 of 4

alt_aut переменное число параметров

Posted: Tue May 05, 2015 6:24 pm
by hrulik
Хотелось бы немного изменить логику работы alt_out чтобы можно было передавать переменное число параметров. Имею ввиду следующее, если в alt_aut пишем: /ftt2/o.php?u={URL}&g={G}&s={S}
если выставить все три переменные, то все сработает как надо, но вот если не передать переменные
"s" и "g" то внешнему скрипту они передадутся все равно вот так: /ftt2/o.php?u="наш урл"&g={G}&s={S}
а надо чтобы было просто /ftt2/o.php?u="наш урл", т.е. надо чтобы не выставленые переменные не передавались.

Re: alt_aut переменное число параметров

Posted: Tue May 05, 2015 7:39 pm
by admin
Можно заменять на пустое значение если оно не указано, а совем убирать смысла думаю нет - будут пробелмы с возможным обрезание лишнего в урл плюс невозможность передать пустой параметр.

Этот вариант подходит?

Re: alt_aut переменное число параметров

Posted: Wed May 06, 2015 2:00 am
by hrulik
Не уверен что так сработает, надо попробовать, отпишусь позже

Re: alt_aut переменное число параметров

Posted: Wed May 06, 2015 3:13 am
by admin
ok

Re: alt_aut переменное число параметров

Posted: Wed May 06, 2015 6:28 am
by hrulik
нет не катит такое решение к сожалению, вот автор скрипта ответил:
>вопрос, если параметры передавать вот так /ftt2/o.php?u=[какойто урл]&s=&g=
>как скрипт на такое сработает? так же как на /ftt2/o.php?u=[какойто урл]?
>нет. Как /ftt2/o.php?u=[какойто урл]&s=0&g=
>группа будет empty(g это группа)

Re: alt_aut переменное число параметров

Posted: Wed May 06, 2015 2:04 pm
by admin
Так а пустая группа и отсуствие парамтера граппы это не одно и то же ?

Если нет тогда вариант как обычно

o.php переименовываем например в o_orig.php

и делаем o.php

<?
убираем из урла что не надо и в целом меняем урл как угодно
include('o_orig.php');

и будет работать в любыми заменами.

Re: alt_aut переменное число параметров

Posted: Thu May 07, 2015 7:36 am
by hrulik
это надо $_SERVER['QUERY_STRING'] редактировать, как это сделать? и вообще возможно ли?
мне кажется это проще при формировании альт_аут делать, нужно будет только соблюдать правило, переменная должна так же называтся, т.е. g={G}, url={URL}

Re: alt_aut переменное число параметров

Posted: Thu May 07, 2015 1:17 pm
by admin
Да, $_SERVER['QUERY_STRING']
как и любую дургую переменную просто присваиваете значение как надо.

Да, можно как угодно редактировать там, включая описанный вами алгоритм.

Re: alt_aut переменное число параметров

Posted: Sat May 09, 2015 3:33 am
by hrulik
вот накидал на досуге, удаляет из строки только переменные значеие которых равно имени в фигурных скобках, например: v={V}, регистронезависимо

Code: Select all

parse_str($querystring,$query);

foreach($query as $key => $val){

    if (strcasecmp('{'.$key.'}', $val) == 0)
        continue;

    if (isset($newquerystr)){
        $newquerystr .= "&".$key.'='.$val;
    }else{
        $newquerystr = $key.'='.$val;
    }
}
echo $querystring."\n";
echo $newquerystr."\n";
А с редактированием _SERVER["QUERY_STRING"] оказалось всё сложно, поэтому прошу вставьте код в апдейт

Re: alt_aut переменное число параметров

Posted: Sat May 09, 2015 5:27 am
by admin
Что именно сложно ?