簡體   English   中英

如何在多個頁面之間共享 PHP 變量?

[英]How do I share a PHP variable between multiple pages?

想法/目標:

我的計算機上的文本文件中有用戶名和密碼。 索引頁面上的表單允許用戶使用他們的用戶名和密碼登錄。 登錄頁面是 PHP 用來驗證用戶輸入的信息與我在本地文本文件中的信息的地方。 在用戶輸入的信息與我的文本文件信息匹配后,用戶被直接重定向到主頁,在那里顯示他們的姓名和歡迎消息。

問題:

在驗證工作之前的一切。 問題是當我將用戶重定向到 Home.php 時,我無法顯示他們的用戶名。 所有驗證后我將如何顯示他們的用戶名? 無論如何,我可以將他們的用戶名永久存儲在一個可以在我的所有頁面上訪問的變量中嗎?

帶有表單的 Index.php 頁面

使用我在本地文本文件中的信息驗證表單信息的登錄頁面

使用$_SESSION -!

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

您當然想過濾/清理/驗證您的 $_POST 數據,但這超出了本問題的范圍......

只要你調用session_start(); 在使用$_SESSION之前 - $_SESSION數組中的值將跨頁面持續存在,直到用戶關閉瀏覽器。

如果您想在此之前結束會話,例如在注銷按鈕中 --- 使用session_destroy()

您可以啟動會話並將表單值放入 $_SESSION 變量中,該變量將在所有頁面上可用。

// On the page where your form is submitted:
session_start();
$_SESSION['name'] = $_POST['name'];

// On the page where the user is redirected:
session_start();
echo $_SESSION['name'];

請注意,實際上您可能也希望包含一些表單驗證!

我同意@Clément Malet 和@Hammerstein。 會話和/或 cookie。

<?php 
    // always need this
    session_start();

    // set the value
    $_SESSION['username'] = 'Person';
?>

<?php
    //get session data
    echo $_SESSION['username'];

   // output: Person
?>
  1. 在打開 php 標簽后立即在每個頁面上啟動一個 php 會話:

    session_start();

在確定名稱和密碼有效后,在進行重定向之前,添加以下行:

$_SESSION['name'] = $name;

在任何后續頁面上,只需回顯如下內容:

echo "Welcome ".$_SESSION['name'];

使用會話變量

放:

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

得到:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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