【发布时间】:2013-05-31 18:54:24
【问题描述】:
我有这个表格:
<form method="post" action="secret.php">
<label for="pw">Password: </label><input type="password" name="pw" id="pw" />
</form>
这是secret.php:
<?php
if(isset($_POST["pw"])) {
if($_POST["pw"] == "hello") {
echo("<strong>Good pw.</strong><br />");
} else {
echo("<strong>Bad pw.</strong><br />");
echo("<a href=\"form.php\">Back</a>");
sleep(5);
}
} else {
header("Location: /tut/first/form.php");
}
?>
如果密码错误,它会在显示 Bad pw 之前休眠。当我提交表单时,它在表单页面上休眠 5 秒,然后更改页面并显示 Bad pw。为什么?
【问题讨论】:
-
sleep()只是将当前线程的执行延迟到您告诉它的时间。在当前请求完成之前,不会将输出发送到浏览器。我猜你可以使用输出缓冲... -
你为什么要睡觉?上面的代码可能是解决问题的有效方法,也许只是不能解决您的问题,那么您打算通过 sleep 解决什么问题?