1--TEST--
2Test session URL-Rewriting with and without nested output_add_rewrite_var()
3--EXTENSIONS--
4session
5--INI--
6session.trans_sid_tags="a=href,area=href,frame=src,form="
7url_rewriter.tags="a=href,area=href,frame=src,form="
8--FILE--
9<?php
10$testTags = <<<TEST
11
12<a href=""></a>
13<a href="./foo.php"></a>
14
15<a href="//php.net/foo.php"></a>
16<a href="http://php.net/foo.php"></a>
17<a href="bad://php.net/foo.php"></a>
18<a href="//www.php.net/foo.php"></a>
19
20<a href="//session-trans-sid.com/foo.php"></a>
21<a href="http://session-trans-sid.com/foo.php"></a>
22<a href="bad://session-trans-sid.com/foo.php"></a>
23<a href="//www.session-trans-sid.com/foo.php"></a>
24
25<a href="//url-rewriter.com/foo.php"></a>
26<a href="http://url-rewriter.com/foo.php"></a>
27<a href="bad://url-rewriter.com/foo.php"></a>
28<a href="//www.url-rewriter.com/foo.php"></a>
29
30<form action="" method="get"> </form>
31<form action="./foo.php" method="get"></form>
32
33<form action="//php.net/foo.php" method="get"></form>
34<form action="http://php.net/foo.php" method="get"></form>
35<form action="bad://php.net/foo.php" method="get"></form>
36<form action="//www.php.net/foo.php" method="get"></form>
37
38<form action="//session-trans-sid.com/bar.php" method="get"></form>
39<form action="http://session-trans-sid.com/bar.php" method="get"></form>
40<form action="bad://session-trans-sid.com/bar.php" method="get"></form>
41<form action="//www.session-trans-sid.com/bar.php" method="get"></form>
42
43<form action="//url-rewriter.com/bar.php" method="get"></form>
44<form action="http://url-rewriter.com/bar.php" method="get"></form>
45<form action="bad://url-rewriter.com/bar.php" method="get"></form>
46<form action="//www.url-rewriter.com/bar.php" method="get"></form>
47
48TEST;
49
50ob_start();
51
52ini_set('session.trans_sid_hosts', 'session-trans-sid.com');
53ini_set('url_rewriter.hosts', 'url-rewriter.com');
54
55ini_set('session.use_only_cookies', 0);
56ini_set('session.use_cookies', 0);
57ini_set('session.use_strict_mode', 0);
58ini_set('session.use_trans_sid', 1);
59
60session_id('testid');
61session_start();
62
63echo "URL-Rewriting with transparent session id support without output_add_rewrite_var()\n";
64echo $testTags;
65
66ob_flush();
67
68
69output_add_rewrite_var('<name>', '<value>');
70
71echo "\nURL-Rewriting with transparent session id support and output_add_rewrite_var()\n";
72echo $testTags;
73
74ob_end_flush();
75output_reset_rewrite_vars();
76
77
78output_add_rewrite_var('<name2>', '<value2>');
79
80echo "\nURL-Rewriting with transparent session id support without output_add_rewrite_var()\n";
81echo $testTags;
82
83--EXPECT--
84URL-Rewriting with transparent session id support without output_add_rewrite_var()
85
86<a href="?PHPSESSID=testid"></a>
87<a href="./foo.php?PHPSESSID=testid"></a>
88
89<a href="//php.net/foo.php"></a>
90<a href="http://php.net/foo.php"></a>
91<a href="bad://php.net/foo.php"></a>
92<a href="//www.php.net/foo.php"></a>
93
94<a href="//session-trans-sid.com/foo.php?PHPSESSID=testid"></a>
95<a href="http://session-trans-sid.com/foo.php?PHPSESSID=testid"></a>
96<a href="bad://session-trans-sid.com/foo.php"></a>
97<a href="//www.session-trans-sid.com/foo.php"></a>
98
99<a href="//url-rewriter.com/foo.php"></a>
100<a href="http://url-rewriter.com/foo.php"></a>
101<a href="bad://url-rewriter.com/foo.php"></a>
102<a href="//www.url-rewriter.com/foo.php"></a>
103
104<form action="" method="get"><input type="hidden" name="PHPSESSID" value="testid" /> </form>
105<form action="./foo.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /></form>
106
107<form action="//php.net/foo.php" method="get"></form>
108<form action="http://php.net/foo.php" method="get"></form>
109<form action="bad://php.net/foo.php" method="get"></form>
110<form action="//www.php.net/foo.php" method="get"></form>
111
112<form action="//session-trans-sid.com/bar.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /></form>
113<form action="http://session-trans-sid.com/bar.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /></form>
114<form action="bad://session-trans-sid.com/bar.php" method="get"></form>
115<form action="//www.session-trans-sid.com/bar.php" method="get"></form>
116
117<form action="//url-rewriter.com/bar.php" method="get"></form>
118<form action="http://url-rewriter.com/bar.php" method="get"></form>
119<form action="bad://url-rewriter.com/bar.php" method="get"></form>
120<form action="//www.url-rewriter.com/bar.php" method="get"></form>
121
122URL-Rewriting with transparent session id support and output_add_rewrite_var()
123
124<a href="?%3Cname%3E=%3Cvalue%3E&PHPSESSID=testid"></a>
125<a href="./foo.php?%3Cname%3E=%3Cvalue%3E&PHPSESSID=testid"></a>
126
127<a href="//php.net/foo.php"></a>
128<a href="http://php.net/foo.php"></a>
129<a href="bad://php.net/foo.php"></a>
130<a href="//www.php.net/foo.php"></a>
131
132<a href="//session-trans-sid.com/foo.php?PHPSESSID=testid"></a>
133<a href="http://session-trans-sid.com/foo.php?PHPSESSID=testid"></a>
134<a href="bad://session-trans-sid.com/foo.php"></a>
135<a href="//www.session-trans-sid.com/foo.php"></a>
136
137<a href="//url-rewriter.com/foo.php?%3Cname%3E=%3Cvalue%3E"></a>
138<a href="http://url-rewriter.com/foo.php?%3Cname%3E=%3Cvalue%3E"></a>
139<a href="bad://url-rewriter.com/foo.php"></a>
140<a href="//www.url-rewriter.com/foo.php"></a>
141
142<form action="" method="get"><input type="hidden" name="PHPSESSID" value="testid" /><input type="hidden" name="&lt;name&gt;" value="&lt;value&gt;" /> </form>
143<form action="./foo.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /><input type="hidden" name="&lt;name&gt;" value="&lt;value&gt;" /></form>
144
145<form action="//php.net/foo.php" method="get"></form>
146<form action="http://php.net/foo.php" method="get"></form>
147<form action="bad://php.net/foo.php" method="get"></form>
148<form action="//www.php.net/foo.php" method="get"></form>
149
150<form action="//session-trans-sid.com/bar.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /></form>
151<form action="http://session-trans-sid.com/bar.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /></form>
152<form action="bad://session-trans-sid.com/bar.php" method="get"></form>
153<form action="//www.session-trans-sid.com/bar.php" method="get"></form>
154
155<form action="//url-rewriter.com/bar.php" method="get"><input type="hidden" name="&lt;name&gt;" value="&lt;value&gt;" /></form>
156<form action="http://url-rewriter.com/bar.php" method="get"><input type="hidden" name="&lt;name&gt;" value="&lt;value&gt;" /></form>
157<form action="bad://url-rewriter.com/bar.php" method="get"></form>
158<form action="//www.url-rewriter.com/bar.php" method="get"></form>
159
160URL-Rewriting with transparent session id support without output_add_rewrite_var()
161
162<a href="?PHPSESSID=testid"></a>
163<a href="./foo.php?PHPSESSID=testid"></a>
164
165<a href="//php.net/foo.php"></a>
166<a href="http://php.net/foo.php"></a>
167<a href="bad://php.net/foo.php"></a>
168<a href="//www.php.net/foo.php"></a>
169
170<a href="//session-trans-sid.com/foo.php?PHPSESSID=testid"></a>
171<a href="http://session-trans-sid.com/foo.php?PHPSESSID=testid"></a>
172<a href="bad://session-trans-sid.com/foo.php"></a>
173<a href="//www.session-trans-sid.com/foo.php"></a>
174
175<a href="//url-rewriter.com/foo.php"></a>
176<a href="http://url-rewriter.com/foo.php"></a>
177<a href="bad://url-rewriter.com/foo.php"></a>
178<a href="//www.url-rewriter.com/foo.php"></a>
179
180<form action="" method="get"><input type="hidden" name="PHPSESSID" value="testid" /> </form>
181<form action="./foo.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /></form>
182
183<form action="//php.net/foo.php" method="get"></form>
184<form action="http://php.net/foo.php" method="get"></form>
185<form action="bad://php.net/foo.php" method="get"></form>
186<form action="//www.php.net/foo.php" method="get"></form>
187
188<form action="//session-trans-sid.com/bar.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /></form>
189<form action="http://session-trans-sid.com/bar.php" method="get"><input type="hidden" name="PHPSESSID" value="testid" /></form>
190<form action="bad://session-trans-sid.com/bar.php" method="get"></form>
191<form action="//www.session-trans-sid.com/bar.php" method="get"></form>
192
193<form action="//url-rewriter.com/bar.php" method="get"></form>
194<form action="http://url-rewriter.com/bar.php" method="get"></form>
195<form action="bad://url-rewriter.com/bar.php" method="get"></form>
196<form action="//www.url-rewriter.com/bar.php" method="get"></form>
197