我已經創建了一個登錄腳本(http://pastebin.com/bCpXYwPq),並且我知道它很容易發生SQL注入,稍後我會解決這個問題。如何使一個變量可以在任何頁面上訪問?
無論如何,我需要變量'$ users',所以我可以在任何地方回顯它。
示例:在帳戶頁面上,我希望它回顯電子郵件地址。 如果變量只存儲在登錄腳本中,我該怎麼做?
我已經創建了一個登錄腳本(http://pastebin.com/bCpXYwPq),並且我知道它很容易發生SQL注入,稍後我會解決這個問題。如何使一個變量可以在任何頁面上訪問?
無論如何,我需要變量'$ users',所以我可以在任何地方回顯它。
示例:在帳戶頁面上,我希望它回顯電子郵件地址。 如果變量只存儲在登錄腳本中,我該怎麼做?
把序列變量$users
上$_SESSION
這樣的:
session_start();
$_SESSION['users'] = serialize($users);
而再次趕上$用戶:
session_start();
$users = unserialize($_SESSION['users']);
我該怎麼做? –
session_start(); $ _SESSION ['users'] = $ users; – Brant
並序列化使用: http://php.net/manual/pt_BR/function.serialize.php –
你需要深入會話(http://php.net/manual/en/features.sessions.php)
登錄.PHP:
session_start();
$_SESSION["username"]=$username;
$_SESSION["email"]=$email;
$specialdata=array("a","b","c");
$_SESSION["specialdata"]=serialize($specialdata);
在您需要訪問數據的所有其他網頁:
session_start();
if(!isset($_SESSION["username"]))
{
// User not logged in
echo "You aren't logged in"
}
else
{
// Logged in
echo "The username is: " . $_SESSION["username"];
echo "Your email is: " . $_SESSION["email"];
$specialdata=unserialize($_SESSION["specialdata"]);
echo "First element of special data: " . $specialdata[0]; // Prints a
}
這是行不通的。我需要存儲整行數據,而不僅僅是電子郵件和用戶名。 –
那麼,你可以做$ _SESSION [「data」] = serialize($ your_data);然後反序列化($ _ SESSION [「data」]); – Lorenz
所以,$ _SESSION [「users」] = json_encode($ users);在成功登錄腳本上。和json_decode($ _ SESSION [「users」]);在其他頁面? –
會議。 definetly。在所有頁面上使用session_start();
,以便在登錄頁面上激活會話,只聲明$_SESSION['username'];
,並且您可以隨處使用$_SESSION['username'];
。
你好。我認爲你在這裏有四個不同的用戶帳戶 - 如果你堅持只有一個,會很感激。通過允許您累積聲望點,它會讓您受益。請在您的問題中張貼代碼,而不是在單獨的粘貼板上。 – halfer
我只想指出,如果您提出這樣的問題,您的「登錄腳本」可能無法按預期工作,給您帶來一些嚴重的安全問題。 – nietonfir