【问题标题】:Redirecting the page to another html script and execute php script in background将页面重定向到另一个 html 脚本并在后台执行 php 脚本
【发布时间】:2012-12-10 12:14:23
【问题描述】:

我有一个要求,用户需要上传文件并在上传页面后点击提交。点击提交后,一个php脚本在后台运行。我想要的是页面应该被重定向到另一个 PHP 页面,而 script.php 脚本应该在后台执行。

<form action=script.php method='POST'> 

我想要的是 script.php 脚本应该仍然运行并且页面应该被重定向到某个 result.html 页面。有什么想法吗?

【问题讨论】:

  • 为什么要重定向到另一个页面?为什么不用ajax文件上传
  • 不能在 script.php header('location:'sumthng.php');.. 中重定向到其他页面(result.html)。在您完成 php 脚本中的所有操作后...
  • 不,我不能这样做,因为我正在更新数据库中的每个 php 脚本,我希望这些更改反映在 html 页面上。每 10 秒自动刷新一次

标签: php javascript html forms


【解决方案1】:

据我了解您的问题,您需要一个消息队列工具。 将请求保存在 sql 表中或作为文件系统上的作业和 从控制台运行脚本。

否则你会阻止一些网络服务器实例。

类似rabbitmq的东西

一切顺利

【讨论】:

    【解决方案2】:

    可以使用jquery文件上传方式吗?所以当 ajax 上传文件时,你可以在后台 div 中显示其他内容。

    【讨论】:

    • 希望你对jquery文件上传方法有所了解
    • 是的,我有,但问题是有一个 php 页面正在获取所有更新,并从数据库向用户显示 script.php 正在做什么,而不是上传文件, script.php 正在处理许多其他验证和数据库查询。我想要的是,在用户提交文件的那一刻,它应该转到我们显示 script.php 执行更新的那个 php 脚本。还有一件事,script.php 中有许多操作,在每个操作结束时,我们将它们保存到数据库中,以便通过其他 php 脚本显示它
    【解决方案3】:

    你可以做一个header("Location: foo.php");在要运行的脚本之后。如果您的脚本没有输出任何标题,这很好,它会在脚本完成时重定向。

    如果脚本非常耗时,您将需要在提交表单时对 PHP 脚本进行异步调用(可能通过 ajax),然后表单目标可以是您希望重定向到的位置是。

    【讨论】:

    • 是的,脚本很耗时,所以不能使用标题。我想要的是将用户重定向到我显示执行结果的那个 php 脚本。可以通过 AJAX 实现吗?给我一些链接,以便在调用 script.php 的那一刻,它会重定向到结果页面而不会停止自己的执行
    • 您可以让表单操作转到您的重定向页面,并将您的脚本作为单独的文件。有一个 Ajax 调用,它将在您的表单的 onSubmit 或表单提交按钮的 onClick 上运行。希望这会有所帮助。
    【解决方案4】:
    header('location:'sumthng.php');
    

    在你的操作页面中给出这个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多