簡體   English   中英

在3個PHP頁面之間傳遞變量

[英]Carrying Variables Between 3 PHP Pages

我正在創建一組3頁的頁面,每個頁面都有一個下拉菜單。 前一個下拉菜單中的值將填充下一個下拉菜單。 我了解我必須使用會話變量將每個下拉菜單的值保存到以后的頁面中。 作為一個簡單的測試,我回顯這些變量以查看它們是否已被繼承-這就是問題所在。

我有三個不同的文件:choose_cc.php,choice_uni.php和choose_major.phpchoose_cc.php中dropdowm菜單中的值會在choose_uni.php中得到回顯,但是choose_cc.php中的值不會被帶入choice_major.php-盡管我將其存儲到會話變量中。

頁面的流程是這樣的;

choice_cc.php-> choice_uni.php-> choice_major.php每個php文件都有自己的形式。 問題出在我嘗試從choose_cc.php調用值到choose_major.php時,我遇到了問題。

choice_cc.php上表單的名稱為choose_cc choice_uni.php上表單的名稱為choose_uni

因此,例如,在choose_uni.php中,我從上一頁的下拉菜單(choose_cc.php)中檢索值,如下所示:$ _SESSION ['choose_cc'] = trim($ _ GET ['choose_cc']); //從上一頁獲取抄送$ user_cc = $ _SESSION ['choose_cc']; 回聲$ user_cc;

當我像上面一樣回顯它時,它就起作用了! 好的,完美!

但是,當我進入choose_major.php時,我嘗試再次從表單中檢索該值,但無濟於事。

echo $_SESSION['choose_uni']; //this works
echo $_SESSION['choose_cc']; //this doesn't work

我已經確保在每個頁面的開頭都存儲要執行的session_start()

請幫幫我! 這讓我發瘋!

使用以下命令創建一個新的“ see.php”:

session_start(); 
print_r($_SESSION);

並在每個choose_cc.php,choice_uni.php和choose_major.php之后執行它,以查看運行程序后的會話。

就這么簡單:

a)添加session_start(); 在所有相關頁面的開頭。 如果您在空格之前添加空格,甚至換行,有時也會發生一些奇怪的事情。 因此,請確保它是腳本中的第一件事。

<?php
session_start();
?>

b)如果需要,檢查要保存到會話中的變量是否不為Empty(); 這樣,您可以確保會話變量包含某些內容,除非您當然希望明確為空。

c)然后加載會話變量。 您可以使用var_dump()臨時檢查它;

<?php
session_start();
if (!empty(trim($_GET['choose_cc'])))
{
    $_SESSION['choose_cc'] = $_GET['choose_cc'];
}
var_dump($_SESSION['choose_cc']);
?>

暫無
暫無

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

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