如何将一个变量从一个php传递给另一个由ajax调用的变量,而不会让前端看到它

时间:2011-09-20 19:19:32

标签: php ajax session variables

我有一个php函数,它在加载build.php页面时运行并创建一个$变量。我也有save.php,它通过scripts.js中的ajax函数调用(通过POST发送数据),但我需要在save.php中使用$ variable。

有没有一种很好的方法可以通过ajax发送更多数据,而不会在前端看到它?

我想过为这个使用一个$ _SESSION变量,看起来它会起作用,但我知道它可能不完全可靠并且并不总是一个好主意(虽然这可能被夸大了where I was looking

这是最好的方法吗?或者是否有其他方法可以通过javascript将PHP变量转换为另一个,而不是在前端代码中?

2 个答案:

答案 0 :(得分:0)

如果您使用的是JQuery,它就像以下一样简单:

$.post({
   url: somurlhere,
   data: somedatahere
});

答案 1 :(得分:0)

会话变量仅存在于服务器上,而不存在于客户端上。为了保存由浏览器中的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

我希望这是有道理的。