ID: 10930
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: IIS related
Operating System: Windows 2000
PHP Version: 4.0.5
New Comment:
I have experienced the same bug with PHP 4.1.1 (Win32 install build)
and Windows 2000 server. It is really an IIS bug not a PHP bug. The
crux of it is ...
header("Location: $PHP_SELF");
This sends a 'virtual' URI not an absolute URI. (see the <a
href="http://www.php.net/manual/en/function.header.php">PHP manual for
header function</a>). Why this should crash IIS is unclear since surely
it should cope with a rogue CGI program.
If an absolute URI is sent in the header it does not crash IIS.
This would cause problems on Windows boxes running a number of PHP
websites for end users. Sloppy header coding can cause all the websites
to be unavailable until admin restarts IIS.
Phorum 3.3.2a (www.phorum.org) uses the Location header with a virtual
URI in the admin screens.
Previous Comments:
------------------------------------------------------------------------
[2001-05-17 12:08:03] [EMAIL PROTECTED]
After running the code below, PHP 4.0.5 is no longer able to connecto
to mysql. I have tested this at 2 different locations, and the result
is the same every time. Also after visiting the website with this code
in it, inetinfo.exe (IIS) crashes.
PHP was installed with php405-installer.exe. The problem occurs on
Windows 2000 Professional SP1 & SP2. Windows 2000 server has not been
tested. Below is the code that should be pasted into a webpage, and
then visited with any browser. I accidentally caused inetinfo.exe to
die with this:
<?
/*
This was written (accidentally) by Tyler Longren
<[EMAIL PROTECTED]>.
This was found on accident...thanks to my crappy coding. :)
Date: 05-14-2001
Kills: Inetinfo.exe on Win2k
*/
session_start();
session_register('username');
session_register('password');
header("Location: $PHP_SELF");
if ($formusername) {
mysql_connect("$mysql_host","$mysql_user","$mysql_pass");
mysql_select_db("$mysql_db");
$auth_sql = mysql_query("SELECT * FROM $mysql_user_table WHERE
username =
'$formusername' AND password = '$formpassword'");
$user_exists = mysql_num_rows($auth_sql);
if ($user_exists == "1") {
$username = $formusername;
$password = $formpassword;
}
else {
$login_error = "<font face=Arial
size=2><b>Error:</b></font><br><font
face=Arial size=1>Wrong<br>username/password</b></font>";
session_unregister('username');
session_unregister('password');
}
}
else {
mysql_connect("$mysql_host","$mysql_user","$mysql_pass");
mysql_select_db("$mysql_db");
$auth_sql = mysql_query("SELECT * FROM $mysql_user_table WHERE
username =
'$username' AND password = '$password'");
$user_exists = mysql_num_rows($auth_sql);
if ($user_exists == "1") {
// blah blah blah!
}
else {
$login_error = "<font face=Arial
size=2><b>Error:</b></font><br><font
face=Arial size=1><b>Wrong<Br>username/password</b></font>";
session_unregister('username');
session_unregister('password');
}
}
if ($login == "no") {
session_destroy();
session_unregister('username');
session_unregister('password');
header("Location: $PHP_SELF");
}
?>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=10930&edit=1