2013-03-13 47 views
12

Tôi đang cố tạo một hệ thống đăng nhập đơn giản bằng cách sử dụng <form method="post">. Mọi thứ hoạt động tốt trên MAMP trên máy tính xách tay của tôi nhưng khi tôi tải tập lệnh lên máy chủ (Windows), nó không hoạt động; có vẻ như mảng $ _POST trống.

Tôi đã nhận xét mọi thứ nhưng xương trần và nó vẫn không hoạt động.

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: (Tôi đã gỡ bỏ tất cả mọi thứ ngoại trừ một số var_dumps để gỡ lỗi)

var_dump($_POST); 

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

Khi tôi gửi biểu mẫu, không có vấn đề gì tôi đặt vào các trường văn bản, tôi thấy điều này:

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

Nếu tôi thay đổi tất cả các trường hợp "đăng" thành "nhận" trong bove hai tập tin, tất cả mọi thứ hoạt động tốt. Nhưng tôi không muốn sử dụng. ($ _REQUEST không hoạt động nếu tôi gửi biểu mẫu bằng cách sử dụng phương thức = "post").

NB tất cả điều này hoạt động tốt trên máy chủ cục bộ, nhưng không phải trên máy chủ (đang chạy Windows.) Vì vậy, nó có vẻ là một vấn đề với máy chủ, nhưng tôi không có ý tưởng gì. Bạn có thể xem PHPInfo tại đây: http://brailleapps.org/phpinf0.php

Bất kỳ ý tưởng nào?

EDIT: Đã giải quyết! Xem bên dưới.

+0

'$ _SERVER' chứa yêu cầu POST là gì? Bạn đã thử mã hóa chưa? Máy khách FastCGI có được phép nhận [POST verb cho IIS] hay không (http: // stackoverflow).com/questions/313188/empty-post-array-in-php-5-2-6-iis-cgi)? – mario

+0

chúng tôi đã gặp vấn đề tương tự nhưng bài đăng ajax không hoạt động khi chúng tôi chuyển sang máy chủ trực tiếp. Sau một cuộc đấu tranh dài, chúng tôi đã tìm thấy mô-đun viết lại mod của máy chủ bị tắt. Sau khi bật tất cả mọi thứ là tốt.So Kiểm tra that.But theo kiến ​​thức của tôi không có mối quan hệ với POST và mod rewrite.Just cho nó một thử. – Samy

+3

Đây có thể là vấn đề với loại nội dung. Nếu không có loại nội dung được recocgnized hoặc nó bị thiếu, sau đó '$ _POST' là sản phẩm nào. Thử đặt 'if (trống ($ _ SERVER ['CONTENT_TYPE'])) {$ _SERVER ['CONTENT_TYPE'] =" ứng dụng/x-www-form-urlencoded ";}'. Và những gì hiện 'var_dump (file_get_contents ('php: // input'));' nói? – Quasdunk

Trả lời

3

tôi đã nhận nó cố định cuối cùng, con tôi cũng có thể gửi những gì đã làm việc ở đây trong trường hợp ai đó đã cùng một vấn đề trong tương lai.

Hóa ra một trong những mô-đun HTTP được can thiệp với POST:

RadCompression
RadUploadModule

Với những mô-đun bị tắt, POST làm việc tốt.

(NB đây là một ứng dụng hoàn toàn mới mà tôi biết không có bất kỳ mã hiện có nào có thể phụ thuộc vào một trong các mô-đun đó ... tắt chúng có thể có hậu quả không mong muốn mà tôi không biết, YMMV .)

0

Tôi đã có cùng một vấn đề với $ _POST rỗng/NULL, và sau khi dành 30 phút tìm kiếm SO và Google cuối cùng tôi đã tìm thấy một giải pháp làm việc cho tôi.

Vì tôi không biết làm thế nào để thay đổi các tập tin php.ini cho MAMP tôi sửa htaccess tôi để bao gồm này:

php_value post_max_size 60M 
php_value upload_max_filesize 60M 

và tôi có thể var_dump ($ _ POST) với đầu vào nộp phạt bây giờ.

Liên kết tham chiếu: http://helpfulcoder.blogspot.ca/2011/01/empty-post-array-in-mamp.html

Các vấn đề liên quan