查看文章 |
三、如何确保各种标签传递sessionId 在前面的例子中,我们已经能让a标签的href属性正确地附加上sessionId了。不过,在实际的开发中,可能会有更加复杂的情况。比如,你可能会用到form,也有可能用到iframe,甚至即使在使用图片的时候也需要传递sessionId。那么来看下面的代码: <?php ini_set('session.use_trans_sid',1); session_start(); ?>
<a href="/hello.php">hello</a>
<form> <input type="submit" value="submit"/> </form>
<iframe src="/hello.php"></iframe> <img src="/a.gif"/>
刷新界面后,输出的代码为: <a href="/hello.php?PHPSESSID=a1ff38e07c28474b80766ef96ad88013">hello</a>
<form><input type="hidden" name="PHPSESSID" value="a1ff38e07c28474b80766ef96ad88013" />
<input type="submit" value="submit"/>
</form>
<iframe src="/hello.php"></iframe>
<img src="/a.gif" />
也就是说,对form,已经能很好地传递sessionId了,但是对于iframe和img,却还是不能传递sessionId。怎么办呢?难道需要我们手动来赋值? 其实不然,在第一部分,我们已经提到一个有用的字段了——url_rewriter.tags。我们尝试增加它对于iframe和img的支持。代码如下: <?php ini_set('session.use_trans_sid',1); $tags = ini_get('url_rewriter.tags'); ini_set('url_rewriter.tags',$tags.',iframe=src,img=src'); session_start(); ?>
<a href="/hello.php">hello</a>
<form> <input type="submit" value="submit"/> </form>
<iframe src="/hello.php"></iframe> <img src="/a.gif" /> 输出来的结果如下: <a href="/hello.php?PHPSESSID=a1ff38e07c28474b80766ef96ad88013">hello</a>
<form><input type="hidden" name="PHPSESSID" value="a1ff38e07c28474b80766ef96ad88013" />
<input type="submit" value="submit"/>
</form>
<iframe src="/hello.php?PHPSESSID=a1ff38e07c28474b80766ef96ad88013"></iframe>
<img src="/a.gif?PHPSESSID=a1ff38e07c28474b80766ef96ad88013" />
很显然,iframe和img也能顺利地传递sessionId了。
到此为止,我们已经能解决大部分的问题了。 |