За последние 24 часа нас посетили 22610 программистов и 1546 роботов. Сейчас ищут 887 программистов ...

Получить GET-данные без обработки

Тема в разделе "Вопросы от блондинок", создана пользователем Kreker, 31 июл 2009.

  1. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    При получении данных из $_GET-массива, автоматически обрабатываются некоторые величины. Например, + заменяется на пробел. Таким образом, если в ссылке есть пробел и плюс, то переменная будет содержать два пробела.
    Есть ли какой-нибудь способ достать в исходом варианте, кроме QUERY_STRING?
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Можете попробовать использовать urlencode/urldecode и/или base64_encode/base64_decode
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    \
    QUERY и есть исходный.

    а зачем?
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Давно сделал скрипт, который отдает файлы (filename=myfile.txt), а тут поступила жалоба, что файл не скачивается. Посмотрел файл - а он содержит знак "+". PHP заменяет + на пробел и, в итоге, ищется файл с пробелом, которого, естественно, нет.
     
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Kreker
    Поетому такие вещи лучше всего передавать в base64 :)
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    rawurlencode ?
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Проще вообще хранить их с числовыми названиями-идентификаторами. А при отдаче писать имя, которое в базе.

    Пока не буду переделывать реализацию и сделаю костыль через QUERY STRING
     
  8. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    ага. я тоже недавно в гуглокод писал багрепорт по поводу файлов с символом # в названии. Он воспринимался как якорь. И у себя проверь этот ньюанс.

    чтобы работало корректно при выводе ссылок тебе просто нужно делать так:
    Код (Text):
    1. '<a href="files/' . urlencode($filename) . '">' . $filename . '</a>'
    таким образом избавишся о многих багах, про которые ты , пока, не знаешь.