[英]How to store data to use across all pages?
嘗試使用登錄名創建項目時遇到一些問題,因為我需要將用戶的數據存儲到變量中,以便可以在所有頁面上使用它。
實際上,登錄名會在模型中調用一個函數,以檢查用戶是否存在,如果存在,它將返回在查詢中獲得的數據給控制器,然后控制器調用require_once(“ example.php”),這使我能夠使用數據在屏幕上打印數據,但是如果我切換頁面,則數據會丟失,因為它沒有被調用,就像這樣(已簡化):
控制者
function example() {
$exampleUser = $_POST['username'];
$examplePass = $_POST['password'];
$example = new example_model();
$exampleResults= $example->do_example($exampleUser, $examplePass);
require_once("example1.php");
}
模型
function do_example($exampleUser, $examplePass) {
$exampleResults = mysqli_fetch_assoc($connection->query("SELECT * FROM users WHERE username = '$exampleUser' AND password = '$examplePass'");
return $exampleResults;
}
查看example1.php
<?php
echo $example['username'];
// RESULTS IN DISPLAYING "ExampleName"
?>
查看example2.php
<?php
echo $example['username'];
// ERROR BECAUSE IT DOESN'T HAVE THE DATA STORED ANYMORE
// AND I DON'T WANT TO CALL A FUNCTION TO GET THE DATA FOR THE USER AGAIN AFTER EACH PAGE CHANGE
?>
我一直在考慮使用$ _SESSION變量來存儲登錄用戶所需的數據,以便可以在所有頁面(主要是其名稱和ID)上使用它,到目前為止,它仍然有效,但是我想知道是否這樣做那是一種好習慣,還是有更好的做法? 還是應該存儲從登錄名獲得的數據,以便可以在所有頁面中使用它們而不會出現問題?
為此,您需要使用php會話
//在所有頁面上發起會話
session_start():
之后,將在啟動seasion的所有頁面上訪問$ _SESSION VARIABLES數組。
要定義變量,請遵循與關聯數組相同的語法:
$_SESSION['name'] = value ;
完成后,破壞會話
session_destroy();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.