Может ли строка запроса URL содержать точку? - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть такие URL:

process_request.php?fileName=newpage.html

Я пытаюсь получить параметр fileName с помощью:

if (isset($_REQUEST['fileName'])) { ... }

Это не работает, и мне интересно, может ли быть проблема в имени файла. Я не могу найти окончательный ответ. Функции кодирования URL в PHP, похоже, ничего не делают с периодами.

1 Ответ

0 голосов
/ 07 ноября 2018

Полные остановки (периоды .) являются допустимыми значениями строки запроса.

почему? Потому что:

print urlencode("This is a ... query string! hazzah");

выходов:

Это + это + а + ... + запрос + строка% 21 + hazzah

Поэтому это не является причиной вашей очевидной проблемы.

Как найти вашу актуальную проблему:

  • Перезапустите код с параметром fileName, не содержащим ., и проверьте, работает ли код должным образом:

    process_request.php? Имя_файла = newpage.html

    if (isset($_REQUEST['fileName'])) { print "it worked!"; die; }
    
  • var_dump() значение $_REQUEST['fileName'] для проверки того, что вы ожидаете (например, переменные $_REQUEST могут быть отключены в PHP.ini).

    process_request.php? Имя_файла = newpage.html

     var_dump($_REQUEST);
     if (isset($_REQUEST['fileName'])) { print "it worked!"; die; }
    
  • Убедитесь, что ваш .htaccess (или аналогичный) не переписывает ваш действующий URL

  • Убедитесь, что оператор if(...) IS работает и просто не дает ожидаемого результата из-за другой проблемы, ошибки или сбоя.

И последнее, но не менее важное ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...