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

Reply via email to