Friday, September 2, 2011

使用 ob_start()来缓存输出


假设要设置cookie或者有html提前输出,但是会导致后面的页面跳转(header()函数
)出现错误。在跳转直接不允许有输出。所以可以在输出的html内容的最前面使用ob_start()来缓存输出,然后在跳转等的函数结束后,使用ob_end_flush()把缓存的内容输出到浏览器上
例如
Ob_start();
session_start();
    $session_id = session_id();
    $_SESSION[$session_id] = $username;
setcookie('website',$session_id,time()+60);
echo "登录成功!!<a href="."\"auth.php\">登录</a>";
    echo "<script>alert('登录成功');</script>";
    echo "<script>window.location.href='"."auth.php';</script>";
    echo "<script>setTimeout('alert("."111)',2000);</script>";
header("refresh:3,url=auth.php");
    ob_end_flush();

No comments:

Post a Comment