|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2013-04-18 19:58 UTC] grassgrr at gmail dot com
Description: ------------ I am attempting to catch variables submitted with a form via POST method on a custom 404 page on an apache server. I have seen that IIS has a similar issue reported in bug #38094 that indicate the problem there is one of Microsoft's IIS but this issue is occurring on a LAMP stack so I am not completely sure if it is caused by PHP or a "feature" in Apache that is also in IIS. Test script: --------------- // note that this test script is similar to that of bug #38094 form.php: <form method="post" action="missingpage.php"> <input name="test" type="text" value="Meow"> <input type="submit"> </form> Custom 404 page: 404.php: <?php print_r($GLOBALS); ?> Expected result: ---------------- I would expect to see all variables that exist printed including one post variable named "test" with the value of "Meow" print on the custom 404 page. Actual result: -------------- All variables except for the Form variables print. Also $_SERVER['QUERY_STRING'] does not contain the query string used. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 21:00:01 2025 UTC |
The provided 404.php test script is bogus, as $GLOBALS doesn't contain any request variables as of PHP 5.4.0 (removal of register_globals), anyway. Furthermore the behavior depends on how the custom 404 page is hooked. Using ErrorDocument with a fully qualified URL will cause a redirection via the client, in which case the submitted data will not be propagated. FWIW, I tested the following 404.php (Windows 7, Apache 2.4.4, mod_php, internal redirect): <?php var_dump($_SERVER['REQUEST_METHOD']); var_dump($_SERVER['QUERY_STRING']); var_dump(file_get_contents('php://input')); var_dump($_REQUEST); The results after submitting form.php: string 'GET' (length=3) string '' (length=0) string 'test=Meow' (length=9) array (size=0) empty These results appear to be buggy.