首页 > 解决方案 > Sleep() 不会延迟表单操作

问题描述

当我点击提交按钮时,我想要延迟 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');     
    }
?>

为什么它不起作用?

标签: php

解决方案


因此,注释中的基本调试表明$_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>

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

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

推荐阅读