Bug #68970 [NEW]: output_add_rewrite_var() fails to add some URLs

From: Date: Mon, 02 Feb 2015 02:42:06 +0000
Subject: Bug #68970 [NEW]: output_add_rewrite_var() fails to add some URLs
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-190391@lists.php.net to get a copy of this message
From: yohgaki Operating system: any PHP version: master-Git-2015-02-02 (Git) Package: Output Control Bug Type: Bug Bug description:output_add_rewrite_var() fails to add some URLs Description: ------------ It seems url_scanner_ex.re has some problems. It fails to handle some urls. I'm trying to check if session.use_trans_sid=1 works or not. Test script: --------------- --TEST-- Test basic function : variation3 use_trans_sid --INI-- session.use_strict_mode=0 session.use_only_cookies=0 session.use_trans_sid=1 session.save_handler=files session.hash_bits_per_character=4 session.hash_function=0 session.gc_probability=1 session.gc_divisor=1000 session.gc_maxlifetime=300 session.save_path= session.name=PHPSESSID --SKIPIF-- <?php include('skipif.inc'); ?> --FILE-- <?php ob_start(); /* * Prototype : session.use_trans_sid=1 * Description : Test basic functionality. * Source code : ext/session/session.c */ echo "*** Testing basic session functionality : variation3 use_trans_sid ***\n"; echo "*** test output_add_rewrite_var() ***\n"; output_add_rewrite_var('var', 'value'); echo ' <a href="/">test</a> <a href="/#bar">test</a> <a href="/?foo">test</a> <a href="/?foo#bar">test</a> <a href="/?foo=var">test</a> <a href="/?foo=var#bar">test</a> <a href="file.php">test</a> <a href="file.php?foo">test</a> <a href="file.php?foo=var">test</a> <a href="http://php.net">test</a> <a href="http://php.net/">test</a> <a href="http://php.net/#bar">test</a> <a href="http://php.net/?foo">test</a> <a href="http://php.net/?foo#bar">test</a> <a href="http://php.net/?foo=var">test</a> <a href="http://php.net/?foo=var#bar">test</a> <a href="http://php.net/file.php">test</a> <a href="http://php.net/file.php#bar">test</a> <a href="http://php.net/file.php?foo">test</a> <a href="http://php.net/file.php?foo#bar">test</a> <a href="http://php.net/file.php?foo=var">test</a> <a href="http://php.net/file.php?foo=var#bar">test</a> <a href="http://php.net/some/path/file.php">test</a> <a href="http://php.net/some/path/file.php?foo">test</a> <a href="http://php.net/some/path/file.php?foo=var">test</a> <a href="http://php.net/some/path/file.php?foo=var#bar">test</a> <a href="https://php.net">test</a> <a href="https://php.net/">test</a> <a href="https://php.net/?foo=var#bar">test</a> <a href="https://php.net/file.php">test</a> <a href="https://php.net/file.php?foo=var#bar">test</a> <a href="https://php.net/some/path/file.php">test</a> <a href="https://php.net/some/path/file.php?foo=var#bar">test</a> <a href="//php.net">test</a> <a href="//php.net/">test</a> <a href="//php.net/#bar">test</a> <a href="//php.net/?foo">test</a> <a href="//php.net/?foo#bar">test</a> <a href="//php.net/?foo=var">test</a> <a href="//php.net/?foo=var#bar">test</a> <a href="//php.net/file.php">test</a> <a href="//php.net/file.php#bar">test</a> <a href="//php.net/file.php?foo">test</a> <a href="//php.net/file.php?foo#bar">test</a> <a href="//php.net/file.php?foo=var">test</a> <a href="//php.net/file.php?foo=var#bar">test</a> <a href="//php.net/some/path/file.php">test</a> <a href="//php.net/some/path/file.php?foo">test</a> <a href="//php.net/some/path/file.php?foo=var">test</a> <a href="//php.net/some/path/file.php?foo=var#bar">test</a> <form action="script.php" method="post"> <input type="text" name="test1"></input> <input type="text" name="test2" /> </form> '; output_reset_rewrite_vars(); echo "*** Test trans sid ***\n"; ob_start(); $session_id = 'testid'; session_id($session_id); echo ' <a href="file.php">test</a> <a href="http://php.net">test</a> <a href="http://php.net/">test</a> <a href="http://php.net/file.php">test</a> <form action="script.php" method="post"> <input type="text" name="testa" /> <input type="text" name="testb" /> </form> '; echo "*** Cleanup ***\n"; var_dump(session_id($session_id)); var_dump(session_start()); var_dump(session_destroy()); ob_end_flush(); ?> --EXPECTF-- Actual result: -------------- I get following output from output_add_rewrite_var(). <a href="/?PHPSESSID=testid">test</a> <a href="/?PHPSESSID=testid#bar">test</a> <a href="/?foo&PHPSESSID=testid">test</a> <a href="/?foo&PHPSESSID=testid#bar">test</a> <a href="/?foo=var&PHPSESSID=testid">test</a> <a href="/?foo=var&PHPSESSID=testid#bar">test</a> <a href="file.php?PHPSESSID=testid">test</a> <a href="file.php?foo&PHPSESSID=testid">test</a> <a href="file.php?foo=var&PHPSESSID=testid">test</a> <a href="http://php.net">test</a> <a href="http://php.net/">test</a> <a href="http://php.net/#bar">test</a> <a href="http://php.net/?foo">test</a> <a href="http://php.net/?foo#bar">test</a> <a href="http://php.net/?foo=var">test</a> <a href="http://php.net/?foo=var#bar">test</a> <a href="http://php.net/file.php">test</a> <a href="http://php.net/file.php#bar">test</a> <a href="http://php.net/file.php?foo">test</a> <a href="http://php.net/file.php?foo#bar">test</a> <a href="http://php.net/file.php?foo=var">test</a> <a href="http://php.net/file.php?foo=var#bar">test</a> <a href="http://php.net/some/path/file.php">test</a> <a href="http://php.net/some/path/file.php?foo">test</a> <a href="http://php.net/some/path/file.php?foo=var">test</a> <a href="http://php.net/some/path/file.php?foo=var#bar">test</a> <a href="https://php.net">test</a> <a href="https://php.net/">test</a> <a href="https://php.net/?foo=var#bar">test</a> <a href="https://php.net/file.php">test</a> <a href="https://php.net/file.php?foo=var#bar">test</a> <a href="https://php.net/some/path/file.php">test</a> <a href="https://php.net/some/path/file.php?foo=var#bar">test</a> <a href="//php.net?PHPSESSID=testid">test</a> <a href="//php.net/?PHPSESSID=testid">test</a> <a href="//php.net/?PHPSESSID=testid#bar">test</a> <a href="//php.net/?foo&PHPSESSID=testid">test</a> <a href="//php.net/?foo&PHPSESSID=testid#bar">test</a> <a href="//php.net/?foo=var&PHPSESSID=testid">test</a> <a href="//php.net/?foo=var&PHPSESSID=testid#bar">test</a> <a href="//php.net/file.php?PHPSESSID=testid">test</a> <a href="//php.net/file.php?PHPSESSID=testid#bar">test</a> <a href="//php.net/file.php?foo&PHPSESSID=testid">test</a> <a href="//php.net/file.php?foo&PHPSESSID=testid#bar">test</a> <a href="//php.net/file.php?foo=var&PHPSESSID=testid">test</a> <a href="//php.net/file.php?foo=var&PHPSESSID=testid#bar">test</a> <a href="//php.net/some/path/file.php?PHPSESSID=testid">test</a> <a href="//php.net/some/path/file.php?foo&PHPSESSID=testid">test</a> <a href="//php.net/some/path/file.php?foo=var&PHPSESSID=testid">test</a> <a href="//php.net/some/path/file.php?foo=var&PHPSESSID=testid#bar">test</a> <form action="script.php" method="post"><input type="hidden" name="PHPSESSID" value="testid" /> <input type="text" name="test1"></input> <input type="text" name="test2" /> </form> -- Edit bug report at https://bugs.php.net/bug.php?id=68970&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=68970&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=68970&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=68970&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=68970&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=68970&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=68970&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=68970&r=needscript Try newer version: https://bugs.php.net/fix.php?id=68970&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=68970&r=support Expected behavior: https://bugs.php.net/fix.php?id=68970&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=68970&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=68970&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=68970&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=68970&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=68970&r=dst IIS Stability: https://bugs.php.net/fix.php?id=68970&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=68970&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=68970&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=68970&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=68970&r=mysqlcfg

« previous php.bugs (#190391) next »