ID: 10804
Comment by: [EMAIL PROTECTED]
Old Reported By: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Other web server
Operating System: Windows 2000
PHP Version: 4.0.5
New Comment:
I have the same problem.
PHP 4
IIS 4
Windows NT 4.0 Server
Previous Comments:
------------------------------------------------------------------------
[2001-05-11 04:17:32] [EMAIL PROTECTED]
PHP 4.0.5 and 4.0.4pl1 (tried the latter as a fallback) downloaded as
binaries from your php.net site, running Xitami. Also tried on a
Windows ME machine and got the same results, which are:
POSTing from a form does not result in the $HTTP_POST_VARS array being
created. It also doesn't create the global versions of these variables
(with register_globals on or off). However, it _does_ create
appropriate entries in $HTTP_ENV_VARS['FORM_*'] and
$HTTP_SERVER_VARS['FORM_*']. Additionally, $HTTP_COOKIE_VARS show up
fine (unrelated, just FYI).
I used this code to "emulate" (badly) the HTTP_POST_VARS variables,
just to be sure that was really the problem:
if(count($HTTP_POST_VARS) < 2) { // test always succeeds
reset($HTTP_ENV_VARS); // is set, but is 0 size
while(list($k,$v) = each($HTTP_ENV_VARS)) {
if(!strncmp($k,"FORM_",5)) {
$g = strtolower(substr($k,5));
$HTTP_POST_VARS[$g] = $v; // create fake array var
$$g = $v; // create fake global var
}
}
}
I tried several scripts from the internet (Phorum, etc.) and had the
same problem with all, whenever a form POSTed, on both machines using
both versions of PHP. Even a form with only a simple submit button
fails without the above hack. This is bizaare.
Here are some typical results from phpinfo() after a POST:
This is from the Environment section:
QUERY_METHOD POST
REQUEST_METHOD POST
...
FORM_SET Login
FORM_AUTHKEY
FORM_AUTHPASS 22222222
FORM_AUTHUSER Myadmin23
FORM_REFERERURL http://forum.hectorplasmic.com/frontpage.php
This is from the PHP Variables section:
HTTP_SERVER_VARS["QUERY_METHOD"] POST
HTTP_SERVER_VARS["REQUEST_METHOD"] POST
...
HTTP_SERVER_VARS["FORM_SET"] Login
HTTP_SERVER_VARS["FORM_AUTHKEY"]
HTTP_SERVER_VARS["FORM_AUTHPASS"] 22222222
HTTP_SERVER_VARS["FORM_AUTHUSER"] Myadmin23
HTTP_SERVER_VARS["FORM_REFERERURL"]
http://forum.hectorplasmic.com/frontpage.php
So is this:
HTTP_ENV_VARS["QUERY_METHOD"] POST
HTTP_ENV_VARS["REQUEST_METHOD"] POST
HTTP_ENV_VARS["GATEWAY_INTERFACE"] CGI/1.1
HTTP_ENV_VARS["SERVER_SECURITY"] -
HTTP_ENV_VARS["SERVER_PROTOCOL"] HTTP/1.1
HTTP_ENV_VARS["SERVER_PORT"] 80
...
HTTP_ENV_VARS["SERVER_VERSION"] 2.5b1
HTTP_ENV_VARS["SERVER_SOFTWARE"] Xitami
HTTP_ENV_VARS["FORM_SET"] Login
HTTP_ENV_VARS["FORM_AUTHKEY"]
HTTP_ENV_VARS["FORM_AUTHPASS"] 22222222
HTTP_ENV_VARS["FORM_AUTHUSER"] Myadmin23
HTTP_ENV_VARS["FORM_REFERERURL"]
http://forum.hectorplasmic.com/frontpage.php
So is this, but they're my "fake" variables created by the code above.
These don't show up without that code -- no HTTP_POST_VARS at all.
HTTP_POST_VARS["set"] Login
HTTP_POST_VARS["authkey"]
HTTP_POST_VARS["authpass"] 22222222
HTTP_POST_VARS["authuser"] Myadmin23
HTTP_POST_VARS["refererurl"]
http://forum.hectorplasmic.com/frontpage.php
Here's the form (stripped of HTML formatting crud):
<form method="post" action="/login.php" name="login">
<input type="hidden" name="refererurl"
value="http://forum.hectorplasmic.com/frontpage.php"><br>
Username: <input class="inp" type="text" name="authUser">
Userpass: <input class="inp" type="password" name="authPass">
Activation code: <input class="inp" type="text" name="authKey">
<input class="button" type="submit" name="set" value="Login">
<input class="button" type="reset" name="reset" value="Clear">
</form>
I beat my head on the wall trying to figure it out -- obviously, this
hasn't been happening to very many people, or you'd be flooded with
complaints -- but I give up, I'm whupped. Any ideas?
After I get some sleep, I may try PHP 3.x just to see if the problem
remains...
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=10804&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]