За последние 24 часа нас посетили 17982 программиста и 1624 робота. Сейчас ищут 867 программистов ...

url encode

Тема в разделе "Прочие вопросы по PHP", создана пользователем shaci, 15 ноя 2013.

  1. shaci

    shaci Новичок

    С нами с:
    15 ноя 2013
    Сообщения:
    1
    Симпатии:
    0
    Добрый день.
    есть вопрос по url кодированию:
    1.Насколько я понимаю, одно из ограничений url - данные передаются в url кодированном виде.
    (не алфавитно цифровые символы с кодами 0-32 и от 127 и выше вроде бы, url кодируются).

    То есть в случае Get если мы вводим в браузерную строку какой-то параметр, например русские символы - браузер их url-кодирует, и в таком виде отправляет в HTTP заголовке.
    в случае POST обычно отправка через html форму происходит, там тоже url кодирование по умолчанию установлено(enctype="application/x-www-form-urlencoded").

    2. PHP сам разбирает данные на сервере, url-декодирует их, записывает их в GET/POST/Request массивы(в отличие от C, где например пришлось бы url декодировать данные вручную).

    3. Вопрос - иногда требуется сформировать ссылку на бэк-енде например,грубо говоря, такую
    echo "<a href = index.php?param=$userData>push</a>"

    Не могу понять, в некоторых книгах советуют делать url кодирование пользовательского параметра, т.е. вот так
    echo "<a href = index.php?param=".urlencode($userData).">push</a>";

    Но по идее при нажатии на данную ссылку(которая без url кодирования) даже если мы получим в параметре param русские или другие символы - они будут url-кодированы браузером автоматически? или нет?
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    обычно - да