Ich versuche, ein einfaches Login-System mit <form method="post">
zu bauen. Alles funktioniert gut auf MAMP auf meinem Laptop, aber wenn ich das Skript auf den Server (Windows) hochlade, funktioniert es nicht; Es scheint, dass das Array $ _POST leer ist.
Ich habe alles außer den Nackten auskommentiert und es funktioniert immer noch nicht.
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: (I alles außer einigen var_dumps für das Debuggen entfernt haben)
var_dump($_POST);
$loginEmail = trim($_POST['login-email']);
echo '<br>';
$loginPassword = ($_POST['login-password']);
var_dump($loginEmail);
echo '<br>';
var_dump($loginPassword);
Wenn übermittle ich das Formular aus, egal, was ich legte in den Textfeldern, sehe ich:
array(0) { }
string(0) ""
NULL
Wenn ich alle Instanzen von „post“ zu „erhalten“ in der ein bove zwei Dateien, alles funktioniert gut. Aber ich möchte nicht nutzen. ($ _REQUEST funktioniert auch nicht, wenn ich das Formular mit method = "post" abschicke).
NB das alles funktioniert gut auf localhost, aber nicht auf dem Server (der Windows läuft.) So scheint es ein Problem mit dem Server sein, aber ich habe keine Ahnung, was. Sie können die PHPInfo hier sehen: http://brailleapps.org/phpinf0.php
Irgendwelche Ideen?
BEARBEITEN: Gelöst! Siehe unten.
Was bedeutet '$ _SERVER' enthalten für POST-Anfragen? Hast du einen Enctype versucht? Ist der FastCGI-Client berechtigt, das [POST-Verb für IIS] zu empfangen (http: // stackoverflow.com/questions/313188/leer-post-array-in-php-5-2-6-iis-cgi)? – mario
hatten wir das gleiche Problem, aber Ajax Beitrag funktioniert nicht sobald wir Live-Server bewegt. Nach langem Kampf haben wir festgestellt, dass das Mod-Rewrite-Modul des Servers ausgeschaltet war. Einmal eingeschaltet, ist alles in Ordnung. Überprüfen Sie das. Aber nach meinem Wissen gibt es keine Beziehung mit POST und Mod-Rewrite. Versuchen Sie es einfach. – Samy
Dies könnte ein Problem mit dem Inhaltstyp sein. Wenn kein Inhaltstyp neu dekodiert wird oder fehlt, ist '$ _POST' leer. Versuchen Sie, 'if (leer ($ _ SERVER ['CONTENT_TYPE'])) {$ _SERVER ['CONTENT_TYPE'] =" application/x-www-form-urlencoded ";}' zu setzen. Und was bedeutet 'var_dump (file_get_contents ('php: // input'));' sagen? – Quasdunk