【发布时间】: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 = '...') 或元标记 (<meta http-equiv="refresh" content="3;url=...." />)。
标签: php