2016-11-03 4 views
0

Wenn der Benutzer auf Senden klickt, sendet es sowohl eine Post-UND-Anfrage an das Skript. Der Post gibt ein 302 Found zurück, und das Get gibt 200 zurück, aber das print_r zeigt ein leeres Array an, nachdem das Formular übermittelt wird. Ich kann nicht herausfinden, warum das passiert.HTML Formular senden erhalten und posten. Umleiten mit 302

Dies läuft auf einer AWS Linux Instanz mit PHP 5.4 und Apache 2.4. Hier

ist der Code:

<?php 
print_r($_REQUEST); 
?> 
<!doctype html> 
<html> 
<meta charset="UTF-8" /> 
<title>Login</title> 
<head> 

</head> 
<body> 

<p>Please login:</p> 

<form action="<?php echo $_SERVER['SCRIPT_NAME'];?>" method="post"> 
<table> 
    <tr> 
     <td> 
      username 
     </td> 
     <td> 
      <input type="text" name="username" id="username" style="width:400px;"> (case sensitive) 
     </td> 
    </tr> 
    <tr> 
     <td> 
      password 
     </td> 
     <td> 
      <input type="password" name="password" id="password" style="width:400px;"> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2" align="center"> 
      <input type="submit" value="submit"> 
     </td> 

    </tr> 
</table> 
</form> 


</body> 
</html> 

Wenn ich einreichen klicken, das ist, was ich in den FF Entwickler-Tool finden Sie unter:

dev tols results

+0

Ein HTML-Formular _can not_ submit "mit zwei Methoden gleichzeitig." Ziemlich sicher, es ist POST-Anfrage von Ihrem Formular/Browser gesendet, 302 Antwort vom Server gesendet, und dann eine GET-Anfrage durch den Browser. Nun, warum der 302 auftritt, ist aus dem bisher gezeigten Code nicht klar. Für den Anfang würde ich überprüfen, was das Aktionsattribut des Formulars tatsächlich enthält. – CBroe

+0

"Es sendet sowohl eine Post und eine Anfrage an das Skript" Nein, das ist definitiv nicht passiert. Überprüfen Sie Ihre Annahmen erneut. – Brad

+0

Sie können erwägen, die Aktion "action" leer zu lassen. Es wird an die aktuelle URL gesendet. – Brad

Antwort

2

Sie nicht POST senden und GET - nur POST. Ihr Server antwortet dann mit einer Weiterleitung (302), die Ihren Browser die angegebene URL über GET lädt. Zu diesem Zeitpunkt sind Ihre Daten verloren (aufgrund der Weiterleitung) und das Array ist leer. Die Frage ist, warum Ihr Server anweist, umzuleiten. Der wahrscheinlichste Grund ist Ihre Htaccess-Datei. Könnten Sie es bitte senden?

+0

Ich habe eine Suche durchgeführt und ich habe keine .htaccess-Dateien. Ist es möglich, dass es in der Konfigurationsdatei sein könnte? – raphael75

+0

Haben Sie es mit verschiedenen Browsern versucht? Ich habe gelesen, dass dies möglicherweise auf ein fehlendes/falsches Datenlängenattribut zurückzuführen ist. – Gerfried

Verwandte Themen