From: karmak-php at karmak dot org Operating system: Linux PHP version: 4.3.3 PHP Bug Type: Apache related Bug description: Bug in virtual()
Description: ------------ (Note: This was originally posted in combination with a segfault bug, which got prematurely closed) PHPs 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. Reproduce code: --------------- See Description for URLs Expected result: ---------------- See Description Actual result: -------------- See Description -- Edit bug report at http://bugs.php.net/?id=26500&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=26500&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=26500&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=26500&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=26500&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=26500&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=26500&r=needscript Try newer version: http://bugs.php.net/fix.php?id=26500&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=26500&r=support Expected behavior: http://bugs.php.net/fix.php?id=26500&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=26500&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=26500&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=26500&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=26500&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=26500&r=dst IIS Stability: http://bugs.php.net/fix.php?id=26500&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=26500&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=26500&r=float