Page 2 of 4

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

Posted: Sat May 09, 2015 5:48 am
by hrulik
там целый зоопарк переменных надо менять:
$_REQUEST["var"] - на каждую переменную $_GET["var"] на каждую переменную,
$_SERVER["REQUEST_URI"]
хрен зна какие конкретно используются в скрипте, _SERVER["QUERY_STRING"] изменить явно не достаточно....
в общем гемор еще тот, проще строку обработать перед этим всем безобразием

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

Posted: Sat May 09, 2015 12:56 pm
by admin
Можете сделать проще
Например к вам в скрипт приходит

/ftt2/o.php?u=[какойто урл]&s={S}

где o.php это уже ваш скрипт, а реальный скрипт условно o_orig.php

обрабатываете строку как надо и делаете

location: /ftt2/o_orig.php?u=[какойто урл]

и не надо менять переменные REQUEST GET и прочее.
Хотя как мне кажется и переменные то в цикле без пробелм поменять.

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

Posted: Sat May 09, 2015 12:59 pm
by hrulik
Еще один редирект не вариант. Не пойму какая проблема строку обработать? Какаой смысл костыли городить если можно всё совсем просто сделать.

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

Posted: Sun May 10, 2015 1:47 am
by admin
Варианта 2
либо мы городим костыли в скрипте с вырезанием параметров и получаем неожиданное поведение скрипта для других мастеров (может мне надо реально в моем случае пеердать пустой параметр)
либо мы городим тоже самое в промежуточном скрипте

логично что такое неожиданное поведение нельзя встраивать в скрипт ибо для кого-то это может быть большой сюрприз.

при этом любой человек минимально разбирающийся в пхп может это сделать в промежуточном скрипте.

Мне кажется тут вариант очевиден.

Если вы не знаете как напистаь промежуточный то без проблем мы можем дописать за 2 часа работы.

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

Posted: Sun May 10, 2015 2:02 am
by hrulik
Костыль то я написать с состоянии, просто хотелось бы в скрипте нормальною логику работы. Мне кажется я предложил правильный алгоритм работы для пременого количества параметров. Не думаю что сейчас возможны какие то непредсказуемые ситуации в поведении скрипта. Если кто и пользует alt_out то передают один параметр URL. Давай те обсудим?

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

Posted: Sun May 10, 2015 2:39 am
by hrulik
Можно перменные которые по логике могут быть вырезаны договорить называть определенным образом, например &v={x_VAR}, т.е. если у значения переменной есть приставка x_ то переменная может быть выпилена

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

Posted: Sun May 10, 2015 1:55 pm
by admin
Так это ненормальная логика работы как раз.
Представьте что вы передаете переменную и скрипт ее неожиданно убирает вообще
Если вы можете дописать 3 строки для обработки массивов GET and REQUEST в чем смысл пихать это неожиданное поведение в скрипт ?

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

Posted: Sun May 10, 2015 2:40 pm
by hrulik
Не передергивайте, речь идёт тоько об неустановленых переменных. Сейчас вообще на них куча мусора пыпадает в виде v={V}. не думаю что это кому то полезно. Костыль я написал. Но хотелось бы не костыль а нормальное решение. Моя логика не нравится предложите лучше

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

Posted: Mon May 11, 2015 1:59 am
by admin
Нормальное решение будет удалить макросы типа {несуществующая переменная}

Идет речь о версии 51 ?

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

Posted: Mon May 11, 2015 2:30 am
by hrulik
admin wrote:Нормальное решение будет удалить макросы типа {несуществующая переменная}
В смысле из запроса будет вырезаться то что в фигурных скобках? т.е. было в запросе &var={VAR} станет &var= ? Не думаю что это хорошая идея, {VAR} это как бы маркер что значение переменной var не установлено. если его убрать будет не понятно толи переменная была не была установлена, толи значение её задумывалось как "". И костылек мой перестанет работать... вот он если кому интересно:

Code: Select all

<?php

$querystring = $_SERVER["QUERY_STRING"];

parse_str($querystring,$query);

foreach($query as $key => $val){
    if (strcasecmp('{'.$key.'}', $val) == 0) {
        unset($_GET[$key]);
        unset($_REQUEST[$key]);
        continue;
    }
    if (isset($newquerystr)){
        $newquerystr .= "&".$key.'='.$val;
    }else{
        $newquerystr = $key.'='.$val;
    }
}
//echo $querystring."<br>";
//echo $newquerystr."<br>";
$_SERVER["QUERY_STRING"] = $newquerystr;
$_SERVER["REQUEST_URI"] = $_SERVER["DOCUMENT_URI"]."?".$newquerystr;
//phpinfo();
include("/[путь до]/ftt2/o.php");
Хотелось бы все таки иметь возможность передавать разное кол-во переменных, а не просто ставить их значение в null если такой переменной нет в запросе