$ php _POST массив, пустой после представления формы

Хорошее задание! У меня была та же самая проблема. Добавление и удаление модуля Сессии работали отлично на меня также. Это однако не возвращало HttpContext. Текущий. Пользователь, таким образом, я попробовал Ваш небольшой прием модулем FormsAuth и конечно же, который сделал это.

<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
91
задан 8 June 2011 в 16:35
поделиться

4 ответа

Don't have an elegant solution at this point but wanted to share my findings for the future reference of others who encounter this problem. The source of the problem was 2 overriden php values in an .htaccess file. I had simply added these 2 values to increase the filesize limit for file uploads from the default 8MB to something larger -- I observed that simply having these 2 values in the htaccess file at all, whether larger or smaller than the default, caused the issue.

php_value post_max_size xxMB
php_value upload_max_filesize xxMB

I added additional variables to hopefully raise the limits for all the suhosin.post.xxx/suhosin.upload.xxx vars but these didn't have any effect with this problem unfortunately.

In summary, I can't really explain the "why" here, but have identified the root cause. My feeling is that this is ultimately a suhosin/htaccess issue, but unfortunately one that I wasn't able to resolve other than to remove the 2 php overridden values above.

Hope this helps someone in the future as I killed a handful of hours figuring this out. Thanks to all who took the time to help me with this (MrMage, Andrew)

4
ответ дан 24 November 2019 в 06:38
поделиться

Убедитесь, что в php.ini:

  • track_vars (доступно только в очень старых версиях PHP) установлено значение В
  • variables_order содержит букву P
  • post_max_size имеет разумное значение (например, 8 МБ)
  • (при использовании патча сухосин) suhosin.post.max_vars и suhosin .request.max_vars достаточно велики.

Полагаю, второе мое предложение решит вашу проблему.

12
ответ дан 24 November 2019 в 06:38
поделиться

Вот другая возможная причина - моя форма отправлялась на domain.com без WWW. и я настроил автоматическое перенаправление, чтобы добавить «WWW». Массив $ _POST в процессе опустошался. Чтобы исправить это, мне нужно было всего лишь отправить запрос на www.domain.com

83
ответ дан 24 November 2019 в 06:38
поделиться

ССЫЛКА: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

Метод POST

Мы собираемся внести некоторые изменения, поэтому метод POST будет используется при отправке запроса ...

var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.
  if(http.readyState == 4 && http.status == 200) {
    alert(http.responseText);
  }
}
http.send(params);

Некоторые заголовки http должны быть установлены вместе с любым запросом POST. Итак, мы устанавливаем их в этих строках ...

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

С помощью вышеприведенных строк мы в основном говорим, что данные отправляются в формате отправки формы. Мы также указываем длину отправляемых нами параметров.

http.onreadystatechange = function() {//Call a function when the state changes.
  if(http.readyState == 4 && http.status == 200) {
    alert(http.responseText);
  }
}

Мы установили обработчик для события изменения «состояние готовности». Это тот же обработчик, который мы использовали для метода GET. Здесь вы можете использовать http.responseText - вставить в div, используя innerHTML (AHAH), eval (JSON) или что-то еще.

http.send(params);

Наконец, мы отправляем параметры с запросом. Данный URL загружается только после вызова этой строки. В методе GET параметр будет нулевым значением. Но в методе POST данные для отправки будут отправлены как аргумент функции отправки. Переменная params была объявлена ​​во второй строке как lorem = ipsum & name = binny - поэтому мы отправляем два параметра - lorem и name со значениями ipsum и binny соответственно.

1
ответ дан 24 November 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: