PHP $ _POST заполняется неправильно - PullRequest
1 голос
/ 10 мая 2011

Итак, я отправляю некоторые формы на веб-сайт (через jQuery.post) и пытаюсь проанализировать результаты. Это работает для простых вещей, но для моей реальной формы Многие значения заполняются строковыми нулями. Так, например medicalProvider=MediCo становится $_POST['medicalProvider']="0".

Эта страница отлично работает с более короткими строками POST, и раньше она работала нормально с этой точной формой, но я не затрагивал конфигурацию, поэтому не знаю, в чем проблема.

Вот результаты readfile('php://input') и var_dump($_POST), буквально первые две строки файла:

// readfile('php://input'):
medicalProvider=MediCo&medicalPremium=7000&medicalOccurs=0&medicalKind=0&medicalEmpOnly=50&medicalEmpSpouse=0&medicalEmpDependant=0&medicalEmpFamily=0&medicalProvider=0&medicalPremium=0&dentalProvider=DentCo&dentalPremium=500&dentalOccurs=0&dentalKind=1&dentalEmpOnly=0&dentalEmpSpouse=2&dentalEmpDependant=0&dentalEmpFamily=0&dentalProvider=0&dentalPremium=0&longTermProvider=HappCo&longTermPremium=9000&longTermOccurs=1&longTermKind=2&longTermEmpOnly=0&longTermEmpSpouse=0&longTermEmpDependant=0&longTermEmpFamily=0&longTermProvider=0&longTermPremium=0&shortTermProvider=&shortTermPremium=&shortTermOccurs=&shortTermKind=&shortTermEmpOnly=&shortTermEmpSpouse=&shortTermEmpDependant=&shortTermEmpFamily=&shortTermProvider=&shortTermPremium=&lifeProvider=DeathCo&lifePremium=70000&lifeOccurs=1&lifeKind=4&lifeEmpOnly=80&lifeEmpSpouse=2&lifeEmpDependant=0&lifeEmpFamily=0&lifeProvider=0&lifePremium=0
//var_dump($_POST):
array(40) {
  ["medicalProvider"]=>
  string(1) "0"
  ["medicalPremium"]=>
  string(1) "0"
  ["medicalOccurs"]=>
  string(1) "0"
  ["medicalKind"]=>
  string(1) "0"
  ["medicalEmpOnly"]=>
  string(2) "50"
  ["medicalEmpSpouse"]=>
  string(1) "0"
  ["medicalEmpDependant"]=>
  string(1) "0"
  ["medicalEmpFamily"]=>
  string(1) "0"
  ["dentalProvider"]=>
  string(1) "0"
  ["dentalPremium"]=>
  string(1) "0"
  ["dentalOccurs"]=>
  string(1) "0"
  ["dentalKind"]=>
  string(1) "1"
  ["dentalEmpOnly"]=>
  string(1) "0"
  ["dentalEmpSpouse"]=>
  string(1) "2"
  ["dentalEmpDependant"]=>
  string(1) "0"
  ["dentalEmpFamily"]=>
  string(1) "0"
  ["longTermProvider"]=>
  string(1) "0"
  ["longTermPremium"]=>
  string(1) "0"
  ["longTermOccurs"]=>
  string(1) "1"
  ["longTermKind"]=>
  string(1) "2"
  ["longTermEmpOnly"]=>
  string(1) "0"
  ["longTermEmpSpouse"]=>
  string(1) "0"
  ["longTermEmpDependant"]=>
  string(1) "0"
  ["longTermEmpFamily"]=>
  string(1) "0"
  ["shortTermProvider"]=>
  string(0) ""
  ["shortTermPremium"]=>
  string(0) ""
  ["shortTermOccurs"]=>
  string(0) ""
  ["shortTermKind"]=>
  string(0) ""
  ["shortTermEmpOnly"]=>
  string(0) ""
  ["shortTermEmpSpouse"]=>
  string(0) ""
  ["shortTermEmpDependant"]=>
  string(0) ""
  ["shortTermEmpFamily"]=>
  string(0) ""
  ["lifeProvider"]=>
  string(1) "0"
  ["lifePremium"]=>
  string(1) "0"
  ["lifeOccurs"]=>
  string(1) "1"
  ["lifeKind"]=>
  string(1) "4"
  ["lifeEmpOnly"]=>
  string(2) "80"
  ["lifeEmpSpouse"]=>
  string(1) "2"
  ["lifeEmpDependant"]=>
  string(1) "0"
  ["lifeEmpFamily"]=>
  string(1) "0"
}

1 Ответ

2 голосов
/ 10 мая 2011

medicalProvider устанавливается дважды.Если у вас одна и та же переменная POST (или GET) более одного раза, для нее устанавливается последняя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...