2013-03-13 13 views
12

मैं <form method="post"> का उपयोग करके एक साधारण लॉगिन सिस्टम बनाने की कोशिश कर रहा हूं। सबकुछ मेरे लैपटॉप पर एमएएमपी पर ठीक काम करता है लेकिन जब मैं सर्वर (विंडोज) पर स्क्रिप्ट अपलोड करता हूं तो यह काम नहीं करता है; ऐसा लगता है कि $ _POST सरणी खाली है।

मैंने सब कुछ लेकिन बेयर हड्डियों पर टिप्पणी की और यह अभी भी काम नहीं करता है।

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: (मैं डिबगिंग के लिए कुछ var_dumps के अलावा सब कुछ हटा दिया है)

var_dump($_POST); 

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

जब मैं कोई फर्क नहीं पड़ता रूप है, प्रस्तुत है कि मैं क्या पाठ फ़ील्ड में डाल, मैं इस देखें:

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

अगर मैं एक में "पोस्ट" "प्राप्त" करने के लिए के सभी उदाहरणों को बदलने दो फाइलों को हल करें, सबकुछ ठीक काम करता है। लेकिन मैं पाने का उपयोग नहीं करना चाहता। ($ _REQUEST काम नहीं करता है अगर मैं विधि = "पोस्ट" का उपयोग कर फॉर्म जमा करता हूं)।

एनबी यह सब स्थानीयहोस्ट पर ठीक काम करता है, लेकिन सर्वर पर नहीं (जो विंडोज चल रहा है।) तो यह सर्वर के साथ एक समस्या प्रतीत होता है, लेकिन मुझे नहीं पता कि क्या। आप यहां PHPInfo देख सकते हैं: http://brailleapps.org/phpinf0.php

कोई विचार?

संपादित करें: हल हो गया! निचे देखो।

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

+0

क्या '$ _SERVER' पोस्ट अनुरोध के लिए होती है? क्या आपने enctype कोशिश की? क्या फास्टसीजीआई क्लाइंट को आईआईएस के लिए [POST क्रिया) प्राप्त करने की अनुमति है (http: // stackoverflow।com/प्रश्न/313,188/खाली बाद सरणी में php-5-2-6-आईआईएस-cgi)? – mario

+0

हमारे पास एक ही समस्या थी लेकिन हम लाइव सर्वर पर जाने के बाद AJAX पोस्ट काम नहीं कर रहे थे। एक लंबे संघर्ष के बाद हमने पाया कि सर्वर का मॉड रीराइटिट मॉड्यूल बंद हो गया है। एक बार चालू हो जाने पर सब कुछ ठीक है। तो इसे जांचें। लेकिन मेरे ज्ञान के अनुसार पोस्ट और मोड रीराइट के साथ कोई संबंध नहीं है। बस इसे आज़माएं। – Samy

+3

यह सामग्री प्रकार के साथ एक मुद्दा हो सकता है। यदि कोई सामग्री प्रकार पुन: संक्रमित नहीं है या यह गुम है, तो '$ _POST' खाली है। 'अगर (खाली ($ _ सर्वर [' CONTENT_TYPE '] सेटिंग) को सेट करने का प्रयास करें) {$ _SERVER [' CONTENT_TYPE '] = "एप्लिकेशन/एक्स-www-form-urlencoded";} '। और 'var_dump (file_get_contents ('php: // input') क्या करता है; 'कहें? – Quasdunk

उत्तर

3

मुझे मिल गया यह अंततः तय, आंकड़ा मैं भी पोस्ट कर सकता है क्या यहाँ किसी और मामले में किसी को काम एक ही समस्या है:

2

एक संभावना यह है कि पोस्ट सर्वर पर कोई अनुमति क्रिया नहीं है भविष्य में।

इन HTTP मॉड्यूल की एक बाहर कर देता है पोस्ट के साथ हस्तक्षेप किया गया था:

RadCompression
RadUploadModule

इन मॉड्यूल के साथ बंद कर दिया, पोस्ट ठीक काम किया।

(एनबी यह एक बिल्कुल नया ऐप था जहां मुझे पता था कि कोई मौजूदा कोड नहीं था जो कि उन मॉड्यूल में से एक पर निर्भर हो सकता है ... उन्हें बंद करने से अनपेक्षित परिणाम हो सकते हैं, मुझे पता नहीं है, वाईएमएमवी ।)

+0

वह लेख आईआईएस के बारे में है; सवाल अपाचे के बारे में है। – Kermit

+0

डीओएच। मैंने सवाल बहुत जल्दी पढ़ा। मैंने विंडोज देखा और आईआईएस ग्रहण किया। – Bart

+1

@AarolamaBluenk - PHPinfo लगभग निश्चितता के साथ कहता है कि यह आईआईएस है। – slugonamission

0

मुझे $ _POST खाली/शून्य होने के साथ एक ही समस्या है, और एसओ और Google की खोज में 30 मिनट खर्च करने के बाद मुझे अंततः एक समाधान मिला जो मेरे लिए काम करता था।

के बाद से मैं नहीं जानता कि MAMP के लिए php.ini फ़ाइल को बदलने के लिए कैसे मैं अपने htaccess इस शामिल करने के लिए संपादित:

php_value post_max_size 60M 
php_value upload_max_filesize 60M 

और मैं ($ _ पोस्ट) ठीक अब var_dump कर सकते हैं प्रस्तुत इनपुट के साथ।

संदर्भ लिंक: http://helpfulcoder.blogspot.ca/2011/01/empty-post-array-in-mamp.html

संबंधित मुद्दे