За последние 24 часа нас посетили 17529 программистов и 1313 роботов. Сейчас ищут 1175 программистов ...

кодировка символов в url

Тема в разделе "Регулярные выражения", создана пользователем rustoke, 13 июн 2015.

  1. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    предположу, что это связано с проблемой кодировки :)
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  4. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    Код (PHP):
    1. function url_cat(){ 
    2. $url = substr($_SERVER['REQUEST_URI'], strlen('/index.php?')); 
    3. return rawurldecode($url."&cat");
    4. } 
    5.  
    в урл все равно %3D
    может это зависит от того, что эту функцию формирую через отправку формы <form method="get" ?

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    напиши простой пример, где можно посмотреть, что ты делаешь и как
     
  6. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    Код (PHP):
    1. <?
    2. function url_cat(){ 
    3. $url = substr($_SERVER['REQUEST_URI'], strlen('/index.php?')); 
    4. return rawurldecode($url."&cat");
    5. } 
    6. ?>
    7. <form method="get">
    8. <select name="<? url_cat(); ?>">
    9. <option value='1'>1</option>
    10. </select>
    11. </form>
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Пиши код внутри тегов code=php
    В какой момент тебя не устраивает %3D:
    Ссылка в браузере до отправки формы
    Ссылка в HTML
    Ссылка после отправки формы
    и т.д.

    и ты перепутал похоже action для тега form, вписал путь в name для тега select.
    https://php.net/manual/ru/tutorial.forms.php
     
  8. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    action подошел бы для post запроса, а у меня get , мне нужно построить ссылку вида : http://domain/index.php?param=all&cat=5 , чтобы при выборе options 1 параметр в ссылке менялся на &cat=1 , &cat=6 и тд. Если функцию прописать в action, ничего не происходит
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А всё потому что ты можешь прочитать книгу по "PHP и HTML для начинающих" и понять в чём у тебя ошибка в алгоритме.
    http://htmlbook.ru/html/select

    Код (PHP):
    1. <select name="cat">
    2.   <option value="1">Пункт 1</option>
    3.   <option value="6">Пункт 6</option>
    4. </select> 
     
  10. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    у меня в коде стоит <option value="6">Пункт 6</option> , но при чем здесь это? я же спрашивал, как декодировать ссылку ????

    вернемся на самое начало

    Код (PHP):
    1. <?
    2. function url_cat(){ 
    3. $url = substr($_SERVER['REQUEST_URI'], strlen('/index.php?')); 
    4. return rawurldecode($url."&cat");
    5. } 
    6. ?>
    7. <form method="get">
    8. <select name="<? url_cat(); ?>">
    9. <option value='1'>1</option>
    10. <option value='2'>2</option>
    11. <option value='3'>3</option>
    12. <option value='4'>4</option>
    13. <option value='5'>5</option>
    14. <option value='6'>6</option>
    15. </select>
    16. </form>
    с помощью приведенного кода получаем ссылку - http://domain/index.php?param%3Dall%26cat=5

    Вопрос : как убрать %3D ? и получить знак = ? Как получить ссылку http://domain/index.php?param=all&cat=5 ???

    rawurldecode - помогает до GET , а после нет.

    В книге "для новичков", про декодирование ни слова не сказано

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    select name= <- что у тебя тут в результате?

    Код (PHP):
    1. $url_array = parse_url('http://example.com/index.php?param%3Dall%26cat=5');
    2. $url_array['query'] = rawurldecode($url_array['query']);
    3. echo $url_array['scheme'].'://'.$url_array['host'].$url_array['path'].'?'.$url_array['query']; 
     
  12. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Код (PHP):
    1. $url = substr($_SERVER['REQUEST_URI'], strlen('/index.php?')); 
    что это? страшно то как стало. Мегахреновая строчка. Что она вообще должна вернуть? Если $_SERVER['REQUEST_URI'] меньше 11 символов, то она не вернёт ничего вообще. А в вашем примере это именно так. Дальше, вам надо отправить ваш параметр cat.
    что за ересь, мил человек?
    Код (PHP):
    1. <form method="get" action="2.php">
    2. <select name="cat">
    3. <option value='1'>1</option>
    4. <option value='2'>2</option>
    5. <option value='3'>3</option>
    6. <option value='4'>4</option>
    7. <option value='5'>5</option>
    8. <option value='6'>6</option>
    9. </select>
    10. <input type="submit"/>
    11. </form> 
    Другой вариант, что я недопонял и вам надо не переходить на ссылку, а только передать её параметром (хотя и в этом случае по-хорошему указывается action всё равно). Тогда выше постом уважаемый Денис ссылку привёл к нормальному виду.