ID: 26341 Updated by: [EMAIL PROTECTED] Reported By: karmak-php at karmak dot org -Status: Open +Status: Feedback Bug Type: Apache related Operating System: Linux PHP Version: 4.3.3 New Comment:
Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2003-11-21 01:49:40] karmak-php at karmak dot org The link to the segfault example was wrong. It should have been: http://staging.karmak.org/2003/php-virtual-bug/b1 ------------------------------------------------------------------------ [2003-11-21 01:42:17] karmak-php at karmak dot org Description: ------------ I've found two problems with virtual() that seem likely to be related. The first is that virtual() does not behave quite like the apache #include virtual="": When virtual() is used to call another php script, the query string in the virtual() call is ignored. For example, if you call virtual("/file?x=y"), the variable "x" will not be set in the included php script. An example of this is posted at: http://staging.karmak.org/2003/php-virtual-bug/a1 The source for the two files used in this example are at: http://staging.karmak.org/2003/php-virtual-bug/a1-php.txt http://staging.karmak.org/2003/php-virtual-bug/a2-php.txt However, if you call the first script as "a1?x=y", the variable "x" will be set to "y" in the second script. This is not the way the Apache virtual function behaves: With Apache, the query string in the virtual call is passed to the script, as can be seen in the following shtml file: http://staging.karmak.org/2003/php-virtual-bug/a3 The source to this file is at: http://staging.karmak.org/2003/php-virtual-bug/a3-shtml.txt Furthermore, all query string variables are reset when the virtual call is issued. This can be seen by calling the shtml file: http://staging.karmak.org/2003/php-virtual-bug/a4?x=y With the corresponding source code at: http://staging.karmak.org/2003/php-virtual-bug/a4-shtml.txt Note that the x=y declaration is not passed to the php script. -------------------------------------------- The second problem is more critical, as it leads to a segfault which is displayed in the error logs, but nothing is reported in the browser and only a partial page will be displayed. An example of this is at: http://staging.karmak.org/2003/php-virtual-bug/a2 This page should end with the word "END", but instead it is cut off mid-sentence. The source for the two files used in this example are at: http://staging.karmak.org/2003/php-virtual-bug/b1-php.txt http://staging.karmak.org/2003/php-virtual-bug/b2-php.txt Reproduce code: --------------- See the description for source code URLs. Expected result: ---------------- See description. Actual result: -------------- See description. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26341&edit=1