Моя простая веб-страница не может правильно отображать "(кавычки) и" (апостроф)

Вот мой ответ.php

<!doctype html>
<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Simple page</title>
    </head>
    <body>
        <p><?php echo $_REQUEST[name]; ?></p>
    </body>
</html>

Ничего слишком сумасшедшего. Это просто упрощенная версия моего проблемного блока кода из моего реального приложения. Если я вызову его вместе с параметром GET, используя URL-адрес:

http://localhost/something/response.php?name=foo

Тогда он будет отображать только это:

foo

Проблема в том, что когда я пытаюсь передать "" (кавычки) или ' (апостроф) как часть параметра, страница ответа автоматически добавит \ (backspace), как управляющий символ.

Итак, если я попытаюсь вызвать страницу, используя:

http://localhost/something/response.php?name=foo"

а также

http://localhost/something/response.php?name=foo'

Затем он будет отображать:

foo/"

а также

foo/'

соответственно

Похоже, что затронуты только " (кавычки) и ' (апостроф). Другие символы, такие как ‹, >, ( или ) не вызывают проблем. Даже & (замененный на %26) работает нормально. это уже день, но все еще далеко от понимания этого.


person Akkarawat Siriwirapak    schedule 25.09.2018    source источник
comment
когда вы передаете параметр URL, вам нужно сначала urlencode   -  person apokryfos    schedule 25.09.2018
comment
Добро пожаловать. Вы пробовали заменить " на %22?   -  person brombeer    schedule 25.09.2018
comment
Вы можете вызвать https://secure.php.net/manual/en/function.http-build-query.php с массивом для построения этого строка запроса для вас.   -  person David Lemon    schedule 25.09.2018
comment
Я вызываю URL-адрес с помощью javaScript, поэтому я попытался использовать кодироватьURI. Нет, не работает. Замена на %22 или %27 также не работает.   -  person Akkarawat Siriwirapak    schedule 25.09.2018