作者MrMarcus (请勿忘记密码)
看板PHP
标题Re: [请益] Session的问题
时间Tue Aug 8 22:25:53 2006
※ 引述《sorianotw (Brio)》之铭言:
: 我想前面那篇可能大家看不大懂
: 我把程式码一段丢上来好了 请大家帮我看看
: 我是照着书上的方法弄
: 一开始就是
: <?
: session_start();
: if ($_SESSION["clog"]!=true){}]
: ?>
: 这个是检查session看有没有登入的简单程式
: 登入的时候则是
: <?
: session_start();
: session_register("clog");
上面这行不需要,应该删掉。
: $_SESSION['clog']==true;
两个等号应该是笔误吧?如果程式里面就是两个等号那麽是不会照预期运作的。
: ?>
: 这样就会被IE挡住右下角有个眼球出现
: 点起来是"隐私权报告" 网站 cookies已封锁
: 我用的是session为什麽会有这种状况呢??
: 我session的用法有错吗?
: ps:这个程式绝对没有普通语法错误 只要IE解除封锁就可以运作
: 烦请解答 谢谢
PHP的session机制预设会使用到cookie(但是这并不是指透过session传递
的资料都储存在cookie里面,只有session id是存在cookie里面而已)。
你应该去找找php.ini里面的以下两项设定:
session.use_cookies
session.use_only_cookies(从4.3.0版本开始才有)
两个的预设值都是1(开启)。session.use_cookies代表PHP会"尝试"使用
cookie来传递session id,後者则代表PHP "只会"使用cookie来传递session id。
除了使用cookie传递session id以外,php也可以透过自动在相对连结以及表单
中加上session id的方式来传递session id,这个方式在使用者不接受cookie
的时候可以让session继续运作。要让php在cookie无法使用的时候自动换用
第二种方式,php.ini里面的session.use_trans_sid这项设定要启用。
所以你要修改的地方是:
session.use_cookies = 1 #若使用者接受cookie就会使用cookie传递sid
session.use_only_cookies = 0 #若使用者拒绝cookie则会自动换用第二种方式传递
session.use_trans_sid = 1 #启用自动改写连结加入sid功能
不过透过url parameters方式传递session id,虽然不受使用者拒绝cookie
的限制,却会带来受到针对此方式所设计的攻击的隐忧。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.153.19
1F:推 sorianotw:谢谢你的说明 我去试试看 谢谢你 08/08 22:35
2F:推 ybite:推! 08/08 23:52
3F:→ ileadu:还有这招 @@ 08/09 03:37