这是我测试的一个简单脚本:
<?php
require 'dbcon.php';
header("location:http://google.com");
$time1 = time();
for($i=0;$i<=9999999;$i++){
$j += $i * $i * $i * $i;
}
$time2 = time();
$total = $time2-$time1;
mysql_query("insert into test values('$total')");
?>
此脚本大约需要15秒才能执行(因此在我的 test 表中插入了15个脚本),在这些秒之后,该页面也会重定向指定的域。
我的问题是为什么会发生这种情况?
在我的实际代码中,我想将用户重定向到网页然后执行剩余的代码并存储在数据库中,因此用户不必等待很多。怎么做?
UPDATE1:
请回答这个问题:
我想先重定向用户,然后将数据插入mysql。例如,我首先得到用户的IP。然后我想重定向他,然后从他的IP等检测用户国家,然后将信息插入mysql。有可能吗?
UPDATE2:
我希望从另一个具有 curl 扩展名的网站获取用户的国家和地区,然后存储在数据库中。所以需要几秒钟......
答案 0 :(得分:5)
header("Location: ...");
只设置标题,仅此而已。这就是为什么在设置位置标题后应始终exit
或die()
的原因,除非您不知道自己正在做什么。
至于你想要做什么,这是一个坏主意。故意提出15秒的请求只是要求DOS攻击。
答案 1 :(得分:-1)
试试这个:
header("location:http://google.com");
exit;
在调用标题后退出。