2009-05-03 56 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的任何人。