簡體   English   中英

如何存儲要在所有頁面上使用的數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM