Neden $ _POST Apache altında PHP5'ta boş?

3 Cevap php

Dosyasındaki http://example.com/path/foo.php, I (biçimlendirme silindi) formu var:

<form action="/path/foo.php" method="post">
Email: <input type="text" name="email">
Password: <input type="password" name="password">
<input type="checkbox" name="remember" checked="checked"> Remember me
<input type="submit" value="Log In">
</form>

Bazen kullanıcılar giriş mümkün değildir: bildirilen davranış onlar oturum çalıştı oldu ve taze bir giriş ekranı ile sunuldu.

Sunulan değerlerden yoksun $ _POST ['email'] ve $ _POST ['password'] ve aşağıdaki sadece "# #" kaydeder: Ben sorun çoğaltmak mümkün oldum, o $ _POST boş görünür:

error_log("#" . file_get_contents("php://input") . "#");

Bu bir yönlendirme nedeniyle olurdu neden göremiyorum; çünkü dizin / bir durum olamaz -> / dizin / ve Apache ilgili VirtualHostuna bölümünde bir görünüm dosyayı etkilemez gerektiğini herhangi bir değil çok az tekrar yazmaya geldi, ve. (Ve gösterilen URL şeklinde başvurulan olarak aynıdır.)

Sistem birkaç ay için yaklaşık edilmiş ve sorun ilk olarak bugün bana bildirildi.

I (5), durumunda bir daha yeni bir sürümü ile geliştirilebilir bir tesadüftü var gelişmekte olan güncellenmiş Apache ve PHP planlıyorum. Ama ben bir form doldurduktan sonra boş $ _POST elde edilebilecek diğer yollar işitme çok ilgi duyarım.

Düşünceler?

3 Cevap

Lucky söylediğin gibi, bu bir FF konudur onaylayın, sonra kullanıcıların tüm eklentileri / eklentileri devre dışı bırakın ve tekrar deneyin. Onlar orada bazı çatışmalar var olabilir.

Veri $ _REQUEST değişkeni kullanılabilir mi? Ben POST-özgü olmadığını biliyorum, ama yayınlanan verilerle doldurulur edilmelidir.

Eğer 'register_globals' etkin var mı? Lütfen POSTed veriler yerine $ _POST dizisindeki mevcut $ e-posta ve şifre $ atanacak neden olur, bu korkunç bir güvenlik deliği.

Opsiyonlu Bu etkinse, devre dışı bırakılması script düzgün çalışmayabilir ve potansiyel güvenlik tehdidi kaldırmak için neden olacaktır.