【问题标题】:Sleep() doesn't delay on form action [closed]Sleep() 不会延迟表单操作 [关闭]
【发布时间】:2018-08-07 22:03:54
【问题描述】:

当我点击提交按钮时,我希望延迟 3 秒,然后进行重定向。 我的表单将重定向到另一个 PHP 站点。

我的代码:

<button
    class="button actionContinue scTrack:unifiedlogin-login-submit"
    type="submit"
    id="btnLogin"
    name="btnLogin"
    value="Login"
    pa-marked="1">
    Einloggen
</button>
</div></div>
<input type="hidden" name="" value="">
</form>

<?php
    if (isset($_POST['submit']))
    {
        sleep(3);
        // AND NOW action;
    }
?>

例子

<?php
    if (isset($_POST['submit']))
    {
        sleep(3);
        // AND NOW action;

        redirect('Location:next page.php');     
    }
?>

为什么它不起作用?

【问题讨论】:

  • 如果你在睡眠之后执行一个动作,它会等待 3 秒再执行这个动作吗?就像一个简单的回声。尝试增加它以进行测试,例如 10 秒,因为页面加载时间可能很慢。另外,在代码中添加睡眠时要小心。在某些情况下它可能很有用,但我们倾向于争取快速的页面加载时间而不会出现延迟。
  • 是的,这就是我想要的
  • 将 sleep 更改为 10 并在它之后放入 echo "whatever";。会发生什么?
  • 没什么,立即重定向
  • PHP 是服务器端脚本,所有内容都在到达浏览器时运行。您的脚本告诉服务器等待 3 秒然后继续,然后一旦一切完成,它将被推送到浏览器,在那里它只看到重定向和重定向。如果您将其更改为休眠 10 秒,服务器将需要更长的时间来处理脚本,但它仍会立即重定向。我想说您的选择是使用带有 setTimeout 的 JavaScript 重定向 (window.location.href = '...') 或元标记 (&lt;meta http-equiv="refresh" content="3;url=...." /&gt;)。

标签: php


【解决方案1】:

因此,cmets 中的基本调试显示您期望的$_POST['submit'] 值实际上不存在。这就是为什么您的睡眠不起作用的原因,因为您的 IF 中的条件不正确。

因此,下一步是调试您没有该 POST 数据的原因。这是因为您没有将其作为表单元素。您将拥有btnLogin,因为这是您在按钮中提供的名称。

name="btnLogin"

您可以测试您当前拥有的名称:

isset($_POST['btnLogin']))

或将按钮中的名称更改为Submit

<button
    class="button actionContinue scTrack:unifiedlogin-login-submit"
    type="submit"
    id="btnLogin"
    name="Submit"
    value="Login"
    pa-marked="1">
    Einloggen
</button>

编辑:根据您在 cmets 中的要求尝试此操作:

<?php
    if (isset($_POST['btnLogin']))
    {
        sleep(3);
        redirect('Location:next page.php');     
    }
?>

【讨论】:

  • 是的,谢谢也没有结果。如果我只是使用睡眠而没有任何访问页面延迟
  • 页面访问延迟?你想让它做什么? sleep() 将完全停止脚本,这 3 秒(或其他)不会发生任何事情。
  • 如果我先点击提交按钮然后重定向,我想睡觉
  • 我已经更新了我的答案。如果这不起作用,您必须详细解释会发生什么。
  • 最好的我不知道会发生什么.. 真的没有什么不同,我认为“if (isset($_POST['btnLogin']))”是问题吗?我可以用其他方式写吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 2013-07-25
相关资源
最近更新 更多