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

From: Date: Mon, 02 Feb 2015 03:15:03 +0000
Subject: Bug #68970 [Asn]: output_add_rewrite_var() fails to add some URLs
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-190393@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=68970&edit=1 ID: 68970 Updated by: yohgaki@php.net Reported by: yohgaki@php.net Summary: output_add_rewrite_var() fails to add some URLs Status: Assigned Type: Bug Package: Output Control Operating System: any PHP Version: master-Git-2015-02-02 (Git) Assigned To: mike Block user comment: N Private report: N New Comment: Latest test script can be found here. https://github.com/yohgaki/php-src/blob/master-cleanup-trans-sid/ext/session/tests/session_basic3.phpt Previous Comments: ------------------------------------------------------------------------ [2015-02-02 02:46:43] yohgaki@php.net Mike, could you take care url_scanner_ex.re issue? I think output control does this since your new output API. (I really like your new output API, BTW) There may be issues in session module also. I'll take care session module issue. ------------------------------------------------------------------------ [2015-02-02 02:42:05] yohgaki@php.net 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 this bug report at https://bugs.php.net/bug.php?id=68970&edit=1

« previous php.bugs (#190393) next »