gpt4 book ai didi

php - 从 PHP 执行 javascript 函数并返回响应

转载 作者:行者123 更新时间:2023-12-02 19:30:53 26 4
gpt4 key购买 nike

我试图通过将变量发送到我的 JavaScript 函数来从 PHP 脚本执行 JavaScript 函数,然后它将返回响应。我希望 PHP 脚本只回显来自 javascript 函数的响应,因此当客户端查看我的 php 文件的源代码时,他只能看到来自 javascript 函数的响应,而不是 javascript 源代码。

例如,

我有一个名为 validate() 的 JavaScript 函数和一个名为 check.php 的 PHP 文件。客户端使用 GET 方法调用该函数,如下所示,

www.myserver.com/check.php?value=test

然后我希望 check.php 将变量 $value 发送到我的 javascript 函数 validate(),以执行以下操作,

响应=验证($值)

然后 JavaScript 将值响应返回到我的 PHP 脚本并将其存储在变量 $response 中,然后它将回显 $response。因此,当我查看源代码时,我只会看到变量answer中的内容。

我找不到简单的方法来做到这一点:S。如果我使用 AJAX,我将需要在 HTML 中使用 div,但重要的是源代码中只显示 $response 的内容?

有人可以指出我应该使用哪些 PHP 函数吗?谢谢!

最佳答案

PHP 通常运行在服务器端,Javascript 通常运行在客户端(在浏览器中)。

在正常模型中,客户端向服务器发出请求,服务器做出响应。在这种情况下,PHP 代码不可能直接“调用”Javascript 函数。

那么您的问题的解决方案是什么?

按优先顺序排列:

  1. 第一个也是最好的选择是重新构建,这样您就不需要从 PHP 中调用 javascript validate() 函数。例如,将 Javascript 逻辑移植到 PHP。

  2. 如果无法移植,请在服务器端运行 Javascript。 Node.js 在 Linux 和 Windows 上的服务器端运行;如果您有 Windows/IIS,更简单的选择是通过 ASP classic 提供 Javascript,是的,它在当前的 Windows 服务器上仍然可用。 PHP 程序可以简单地通过curl 请求本地Javascript 资源;服务器调用逻辑并返回结果。一般情况下,Javascript 不需要在同一服务器上运行。

  3. 最后,如果这不是一个选项,您可以让浏览器代表服务器执行 validate()。 PHP 可以在 javascript 脚本 block 中向浏览器发出验证函数。 PHP 还可以发出需要验证的东西 - 数据包或其他任何东西。然后,浏览器可以对该对象进行 validate(),并通过 AJAX 将消息发送到 PHP 来报告结果。但是,这里存在一个安全问题 - 请记住客户端不在您的控制范围内,因此有人可能会破坏客户端验证逻辑并导致客户端向 PHP 服务器报告错误结果。你不能指望这个。

因此,您需要在事务中嵌入某种数据完整性检查 - 通过某种方式可以确保客户端 JavaScript 未被修改。这会很难。

关于php - 从 PHP 执行 javascript 函数并返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com