У меня есть простая форма в моем проекте PHP, использующая метод POST для отправки данных. На большинстве компов все работает хорошо, но странная проблема только на одном из них. Представьте, что это моя простая форма:
<form action="controller/save.php" method="post">
<input type="text" name="username">
<input type="submit" value="show">
</form>
А это мой файл PHP:
<?php
print_r($_POST);
?>
Во всех случаях он возвращает массив, содержащий значение переменной имени пользователя. Но только в одном случае возвращается
Array()
Я никогда не видел такого поведения и, к сожалению, не мог понять, в чем проблема. Не могли бы вы помочь мне, пожалуйста?
Если проблема возникает только у одного конкретного клиента, то проблема связана с его средой. Проверьте браузер (и расширения) и любые настроенные прокси.
Я тестировал его в нескольких браузерах, даже в ограниченных режимах, таких как инкогнито. я ничего не менял!
А вы проверяли конфигурацию прокси ОС?
На этой машине нет специальной конфигурации для прокси.
Вам нужно будет сделать больше отладки. Попробуйте
var_dump($_SERVER);
. Убедитесь, что это POST-запросЭто POST, так как я получал точные результаты на других машинах. Однако я поставил ваш код и вот что получилось:
["REQUEST_METHOD"]=> string(4) "POST"
на всех машинах.Вы можете попробовать использовать почтальон и сделать сообщение для него
Можете ли вы использовать панель браузера dev-tools Network для проверки запроса и, в частности, данных формы? Вам также может понадобиться запустить что-то вроде Wireshark, чтобы проверить запрос на более низком уровне. Здесь мало кто может помочь тебе с этим.
также попробуйте сбросить $_REQUEST, посмотрите, увидите ли вы его там
Вы также можете
var_dump(file_get_contents('php://input'));
Входной поток содержит необработанное тело запроса. Если это пусто, у вас проблема на стороне клиента, если есть данные, у вас проблема на стороне сервера.Это может произойти из-за брандмауэра/антивируса, см., например, coderhelper.com/questions/68450092/…
@dMd, я не могу использовать post man, так как для этого требуется активная СЕССИЯ. Кроме того, результат $_REQUEST был таким же, как $_POST
Array()
.@DB это был результат
string(0) ""