2013-03-06 48 views
0

這是我第一次使用php學習會話,我正在儘可能使用最簡單的登錄頁面。

所以理論上這樣可以保持任何給定的字符串$用戶名總是存儲在$_SESSION['username']只要用戶永遠不會關閉網頁?

這是一個虛擬網頁,只需將$_SESSION['username']的值設置爲$ username即可。如果我這樣做,並且我在我的網站上打開了一個不同的頁面,那麼$_SESSION['username']的值仍然會保留,直到關閉Web瀏覽器爲止?

<?php 
session_start(); 
<html> 
<body> 

...

$_SESSION['username'] = $username; 
?> 

所以我最大的問題是,如果$的用戶名是 「CiniCraft」 將$ _SESSION [ '用戶名'] = 「CiniCraft」,直到web瀏覽器被關閉?如果不是,那麼在瀏覽器關閉之前使用哪個最佳變量保留其價值?

我試過上面顯示的方法,當我從login.php導航到index.php時,$ _SESSION ['username']變成空白。

安全對我來說根本不是問題,如果用戶賬戶被攻破,那麼黑客會浪費他們的時間。當然,除非他們正在尋找郵件的垃圾郵件更多偉哥的廣告...

+2

您需要每個頁面頂部的session_start()您想要使用Sessions – ElefantPhace 2013-03-06 02:17:27

回答

6

是的,只要你做

$_SESSION['username'] = $username; 

會話將被分配$username值。但是,請記住分配給它之前啓動會話,這樣的順序是這樣的:

session_start(); 
$_SESSION['username'] = $username; 

每一個地方,你需要訪問頁面上啓動會話 - 這也許就是爲什麼它是不可用的原因index.php文件。

所以上的index.php,你可以做這樣的事情:

session_start(); 
echo $_SESSION['username']; 

這一點,在你的榜樣,應該輸出「CiniCraft」,因爲你第一次調用的login.php和事後的index.php。

該會話存儲在您的瀏覽器中,並帶有一個cookie - 只要您不重置瀏覽器或長時間關閉它,該會話應該是有效的。但是,在其他瀏覽器中,會話將不可用。

瞭解更多關於會議in php contextgenerally

安全不是我的問題在所有

小心 - 請不要看它這樣。 Security is everyone's responsibility,你會更快地需要它,而不是晚些時候。

0

看來您使用的是舊瀏覽器,因此請求您先更新瀏覽器。就像在現代瀏覽器中一樣,處理會話比舊瀏覽器更容易。

另一件事,你必須在頁面起始點的所有頁面上提供session_start()。

當用戶訪問您的網站時,session_start將有助於在整個網站上維護單個會話。

相關問題