2009-05-03 62 views
2

我不能让我的SID工作...PHP SID没有显示

<?php 
session_start(); 
// Or maybe pass along the session id, if needed 
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';?> 

不露面SID号码,但session_id的工作不知道如果我失去了一些东西。 THnks

回答

1

第1页:

<?php 
    session_start(); 
    // why use it in a url? 
    echo session_id(); 
    echo '<br /><a href=page2.php target=_blank>page 2</a>'; 
?> 

第2页:

<?php 
    session_start(); 
    // page 2 
    echo session_id(); 
    echo '<br> <br> on page 2 '; 
?> 
7

如果PHP检测到名为session.name的cookie,SID常量将显示一个空字符串。请参阅the manual page。这意味着,仅在会话cookie已发送到浏览器之前,SID才会包含有用的字符串。

这也意味着如果浏览器拒绝Cookie SID常量将工作。假设seesion.use_trans_id已启用,如Gumbo所述。

+0

非常感谢,这对我非常有帮助。 – 2015-09-04 13:30:11

0

尽可能避免在URL中传递会话标识符;对于需要这种情况的情况(例如客户拒绝会话cookie的情况),让内置的URL重写例程改变HTML。

在URL中传递会话标识符意味着您要公开URL中的实现细节。除了纯粹的观点外,这可能会导致用户复制粘贴和共享包含会话信息的URL的实际问题,无意中将他们的会话暴露给朋友或他们共享URL的任何人。