Php Sleep()不';不要拖延形式诉讼

Php Sleep()不';不要拖延形式诉讼,php,Php,当我点击提交按钮时,我希望延迟3秒,然后重定向。 我的表单将重定向到其他PHP站点 我的代码: <button class="button actionContinue scTrack:unifiedlogin-login-submit" type="submit" id="btnLogin" name="btnLogin" value="Login" pa-marked="1"> Einloggen </button&g

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


为什么它不工作?

因此注释中的基本调试显示,您期望的
$\u POST['submit']
值实际上不存在。这就是为什么当
中的条件不正确时,您的睡眠不起作用

所以下一步是调试为什么没有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');     
    }
?>


如果您在睡眠后执行操作,它是否会在执行操作前等待3秒钟?就像一个简单的回声。为了测试的目的,试着增加它,比如10秒,因为页面加载时间可能会很慢。另外,在代码中添加睡眠时要小心。在某些情况下,它可能很有用,但我们倾向于争取快速的页面加载时间而不延迟。是的,没错,我想把sleep改为
10
,然后放
echo“随便什么”。发生了什么?什么都没有,PHP是服务器端脚本,当它进入浏览器时,所有的东西都在运行。您的脚本告诉服务器等待3秒钟,然后继续,然后在完成所有操作后,它将被推送到浏览器,在那里它只会看到重定向和重定向。如果将其更改为睡眠10秒,服务器处理脚本的时间将更长,但它仍会立即重定向。我想说的是,您可以选择使用带有setTimeout的JavaScript重定向(
window.location.href=“…”
)或元标记(
)。是的,也谢谢您,没有结果。如果我只是在没有任何东西的情况下使用睡眠,访问时的页面延迟访问时的页面延迟?你想让它做什么
sleep()
将完全停止脚本,在这3秒(或任何时间)内不会发生任何事情。如果先单击“提交”按钮,然后重定向我的答案,我希望睡眠。如果这不起作用,你必须详细解释发生了什么事。最好的情况是我不知道发生了什么。。没有什么真的没有什么不同,我认为“如果(isset($\u POST['btnLogin'])”是问题所在?我可以用另一种方式写吗?