go to bug id or search bugs for
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.
// note that this test script is similar to that of bug #38094
<form method="post" action="missingpage.php">
<input name="test" type="text" value="Meow">
Custom 404 page:
<?php print_r($GLOBALS); ?>
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.
All variables except for the Form variables print. Also $_SERVER['QUERY_STRING']
does not contain the query string used.
Add a Patch
Add a Pull Request
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.
The provided 404.php test script is bogus, as $GLOBALS doesn't
contain any request variables as of PHP 5.4.0 (removal of
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):
The results after submitting form.php:
string 'GET' (length=3)
string '' (length=0)
string 'test=Meow' (length=9)
These results appear to be buggy.