Frage

Ein seltsamer Fehler auf einem Server tauchte eine ziemlich aktive Stelle ausgeführt wird.

  • Server: Apache / 2.2.3 (CentOS)
  • PHP: 5.2.6
  • eAccelerator 0.9.5.3

Während mehrteiliger Formulare mit, gelegentlich von einem Textfeld gesendeten Daten werden in dem $ _POST

fehlen

Wir wissen, dass die Daten, weil content_length zeigt eine vernünftige Größe über 1 K

gesendet wurde

Alle anderen Eingabefelder in der Form korrekt empfangen werden.

Es ist NICHT Browser spezifisch und geschieht auf IE / Firefox / Chrome.

Arbeiten fast 99% der Zeit, nicht nur 1 oder 2 mal im Durchschnitt für jeden hundert Beiträge gemacht.

In sehr seltenen Gelegenheit konnten wir es uns selbst reproduzieren, so dass wir Daten wissen gesendet wird, verarbeitet nicht nur von beiden Apache / PHP

Alle diese Einstellungen wurden geprüft und sind angemessen in der php.ini:

memory_limit
max_input_time
upload_max_file_size
post_max_filesize

in httpd.conf

LimitRequestBody
TimeOut

würde gerne andere Ideen hören, was das sein könnte. Ich kann keine bekannten verwandten Fehler für PHP finden.

War es hilfreich?

Lösung

Nicht sicher ist dies das Problem (keine einfache Frage zu erraten ^^), aber wenn Sie die suhoshin Sicherheitspatch / Extension, haben Sie versucht, de-aktivieren oder?
(ich weiß nicht, ob es auf CentOS standardmäßig aktiviert ist, aber es könnte sein, wenn man bedenkt es auf Ubuntu ist, die „weniger entreprise orientiert“ ist)

Ich schlage dies wegen der diesem Bugreport , in der es ein paar Hinweise, die zum Beispiel sagen:

  

[30. Oktober 2007 11.02 Uhr UTC] sbauer bei   GJL-Netzwerk dot net

     

Während bei denen dieses Problem, auch wir   festgestellt, dass die Ursache für dieses Problem   die suhosin Patch wurde, welches ist - von   default - konfiguriert ist, einen max hat   Begrenzung für die Länge des Cookies,   Anfrage, Post, erhalten und Sitzung Vars.   Z.B. für POST das sieht aus wie:

     

suhosin.post.max_array_depth 100   100   suhosin.post.max_array_index_length 64   64 64 suhosin.post.max_name_length   64 suhosin.post.max_totalname_length
  256 256 suhosin.post.max_value_length   65000 65000 suhosin.post.max_vars
  200 200

     

Diese Bedürfnisse Derivate ein gesetzt werden   ausreichend höhere Zahl. Z.B. in unserer   Fall war das Problem, dass unsere POST   Daten zu lang war (wie dies scheint zu sein,   der Fall für viele von Ihnen hier).

     

Deshalb schlage ich vor der php.ini zu überprüfen oder   (Nach Ihrer Distribution dort   oft ist ein suhosin.ini) und korrekter   die oben genannten Werte oder setzen Sie sie auf 0 bis   deaktivieren. Wenn diese Derivate   nicht gesetzt ist, werden die Standardwerte verwendet werden.   Sie müssen prüfen / hinzufügen:   suhosin.post.max _....   suhosin.request.max _...   suhosin.get.max _...   suhosin.session.max _...   suhosin.cookie.max _...

     

finden Sie in phpinfo (), wo diese   Werte sollen aufgeführt werden!

Und / oder:

  

[13. November 2008 04.58 Uhr UTC] keith bei   tdrnetworks dot com

     

Im Hinblick auf die   enctype = "multipart / form-data" nicht   die $ _POST bevöl Vars Ich fand meine   Lösung war die Suhosin deaktivieren   Sicherheitsmodul.

     

Haben Sie gehen!

Es gibt auch eine Notiz, die sagt:

  

[5. Februar 18.49 UTC] neal dot Pressley   bei yahoo dot com

     

Ich war vor dem gleichen Problem. Ich hatte eine   HTML-Formular mit PHP-Skripte, in denen ich   wurde Radiobuttons einreichen oder   Kontrollkästchen. Wenn ich das Formular veröffentlichen, PHP   wurde keine Post-Parameter zu finden.   es war zufällig, einige Zeit war es   arbeiten und einige Zeit nicht. Selbst ich   mit Get versuchte, arbeitete sie einige Zeit   und einige Zeit nicht. Dann habe ich ändern   ENCTYPE von Groß- in Kleinbuchstaben   und es begann Arbeits prefectly

Ist Ihr Formular / Seite HTML-gültig? Vielleicht, in einigen seltenen Fällen ist es nicht?


Vielleicht helfen diese werde ... Wenn nicht, ich bin gespannt, den Grund dieses Problems kennen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top