2013-03-13 5 views
12

kullanarak basit bir giriş sistemi oluşturmaya çalışıyorum. Her şey dizüstü bilgisayarımda MAMP üzerinde iyi çalışıyor ancak betiği sunucuya yüklediğimde (Windows) çalışmıyor; $ _POST dizisinin boş olduğu anlaşılıyor.

Çıplak kemikler dışında her şeyi açıkladım ve hala çalışmıyor.

index.php:

<form id="login-form" method="POST" action="_scripts/check_login.php"> 
Email Address 
<input name="login-email" type="text" id="login-email"> 
Password 
<input name="login-password" type="text" id="login-password"> 
<input type="submit" name="Submit" id="login-button" value="Login"> 
</form> 

_scripts/check_login.php: (Ben hata ayıklama için bazı var_dumps dışında her şeyi kaldırdık)

var_dump($_POST); 

$loginEmail = trim($_POST['login-email']); 
echo '<br>'; 
$loginPassword = ($_POST['login-password']); 
var_dump($loginEmail); 
echo '<br>'; 
var_dump($loginPassword); 

olursa olsun formu, gönderdiğinizde ne metin alanları koymak, bu bkz:

array(0) { } 
string(0) "" 
NULL 

ben a'da "get" için "post" tüm örneklerini değiştirirseniz iki dosya dola, her şey iyi çalışıyor. Ama ben kullanmak istemiyorum. ($ _REQUEST, yöntemi = "post" kullanarak formu gönderirsem çalışmaz).

NB bu özellik localhost'ta çalışıyor ancak sunucuda çalışmıyor (Windows çalıştıran). Sunucuyla ilgili bir sorun gibi görünüyor, ancak ne olduğu hakkında hiçbir fikrim yok. PHPInfo'yı buradan görebilirsiniz: http://brailleapps.org/phpinf0.php

Herhangi bir fikrin var mı?

DÜZENLEME: Çözüldü! Aşağıya bakınız.

http://www.iis.net/configreference/system.webserver/security/requestfiltering/verbs

+0

'$ _SERVER' POST istekleri için ne içeriyor? Enctype'ı denediniz mi? FastCGI istemcisinin [POST IIS için fiil] (http: // stackoverflow) almasına izin veriliyor mu?com/sorular/313188/boş sonrası dizi-in-php-5-2-6-iis-cgi)? – mario

+0

biz aynı sorun vardı ama biz sunucuya taşındı ajax yayın çalışmıyor. Uzun bir mücadeleden sonra sunucunun mod yeniden yazma modülünü kapattık. Bir kez açıldığında her şey yolunda. Bu kontrol edin.Ama benim bilgi başına POST ve mod rewrite ile hiçbir ilişki yoktur.Sadece bir deneyin. – Samy

+3

Bu, içerik türünde bir sorun olabilir. Hiçbir içerik türü kurtarılmamışsa veya eksikse, o zaman $ _POST 'boş demektir. Eğer (boş ($ _ SERVER ['CONTENT_TYPE'])) {$ _SERVER ['CONTENT_TYPE'] = "application/x-www-form-urlencoded";} 'seçeneğini ayarlamayı deneyin. Ve var_dump nedir (file_get_contents ('php: // input')); 'deyin? – Quasdunk

cevap

3

Ben sonunda tamir ettim rakam ben de ilan edebilirler başka durumda birisi burada çalıştı neyi aynı sorunu etti:

2

Bir olasılık POST sunucuda bir izin fiil olmadığıdır gelecekte.

bu HTTP modüllerinden birini çıkıyor POST müdahale edildi:

RadCompression Bu modüller ile
RadUploadModule

POST iyi çalıştı, kapalı.

(NB, bu modüllerden birine bağlı olabilecek herhangi bir kodun bulunmadığını bildiğim tamamen yeni bir uygulamadaydı ... bunları kapatmak, farkında olmadığım kasıtsız sonuçlara neden olabilir, YMMV .)

+0

Bu makale IIS ile ilgilidir; soru Apache hakkında. – Kermit

+0

DOH. Soruyu çok hızlı okudum. Windows'u gördüm ve IIS'yi kabul ettim. – Bart

+1

@AarolamaBluenk - PHPinfo, IIS'nin neredeyse kesin olduğunu söylüyor. – slugonamission

0

$ _POST boş/NULL ile aynı sorunu yaşadım ve SO ve Google'da 30 dakika geçirdikten sonra sonunda işe yarayan bir çözüm buldum. Ben MAMP için php.ini dosyasını değiştirmek için nasıl bilmiyorum yana

Bunu içerecek şekilde benim htaccess düzenlendi:

php_value post_max_size 60M 
php_value upload_max_filesize 60M 

ve iyiyim şimdi sunulan girişli ($ _ POST) var_dump edebilirsiniz.

Referans linki: http://helpfulcoder.blogspot.ca/2011/01/empty-post-array-in-mamp.html