我創建了一個站點,您需要登錄才能訪問不同的頁面,沒有什麼特別的。 爲了讓用戶登錄,我將會話設置在每個頁面的頂部。
我的問題是,我不想在每個頁面頂部設置不同的會話變量。我寧願有一個功能,我可以打電話來設置它們。另外,我不需要每個頁面上的所有變量,所以我希望函數接受可選參數(如電子郵件或未在每個頁面上使用的個人資料圖片)。
我把這個在每個頁面的頂部:
<?php
require_once 'session.php';
confirm_logged_in();
$username = $_SESSION['username'];
$email = $_SESSION['email'];
$picture = $_SESSION['picture'];
$group = $_SESSION['group'];
?>
我想使它更像這一點,並能夠設置只有我需要的變量:
<?php
require_once 'session.php';
confirm_logged_in();
set_variables($username, $email);
?>
的「會議.php'文件是這樣的:
<?php
session_start();
function logged_in(){
return isset($_SESSION['username']);
}
function confirm_logged_in(){
if(!logged_in()){
header('location: start.php');
}
}
?>
我已經嘗試了一些東西,但它只是導致我大量的錯誤。 有人已經這樣做或發現了一個腳本來做這件事嗎?那可能嗎?
請將您所看到的錯誤添加到問題中。 – Ray
那麼錯誤是什麼呢? – Shades88
您是否真的需要將'$ _SESSION'中的變量提取到同名的全局或本地變量中?爲什麼不直接使用會話?它作爲超全球性質的性質意味着它可以在所有範圍內使用。而不是'$ email = $ _SESSION ['email']; echo $ email;'爲什麼不直接使用會話'echo $ _SESSION ['email'];'這完全迴避了你加載的本地變量的問題。此外,它可以節省您將更改同步到全局變量$ _SESSION中的麻煩。 –