Функция $ _GET не видит знаков "+" или "% 20" в URL-адресе - PullRequest
0 голосов
/ 10 июля 2020

В файле php я использую этот код:

header('Location: localhost/?room=ler&user='.urlencode('Indianu Talpa Iute'));

Это отправляет меня на страницу с URL-адресом: localhost/?room=ler&user=Indianu+Talpa+Iute, и я хочу вставить эти значения в форму на той же странице, например:

<input type="text" name="user" value=<?php echo ''.$_GET['user'].'' ?> >

Но он отображает только Indianu в текстовом поле. Зачем? Как я могу это исправить?

Он работает одинаково как для '+', так и для '% 20' вместо пробела.

1 Ответ

1 голос
/ 10 июля 2020

Поместите в кавычки значение атрибута value:

<input type="text" name="user" value="<?php echo ''.$_GET['user'].'' ?>" >

И не забудьте по крайней мере использовать htmlspecialchars(), чтобы избежать XSS:

<input type="text" name="user" value="<?php echo htmlspecialchars($_GET['user']) ?>" >

PS. $_GET не является функцией; это суперглобальный массив.

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