我有一个php函数,在加载build.php页面并创建$变量时运行。我也有save.php,这是通过script .js中的ajax函数调用(通过POST发送的数据),但我需要在save.php中使用$变量。
有没有一种好方法可以通过ajax发送更多的数据,而不需要在前端看到它?
我想使用$_SESSION变量,这似乎是可行的,但我明白它可能不是完全可靠的,并不总是一个好主意(尽管这可能被夸大了,我正在寻找)。
这是最好的方法吗?或者是否有其他方法可以通过javascript将PHP变量转换为另一个变量,而无需在前端代码中?
会话变量只存在于服务器上,不存在于客户端。为了在浏览器中保存由javascript函数生成的会话变量,您需要以某种方式将其传递给服务器。您可能已经意识到,您无法控制客户端发生的事情。它们几乎可以改变你发送到服务器的任何帖子信息——有一些程序可以很容易地做到这一点。
即使你使用ajax,客户端仍然可以扰乱你的变量。
你可以在发送信息之前尝试加密。
另一方面,如果你想在服务器上运行的两个脚本之间传递变量,你可以使用会话变量来实现。
更新
似乎你正在创建变量在你的第一个脚本,然后有一个javascript函数调用第二个脚本,你需要第二个脚本访问由第一个脚本创建的变量。
在上面的场景中,您可以明确地使用会话变量。这是它们存在的主要原因。允许您在不同的脚本之间传递信息。
第一个PHP脚本
session_start();
logic to create the variable
$_SESSION['myVar'] = $myVar;
rest of the script
Javascript calls second script / does not change the value of the variable
第二个PHP脚本
session_start();
$myVar = $_SESSION['myVar'];
execute second script
如果您正在使用JQuery,那么它就像:
$.post({
url: somurlhere,
data: somedatahere
});