Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP会话变量保存为局部变量_Php_Session Variables - Fatal编程技术网

将PHP会话变量保存为局部变量

将PHP会话变量保存为局部变量,php,session-variables,Php,Session Variables,我有一个大问题,我用我的php脚本生成内容。我将一些文本输入传递给生成脚本。此脚本正在将所有文本输入放入$\u会话变量 例如: $_SESSION[text1] = $text1; $_SESSION[text2] = $text2; 等等 在生成的页面中,我将这些$\u SESSION变量放入局部变量 例如: $text1 = $_SESSION['text1'] $text2 = $_SESSION['text2'] 等等 但在我破坏会话(登录/注销系统的原因)后,生成的站点上的所有内容

我有一个大问题,我用我的php脚本生成内容。我将一些
文本输入传递给生成脚本。此脚本正在将所有
文本输入
放入
$\u会话
变量

例如:

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

在生成的页面中,我将这些
$\u SESSION
变量放入局部变量

例如:

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

但在我破坏会话(登录/注销系统的原因)后,生成的站点上的所有内容都消失了。只有HTML标记仍然存在。这意味着对我来说,所有会话变量在销毁会话后都会变为空

我现在的问题是如何在
会话_destroy()之后保存这些会话变量而不丢失它们


Ps:我使用的是MySQL数据库,但我在这方面不是很有天赋。

解决方案可能是将它们存储在MySQL数据库中。 使用PDO连接器在表中插入行:

然后像这样插入:

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

应用程序的上下文是什么

会话变量在会话被销毁后被销毁,这就是它的工作方式。您可以将所需内容保存在mysql数据库、文件(json格式)、mongodb、memcached和redis中。。。 您还可以对简单和不安全的var使用cookie。 一件非常简单的事情是将其保存到文件中:

file_puts_content('filename.json',json_encode($_SESSION));
要把它拿回来

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

但是使用数据库更好。

您想用这些变量做什么?当然,在您销毁会话并重新加载页面后,变量将是空的。我想“永远”保存它们,这样就不会丢失变量的内容。然后您必须求助于某种数据库,无论是SQL、文件还是noSQL数据库。@Slint7789 Niek van der Maaden是对的。最好的选择是使用数据库。只需要花点时间学习更多的SQL。这并不难理解,而且有很多关于它的好教程。这对我来说是日常使用,通常,您总是使用带有PHP的数据库,所以值得学习:)那么,为什么您首先需要破坏会话?