0

我正在尝试通过将变量发送到我的 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 函数吗?谢谢!

4

2 回答 2

2

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

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

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

按优先顺序:

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

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

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

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

于 2012-07-17T01:59:18.423 回答
0

你不应该起诉任何功能:P

然而,虽然这是一种看似可怕的验证方式,但您可以执行以下操作:

  • 将 javascript 输出到 HTML 文件。(放在容易找到的地方)
  • 用于fopen在将由 js 函数拾取的 URL 中使用您的参数打开一个 URL。
  • 让您的 PHP 函数解析 HTML 文件(您曾经fopen获取)以获取输出并搜索您想要的特定输出。

但实际上,您应该只在 PHP 脚本本身中进行验证。如果您想更改某些内容,以后使用起来会更安全、更容易、更容易。

于 2012-07-17T01:37:57.493 回答