2017-03-02 88 views
1

我有一個大問題,我用我的PHP腳本生成內容。我將一些text-input傳遞給我的生成腳本。該腳本將所有text-input設置爲$_SESSION變量。保存PHP會話變量爲局部變量

例如:

$_SESSION[text1] = $text1; 
$_SESSION[text2] = $text2; 

等等...

在生成的頁面我把這些$_SESSION變量,並把他們的局部變量。

例如:

$text1 = $_SESSION['text1'] 
$text2 = $_SESSION['text2'] 

等等...

但之後,我刪除會話(登錄/註銷系統的原因)所有生成的網站上的內容了。只有HTML標籤仍然存在。所以這對我來說意味着所有會話變量在銷燬會話後都變空。

我現在的問題是如何在session_destroy();後保存這些會話變量而不丟失它們?

Ps:我使用MySQL數據庫,但我不那麼有才華。

+0

你想對這些變量做什麼?當你銷燬你的會話並重新加載你的頁面後,變量將是空的。 –

+0

我想永遠保存它們,所以我不會放棄變量的內容。 –

+1

然後,你將不得不求助於SQL,File或noSQL數據庫形式的數據庫。 –

回答

-2

也許嘗試取消設置會話,但只是這下保存登錄信息:

unset($_SESSION['login_session']);

然後你就可以拯救他人的會議。

其他方式是使用cookie保存文本。

$_COOKIE['text1'];

所以,當你摧毀會話你不能破壞餅乾

+0

問題不清楚他想用變量做什麼。 –

0

一個解決辦法是將它們存儲在MySQL數據庫。 使用PDO連接到你的表中插入行:[Doc Here]

並插入這樣的:

INSERT INTO my_table(`var1`,`var2`,`var3`) VALUES($val1,$val2,$val3); 

什麼是應用程序的情況下?

2

會話var在session_destroy後被銷燬,它是如何工作的。你可以在mysql數據庫,文件(json格式),mongodb,memcached,redis中保存你想要的內容...... 你也可以使用cookies來做簡單和非安全的變種。 很簡單的事情是把它保存在一個文件:

file_puts_content('filename.json',json_encode($_SESSION)); 

,並把它找回來

$_SESSION=json_decode(file_gets_content('filename.json'),true); 

但它要好得多與數據庫做到這一點。