我如何将一个变量从一个php传递到另一个由ajax调用的变量,而不会对前端可见


How can I pass a variable from one php to another that's called by ajax without it being visible to the front end

我有一个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
});