我想做什么
我有一个PHP脚本,每次通过我的主javascript通过Ajax函数调用它。使用该功能,变量' userID' (只有一个号码)被发送。每次调用这个Ajax函数时,变量可能都不同,我希望将它们保存到一个名为userBack的数组中,然后将它们保存为会话cookie。
所以,举个例子:
首次运行脚本时,数组为: 1
下次运行脚本时: 14
下次它是: 142 ,依此类推。
问题
但是,似乎我的脚本只保存发送的第一个变量而不添加子序列变量,因此表现得像普通变量而不像数组,我想要它。
PHP
$userBack = array();
array_push($userBack, $_POST['userID']);
$_SESSION["userBack"] = $userBack;
答案 0 :(得分:0)
您的问题是,每次运行代码时都要清除$ userBack数组,而不是将其设置为保存的值。你应该做的是:
$userBack = isset($_SESSION["userBack"]) ? $_SESSION["userBack"] : array();
array_push($userBack, $_POST['userID']);
$_SESSION["userBack"] = $userBack;
如果您使用的是PHP7,则可以将第一行简化为:
$userBack = $_SESSION["userBack"] ?? array();