ID: 26341 Updated by: [EMAIL PROTECTED] Reported By: karmak-php at karmak dot org -Status: Feedback +Status: No Feedback Bug Type: Apache related Operating System: Linux PHP Version: 4.3.3 New Comment:
No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. Previous Comments: ------------------------------------------------------------------------ [2003-11-27 18:12:38] [EMAIL PROTECTED] 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. ------------------------------------------------------------------------ [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