Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无数据库交互的动态状态更新_Php_Wordpress_Codeigniter - Fatal编程技术网

Php 无数据库交互的动态状态更新

Php 无数据库交互的动态状态更新,php,wordpress,codeigniter,Php,Wordpress,Codeigniter,我正在使用一个显示系统创建的实时状态/阶段的系统 示例-:如果我填写托管表单,那么在我的表单上应该显示系统的状态。如在进度条中创建域、托管文件等。我想在不使用数据库的情况下实现这一点 注意:所有操作都将在不同的系统上执行,而我的托管表单位于不同的系统上 障碍:可以同时填写多个表格 我所尝试的 将步骤写入数据库并从中读取 不要将curl post指向特定的函数。但在这种情况下,我必须使用DB 我正在寻找一种不需要db交互的方式,并且在填写表单后可以动态查看状态。有1种解决方案: 使用AJAX从服务

我正在使用一个显示系统创建的实时状态/阶段的系统

示例-:如果我填写托管表单,那么在我的表单上应该显示系统的状态。如在进度条中创建域、托管文件等。我想在不使用数据库的情况下实现这一点

注意:所有操作都将在不同的系统上执行,而我的托管表单位于不同的系统上

障碍:可以同时填写多个表格

我所尝试的

  • 将步骤写入数据库并从中读取
  • 不要将curl post指向特定的函数。但在这种情况下,我必须使用DB

  • 我正在寻找一种不需要db交互的方式,并且在填写表单后可以动态查看状态。

    有1种解决方案:

  • 使用AJAX从服务器发送和接收信息,该服务器安装了带有API的软件

  • 我想这就是你想要做的。

    请随意纠正我对这个问题的理解,但我现在是这样看的

  • 您有一个具有多阶段表单的网站。所以用户先填充第一个,然后发送,然后获取下一个要填充的
  • 您还有一个web服务器,可能运行PHP,用于处理用户交互。因此,每当用户填写表单时,服务器应用程序都会继续填写表单,并为用户提供下一个表单
  • 此外,PHP应用程序根据用户提供的信息向多个外部服务器和服务下订单
  • 无论何时,您都希望显示来自外部服务的流程信息
  • 最后,如果存在一个较轻的数据库解决方案,您不想使用一个非常沉重的数据库解决方案
  • 如果到目前为止我对事实的了解是正确的,那么可能会有一个合适的解决方案来帮助你

    首先,值得一提的是。其数据存储默认为平面文件,可能适合也可能不适合您的使用。然而,它几乎不需要配置或设置,并且提供了持久性存储,因此在我看来,它是迄今为止最简单的选择

    请注意,如果要存储的信息量非常小,则可以完全绕过应用程序数据存储并坚持使用。阅读表单提交,在PHP过程中更新,并发送相应的更新cookie作为响应的一部分。您可以对数据进行加密,以使其更难被用户更改

    最后,还有一个叫做缓存的选项。在使用PHP时,有多种技术可以实现这一点。例如:和。它们将信息存储在RAM中,RAM的大小显然有所缩小,因为数据基本上可以在任何给定的时间消失——不过,您可以控制它

    无论选择何种数据存储,总体思路如下:

    • 当用户第一次与您的服务交互时,创建一个会话标识符和一个适当的cookie,以便稍后识别该用户
    • 当用户填写并发送第一个表单时,读取信息并将其存储在缓存或cookie中。在缓存中存储和读取信息时,请使用用户使用的会话标识符为其添加前缀或命名空间。这样,在任何给定时间都可以有多个用户使用该服务!完成后,发送第二张要填写的表格
    • 当用户最终发送第二个表单时,从缓存或cookie中读取提供给第一个表单的信息。现在,如果信息丢失,则填充过程中会出现错误(或者缓存因时间段过长或cookie过期时间而无效-您也需要考虑这些因素)
    • 只要事情进展顺利,就从表格中收集信息。只要您有足够的信息可以这样做,就向外部服务发出一个请求,以使事情真正发生
    • 现在,最后。您可以从客户端定期执行ajax请求。因此,您不仅会收到发送的表单,还会偶尔收到“流程进展如何?”的查询。现在,无论何时从浏览器收到这样的请求,都可以通过会话标识符识别用户,并从PHP应用程序调用外部服务,请求任何类型的状态。然后,您只需将信息转发到一直在等待答案的浏览器
    请注意,要做到这一点,您可能必须将服务特定信息存储在缓存中


    然而,这种设置有效地使您能够控制PHP应用程序中的数据流,而不会暴露其背后的服务。它也足够轻,可以开发,因为它不需要额外的外部软件来进行短期数据存储。

    你确定你不仅仅是在寻找ajax吗?@adeneo no。我不是在寻找ajax。因为会有一个反向通信。我正在控制其他系统,我想在页面上显示这些系统的状态。WebSocket似乎适合您的问题。假设WebSocket在Wordpress中有点麻烦,您需要的可能是ajax,您只需以正确的方式使用它。永远不要忘了您的用户正在查看浏览器客户端。如果客户端未启动交换,则无法将信息发送到此客户端。因此,Ajax(异步JavaScript和XML)允许您的客户机询问“状态如何”,然后服务器返回客户机可以显示的答案。或者你也可以按照AdrienXL的建议使用WebSocket:但这基本上是以不同的方式实现的。