Bug #64672 [Opn]: POST variables not received by custom 404

From: Date: Fri, 03 Apr 2015 19:10:54 +0000
Subject: Bug #64672 [Opn]: POST variables not received by custom 404
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-191807@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=64672&edit=1 ID: 64672 Updated by: cmb@php.net Reported by: grassgrr at gmail dot com Summary: POST variables not received by custom 404 Status: Open Type: Bug Package: Apache related Operating System: Linux PHP Version: 5.4.14 Block user comment: N Private report: N New Comment: 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. Previous Comments: ------------------------------------------------------------------------ [2014-03-05 20:42:41] narf at devilix dot net It's not a PHP issue. Apache just executes the 404.php in another process/thread (although this might be dependable on the PHP SAPI being used, not sure). That process couldn't possibly have those vars, because they were never sent to it. You can use apache_note() to achieve what you want. I'd say #38094 is the same issue. ------------------------------------------------------------------------ [2013-04-18 19:58:01] 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. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=64672&edit=1

« previous php.bugs (#191807) next »