Это мой первый вопрос, заданный на этом сайте, поэтому, пожалуйста, несите меня. У меня есть сценарий с другого сайта для проверки скорости подключения к Интернету и добавления if else. Если скорость больше 500, она будет перенаправляться на определенную страницу. По некоторым причинам я не могу заставить его работать. Я добавил ob_start();
перед тегом <html>
, а также добавил ob_end_flush();
после тега </html>
. Я добавил код ниже между тегами тела.my php if statement не работает
$kb=512;
flush();
$time = explode(" ",microtime());
$start = $time[0] + $time[1];
for($x=0;$x<$kb;$x++){
echo str_pad('', 1024, '');
flush();
}
$time = explode(" ",microtime());
$finish = $time[0] + $time[1];
$deltat = $finish - $start;
$intspeed = round($kb/$deltat, 0);
echo $intspeed; //just to check if $intspeed has a value
if ($intspeed > 500) {
header("Location: test.php");
exit();
} else {
header('Location: falcons/index.php');
exit();
}
Перед отправкой пользовательских заголовков вы ничего не можете напечатать на экране (используйте 'echo'). Вы эхом отзываете что-то на экране, а затем отправляете заголовки переадресации. Это проблема. удалите эхо. –
Юмор, 'echo $ intspeed' предотвратит перенаправление –
Я уверен, что буферизация вывода оборачивается вокруг этого ... конечно, только если этот код находится между' ob_start() 'и' ob_end_flush() 'OP говорит, что он использует, а не до или после. – MichaelRushton