raphael75 raphael75 - 1 month ago 7
HTML Question

HTML form sending get AND post. Redirecting with 302

When the user clicks submit, it is sending both a post AND get request to the script. The Post returns a 302 Found, and the Get returns a 200, but the print_r shows an empty array after the form is submitted. I can't figure out why this is happening.

This is running on an AWS Linux instance with PHP 5.4 and Apache 2.4.

Here is the 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>


When I click submit, this is what I see in the FF dev tools:

dev tols results

Answer

Your are not sending POST and GET - only POST. Your server then responds with a redirect (302) which makes your browser load the given URL via GET. At this point your data is lost (due to the redirect) and the array is empty. The question is why your server instructs to redirect. The most likely reason is your htaccess file. Could you please send it.