On Sat, 2005-07-09 at 02:04 -0700, Rasmus Lerdorf wrote: > Raymond C. Rodgers wrote: > > I'm trying to write an error handler in PHP to try to avoid sending the > > browser a 404 error message. Basically, if someone > > requests /whatever.html on the server and it doesn't exist, my 404 error > > handler checks to see if /whatever.php exists, if so, it then includes > > that file. > > > > That part works fine. > > > > The part that I'm having trouble with is if /whatever.html happens to be > > the target of a form POST. With GET requests, the data is available in > > either $_SERVER['REDIRECT_QUERY_STRING'] or (worst case) > > $_SERVER['REQUEST_URI']. That's easy enough to parse and turn into > > $_REQUEST and/or $_GET. However, it seems that POSTed data just vanishes > > into thin air. $_POST is not set, of course, and I've been trying to > > read data using file_get_contents('php://input') but nothing is > > returned... Is this a bug in PHP, Apache, not a bug but an unimplemented > > feature, security precaution, or what? Am I missing something simple to > > get the POSTed data? > > No, you can't do what you are trying to do the way you are trying to do > it. Apache changes the original POST to a GET request on the internal > errordocument redirect so PHP can't get at the original posted data. > Well, it probably could with some hacking, but the web server has > specifically told us that this is not a POST request anymore, so we > respect that. Thanks for the information. I would have thought the information would still be available some where, some how, since $_SERVER provides a great deal of information about the redirected request. (Such as the REDIRECT_REQUEST_METHOD, REDIRECT_QUERY_STRING, etc. indexes.) Oh well, live and learn. :-) Raymond -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php