parser


 

 
   команды управления поиском

Кодировки. Проблема нумер 2. Редирект.

Petr_04 01.10.2010 18:53 / 01.10.2010 19:19

Всем доброго ...
Для входа на сайт использую отличнейший класс auth от Misha v.3 (огромное ему спасибо) :)
Вход осуществляется на отдельной странице (дизайн не позволяет разместить вместе с другими элементами).
Чтобы вход можно было осуществить с любой страницы и вернуться назад родил 2 варианта:
1. Вариант
Добавил в форму $env:HTTP_REFERER
        
@htmlFormLogon[hParam]
$hParam[^hash::create[$hParam]]
^untaint[html]{
<input type="hidden" name="return_url" value="$hParam.return_url" />
...
После логина делаю:
$response:refresh[ 
   $.value(5) 
   $.url[^taint[as-is][$form:return_url]] 
] 
FF и Хром нормально воспринимают адреса с кирилицей и возвращают назад, но вот Ослик выдаёт либо квадратики, либо крякозябры (как при просмотре UTF строк в 1251) либо вообще непонятно что.
Танцы с taint/untaint результатов не дают :(

2. Вариант
Вводим переменную, которой присваиваем путь при обращении к любым страницам, кроме логин/логаута. Всё вроде бы хорошо, пока не заходим на страницу логина.
Переменная почему-то обнуляется :( Присвоение стоит только в одном месте.
^if($env:REQUEST_METHOD eq GET){
$comands[$form:req]
	$comands[^comands.split[^#20;lh]]^switch[$comands.1]{ 
		^case[/login]{^body_login[]}
		^case[DEFAULT]{$ref_comands1[$comands.1] ^body_first[] }
			           }
	      				      }{
$response:refresh[ 
   $.value(5) 
   $.url[$ref_comands1] 
]}
Как видно из кода, присвоение идёт всего в одном месте и при переходе на страницу /login не должна изменяться $ref_comands, но она почему-то обнуляется :(

Подскажите неразумному, что делаю не так и куда двигаться дальше :)

Заранее благодарю!

3. Вариант
Сейчас посмотрю, как там модальными окнами делают вход. Вроде бы адрес при этом остаётся темже и тогда рефреш с пустой строкой обновит ту же страницу.

Но вот проблемы с Вариантом 2 что-то не дают покоя :)

З.Ы.: refresh и location ведут себя одинаково, т.е. проблема и там и там.