GET request in php

193
22 апреля 2018, 21:51

Когда я посылаю в ссылке что то вроде href="topic.php?language=c++", на страницу topic.php наверзу видно topic.php?language=c++. То есть вроде бы всё работает, однако когда пытаюсь использовать $_GET он берет только букву с.Зачем и как это исправить?

  echo $_GET["language"];

result: c(без ++ и даже если передать с#, то он опять покажет с без #)

Answer 1

В строке uri символ + равнозначен пробелу, т.е. вы фактически передаёте символ с, за которым следуют два пробела, и чтобы в этом убедиться, распечатайте $_GET таким способом: var_dump($_GET);.

Для преобразования пользуйтесь чем-то вроде urlencode() - с её помощью символ + будет преобразован в %2B, т.е., два "нормальных" плюса будут выглядеть так: %2B%2B, а строка uri примет следующий вид: ?language=c%2B%2B, при этом var_dump($_GET); вам отобразит:

array (size=1)
  'language' => string 'c++' (length=3)
READ ALSO
html код внутри php функции ?> … <?php - так можно делать?

html код внутри php функции ?> … <?php - так можно делать?

Есть ли какая нибудь разница между следующим кодом Для примера возьму add_action хук из wordpress

171
Пропала подсветка синтаксиса php VS code

Пропала подсветка синтаксиса php VS code

Проблема возникает уже второй разВ первый раз все нормализовалось само, после переустановки

203
Пытаюсь сделать последователей в Django или ManyToMany

Пытаюсь сделать последователей в Django или ManyToMany

Не пойму в чём проблема, укажите на мои ошибки пожалуйста, если это возможно

260