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.
'$ _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
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
Đâ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