构建不依赖于cookie的手机端用户登录机制(三)

引:http://hi.baidu.com/comdeng/blog/item/0b5f07177905850b4b90a752.html

三、如何确保各种标签传递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了。

 

到此为止,我们已经能解决大部分的问题了。

转载于:https://www.cnblogs.com/dev-xp/archive/2010/10/26/1861301.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值