Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: ПОМОГИТЕ ПЛИЗЗ!!!
Форумы портала PHP.SU » Разное » Корзина » ПОМОГИТЕ ПЛИЗЗ!!!

Страниц (1): [1]
 

1. casper2010 - 16 Марта, 2010 - 13:35:30 - перейти к сообщению
Народ помогите плизз

вообщем вот такая проблема

ссылка ввиде
domain.ru/script.php?a=1&a=2

но вот если она будет вот такой
domain.ru/script.php?a=1&a=2

то переменная a=2 неработает


сам скрипт

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.     $a=$_REQUEST['a'];
  5.     if ($a=="1")
  6.     {?>
  7.  
  8. 11111
  9.  
  10. <?PHP
  11.     }    elseif ($a=="2")
  12.     {?>
  13.  
  14. 22222
  15.  
  16. <?PHP
  17. }else{
  18. ?>
  19.  
  20. невыбрано a=
  21.  
  22. <?PHP } ?>
  23.  
  24.  
2. JustUserR - 16 Марта, 2010 - 13:38:02 - перейти к сообщению
casper2010 пишет:
но вот если она будет вот такой
domain.ru/script.php?a=1&amp;a=2
то переменная a=2 неработает
Конечно не сработает ведь данная строка запроса подлежит html-раскодированию - как вариат можете считать ENV{QUERY_STRING} после чего сделать последовательно html_entity_decode и потом уже регулярными выражениями разбирать ее на переменные (Как в свое время делали на Perl Улыбка и для полученных имен переменных и их значений делать urldecode
3. casper2010 - 16 Марта, 2010 - 13:40:32 - перейти к сообщению
я вообще в пхп мало что понимаю

в скрипте самом нельзя не как сделать так чтоб он работал ?
4. Champion - 16 Марта, 2010 - 13:40:42 - перейти к сообщению
Потому что там должен быть именно амперсанд, а не его сущность.
5. JustUserR - 16 Марта, 2010 - 13:42:56 - перейти к сообщению
casper2010 пишет:
В скрипте самом нельзя не как сделать так чтоб он работал ?
Делайте по алгоритму указанному выше только именно в указанном порядке - потому что если скажем сначала сделать urldoecode то потом не отличите переменные от их значений если они содержали знак = или & Улыбка
6. casper2010 - 16 Марта, 2010 - 14:00:58 - перейти к сообщению
JustUserR пишет:
Делайте по алгоритму указанному выше только именно в указанном порядке - потому что если скажем сначала сделать urldoecode то потом не отличите переменные от их значений если они содержали знак = или &


я вообще в пхп ничего не понимаю! помогите
7. JustUserR - 16 Марта, 2010 - 17:12:18 - перейти к сообщению
casper2010 пишет:
Я вообще в пхп ничего не понимаю! Помогите
Можете сделать примерно так
PHP:
скопировать код в буфер обмена
  1. $qs_uh=getenv("QUERY_STRING");
  2. $qs_uh=html_entity_decode($qs_uhuu);
  3. $enc_vrs=explode("&",$qs_uh);
  4. for($i=0;$i<count($enc_vrs);$i++)
  5. {list($vr,$vn)=explode("=",$en_vrs[$i]);
  6. $vr=urldeocde($vr);
  7. $vn=urldeocde($vn);
  8. $_REQUEST["$vr"]="$vn";
  9. }
Таким образом в хеш-массиве $_REQUEST вы получите нужные вам значения

 

Powered by ExBB FM 1.0 RC1