- get — PHP $ _GET перестал работать
- Решение
- Не работает get запросы
- Чем отличаются HTTP-методы GET и POST
- Формат запроса
- GET для безопасных действий, POST для опасных
- Ещё раз коротко
- Полезные материалы
- Методы GET и POST. Использование и отличия
- Какой метод использовать GET или POST, чем отличаются методы
- В каких случаях использовать POST и когда нужно использовать GET
- Сравнительная таблица HTTP методов GET и POST
- Пример использования GET запроса
- Пример использования POST запроса
get — PHP $ _GET перестал работать
Поэтому я использовал $ _GET для доступа к статьям, передавая идентификатор статьи через URL и читая этот идентификатор на следующей странице, чтобы можно было извлечь все значения, относящиеся к статье.
Код прохода выглядит следующим образом
Пока есть статьи, получайте изображения, делайте ссылки на изображения, а затем, когда изображение щелкнет, добавьте «id = #» в конец URL.
И, как и ожидалось, когда ссылка нажата, я получаю это.
Пока все выглядит нормально, и все же используя этот код, чтобы затем получить идентификатор и поместить его в переменную
Всегда заканчивается возвращаемой ошибкой, он не может увидеть значение, даже если он был успешно добавлен к URL, и я не могу сказать, почему.
Стоит отметить, что этот точный код работал на живом веб-сайте до сегодняшнего дня, я не внес изменений в код (за исключением перемещения заголовка в файл включения, заголовка, который не влияет на этот фрагмент кода), и, похоже, не быть причиной того, что это прекратилось.
В целях безопасности я даже вернулся к коду, который был старше недели (ПУТЬ до того, как возникла ошибка), и это не исправило ошибку.
РЕДАКТИРОВАТЬ: в ответ на ответы, я протестировал скрипт с var_dump ($ _ GET), который возвращает «Пусто».
error_reporting (E_ALL);
ini_set (‘display_errors’, 1);
Это предложение, однако, не дает никакой обратной связи (которую я могу найти) вообще, вероятно, означая, что никаких ошибок со сценарием не найдено?
РЕДАКТИРОВАНИЕ 3: Поскольку никаких ошибок не было найдено, я создал два довольно простых файла, чтобы проверить, работают ли геттеры и сеттеры.
Это приводит к такому выводу
И просто чтобы убедиться, что он на самом деле работает, я попробовал другое значение
Конечно, это означает, что это не мой проект, который «сломан», но в худшем случае только один или два файла, упомянутых выше? (вероятно, просто article.php)?
РЕДАКТИРОВАТЬ 4: даже дальнейшее тестирование (изменение начальной ссылки с article.php? ….» на testget.php? ….» показывает, что индекс определенно все еще работает, как и ожидалось, вывод сгенерированных идентификаторов через var_dump
Таким образом, проблема заключается только в странице article.php.
EDIT5: VAR_DUMP ($ _ GET); на «Article.php» теперь получает идентификатор из URL, но тест GET не работает, поэтому он все еще не работает (хотя я чувствую, что прогресс достигнут, наконец)
РЕДАКТИРОВАТЬ 6: Мне удалось заставить передачу id работать отлично на localhost, и все же после загрузки новой рабочей копии в godaddy, она все еще не работает. Значение $ _GET передается, как проверено var_dump, но метод get не работает (по иронии судьбы), потому что он не может найти значение get … что абсолютно бессмысленно.
Решение
Слишком много скобок; попробуй это:
Кроме того, если вы точно знаете, что обращаетесь к переменной id через GET, нет причин пытаться выполнить POST, поэтому избавьтесь от этого лишнего кода.
Вы упомянули что-то о файлах включения? Поместите этот код в начало скрипта, и он может дать вам некоторые ошибки, которые вам нужно увидеть, чтобы вы знали, в чем проблема:
Если есть какие-либо ошибки, связанные с PHP на стороне сервера, это выведет их для вас и сообщит, что происходит.
РЕДАКТИРОВАТЬ:
На данный момент я должен представить, что ваша служба хостинга обновила свои серверы или внесла некоторые изменения, чтобы вы не могли получить доступ к переменным запроса $ _GET, не используя что-то более безопасное. Это все может быть расширенной функцией безопасности. Попробуй это:
Источник
Не работает get запросы
Есть очень простой скрипт, который получает часть кода страницы и на его основе создает список url. Проблема в том, что эти url отличаются от тех, которые я вижу в браузере на этой же странице. Т.е. вместо названия url «USLION-Phone. » Бас почему-то записывает «uslion-iPhone. «. Как это исправить?
@senerg все работает как надо.
Вы в браузере смотрите не на те урл. которые получаете в Басе.
Проверьте по id «j-detail-gallery-main»
Вы в браузере смотрите не на те урл. которые получаете в Басе.
Это как? Можете пояснить? Как можно в басе получать именно те, которые я вижу в браузере?
@senerg поменять id, по которому идет поиск определенного куска кода.
поменять id, по которому идет поиск определенного куска кода.
Так он же правильно прописан: «//*[@id=’j-detail-gallery-main’]//script», на что поменять-то?
@senerg это у вас браузер какой то не правильный походу.
А если нужны именно заглавные буквы USLION, то это в другом месте
А если нужны именно заглавные буквы USLION, то это в другом месте
Ваш второй скриншот показывает ссылки на html страницы, зачем вы его вообще тут показываете? Здесь речь идет о ссылках на картинки из конкретного, одного единственного скрипта на странице «//*[@id=’j-detail-gallery-main’]//script», который самый обычный браузер хром (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36) показывает как «USLION-Phone. «
Опера через впн и тор тоже показывают «USLION-Phone. «:
Как заставить БАС видеть в этом скрипте тоже самое, что видят другие браузеры, то есть «USLION-Phone. «, вместо «uslion-iPhone. «?
Причину я нашел: если заходить на русскую версию сайта, то ссылки автоматически меняются на «uslion-iPhone. »
Поэтому вопрос упрощается: как при гет-запросе указать страну?
@senerg указать страну — это конечно смешно)
Источник
Чем отличаются HTTP-методы GET и POST
HTTP-методы GET и POST — самые распространённые способы отправить или получить данные с сервера. Но в разных случаях оба метода могут быть небезопасными или неудобными в использовании. В этой заметке рассмотрим, какой метод когда использовать.
GET — метод для чтения данных с сайта. Например, для доступа к указанной странице. Он говорит серверу, что клиент хочет прочитать указанный документ. На практике этот метод используется чаще всего, например, в интернет-магазинах на странице каталога. Фильтры, которые выбирает пользователь, передаются через метод GET .
POST — метод для отправки данных на сайт. Чаще всего с помощью метода POST передаются формы.
Формат запроса
Протокол HTTP очень прост и состоит, по сути, из двух частей — заголовков и тела запроса или ответа.
Тело запроса — это информация, которую передал браузер при запросе страницы. Но тело запроса присутствует только если браузер запросил страницу методом POST . Например, если отправлена форма, то телом запроса будет содержание формы.
Пример GET-запроса. Информация передаётся прямо в заголовке.
Пример POST-запроса. Информация передаётся в теле запроса:
GET для безопасных действий, POST для опасных
Говоря совсем просто, GET-запросы лучше не использовать с приватной информацией. Вот почему:
- Они кэшируются. Это значит, что логин и пароль, переданные через GET-запрос, могут остаться в интернете навсегда, например, в веб-архиве или кэше Гугла.
- Остаются в истории браузера. Чтобы узнать, какие данные отправлялись, достаточно нажать Ctrl+H.
- Сохраняются в закладках и пересылаются. Можно не обратить внимания и опубликовать в соцсетях или отправить ссылку с приватной информацией в GET-запросе.
- Сохраняются в логах сервера. Например, нельзя отправлять данные банковских карт через GET-запрос, так как это создаёт риски для пользователей.
Таким образом, любые важные данные — логины, пароли, данные карты, персональные данные — лучше передавать с помощью метода POST . Также метод POST поддерживает тип кодирования данных multipart/form-data , что позволяет передавать файлы.
Ещё раз коротко
GET
- Фильтры в интернет-магазинах
- Передача параметров через ссылку
- Другие безопасные запросы
POST
- Любые формы с паролями или банковскими картами
- Формы заявок с персональными данными
- Отправка файлов
Полезные материалы
Мы такие пост-пост, мы такие гета-гета
Если б мне платили каждый раз, когда я пишу запрос HTTP, я бы стал фронтендером тотчас, я бы не дописывал
Нажатие на кнопку — согласие на обработку персональных данных
Источник
Методы GET и POST. Использование и отличия
HTTP методы GET и POST используются для отправки данных на сервер.
Чаще всего методы используются в HTML формах, гиперссылках и AJAX запросах.
POST и GET запросы можно отправить на сервер с помощью любого программного обеспечения, работающего с протоколом HTTP.
Обработка запросов может отличаться в зависимости от типа сервера.
Большинство действующих сайтов работают с языком программирования PHP. В этом случае передаваемые данные попадают в суперглобальные массивы $_GET и $_POST .
Массивы $_GET и $_POST являются ассоциативными. Таким образом, переданный на сервер параметр с именем «user_name», будет доступен как $_GET[‘user_name’] или $_POST[‘user_name’] в зависимости от используемого метода.
Какой метод использовать GET или POST, чем отличаются методы
Основное отличие метода GET от POST в способе передачи данных.
Запрос GET передает данные в URL в виде пар «имя-значение» (другими словами, через ссылку), а запрос POST передает данные в теле запроса (подробно показано в примерах ниже). Это различие определяет свойства методов и ситуации, подходящие для использования того или иного HTTP метода.
Страница, созданная методом GET , может быть открыта повторно множество раз. Такая страница может быть кэширована браузерами, проиндексирована поисковыми системами и добавлена в закладки пользователем. Из этого следует, что метод GET следует использовать для получения данных от сервера и не желательно в запросах, предполагающих внесений изменений в ресурс.
Например, можно использовать метод GET в HTML форме фильтра товаров: когда нужно, исходя из данных введенных пользователем, переправить его на страницу с отфильтрованными товарами, соответствующими его выбору.
Запрос, выполненный методом POST , напротив следует использовать в случаях, когда нужно вносить изменение в ресурс (выполнить авторизацию, отправить форму оформления заказа, форму обратной связи, форму онлайн заявки). Повторный переход по конечной ссылке не вызовет повторную обработку запроса, так как не будет содержать переданных ранее параметров. Метод POST имеет большую степень защиты данных, чем GET : параметры запроса не видны пользователю без использования специального ПО , что дает методу преимущество при пересылке конфиденциальных данных, например в формах авторизации.
HTTP метод POST поддерживает тип кодирования данных multipart/form-data, что позволяет передавать файлы.
Также следует заметить, что методы можно комбинировать. То есть, при необходимости вы можете отправить POST запрос на URL, имеющий GET параметры.
В каких случаях использовать POST и когда нужно использовать GET
В таблице ниже показаны распространенные варианты использования HTTP запросов с объяснением в чем разница между GET и POST запросами в конкретной ситуации.
| Ситуация | GET | POST |
|---|---|---|
| Фильтр товаров | ||
| AJAX запросы | Используются оба метода. Выбор зависит от контекста. Принципы выбора метода такие же, как и для HTML форм. | |
Сравнительная таблица HTTP методов GET и POST
В таблице ниже приведены основные свойства и отличия GET и POST методов.
| Свойство | GET | POST |
|---|---|---|
| Способ передачи данных | Через URL | В теле HTTP запроса |
| Защита данных | ||
| Кэширование | Страница с параметрами может быть кэширована | Страница с параметрами не может быть кэширована |
| Индексирование поисковыми системами | Страница с параметрами может быть индексирована | Страница с параметрами не может быть индексирована |
| Возможность отправки файлов | Не поддерживается | Поддерживается |
| Поддерживаемые типы кодирования | application/x-www-form-urlencoded | |
| Использование в гиперссылках | Да | Нет |
| Использование в HTML формах | Да | Да |
| Использование в AJAX запросах | Да | Да |
Пример использования GET запроса
В примере показана простая HTML форма фильтра по нескольким параметрам.
HTML код формы, генерирующей GET запрос:
После отправки формы браузер переведет пользователя по ссылке:
Ссылка содержит URL документа, отвечающего за обработку и блок параметров. Знак «?» отмечает начало блока параметров GET запроса. Далее находятся пары «имя-значение», разделенные знаком «&». Имена параметров отделены от значений знаком «=».
Переход по ссылке, приведенной выше, будет равнозначен отправке формы с указанными параметрами.
Пример использования POST запроса
В примере показана простая HTML форма авторизации.
HTML код формы, генерирующей POST запрос:
После отправки формы браузер переведет пользователя по ссылке:
Для того, чтобы увидеть переданные параметры, воспользуемся инструментами разработчика.
Запрос состоит из области заголовков и тела запроса.
В заголовках указана служебная информация: URL обработчика, тип кодирования, параметры браузера и т.д.
В теле запроса содержатся передаваемые параметры. Формат тела запроса может отличаться в зависимости от выбранного типа кодирования.
Источник