PHP标头位置不重定向

时间:2013-03-25 23:12:48

标签: php redirect header

我试图用php添加一个刽子手游戏我得到了整个工作,execpt,如果你用完了猜测,它不会重定向到fail.php。奇怪的是,如果你获胜,那就是重定向。我不知道这是我的quess_letter.php文件:

<?php
ob_start();
$letter = $_POST['letter'];
if (preg_match('/^[a-zA-Z]$/', $letter)) {

    $guesses = intval(substr($_COOKIE['hangman'], 0, 1));

    $word = explode(" ", $_COOKIE['hangman_word']);
    if (!strpos($_COOKIE['hangman_word'], $letter) && $letter != substr($_COOKIE['hangman_word'], 0, 1)) {
        $guesses -= 1;
        if ($guesses == 0) {
            header("location: fail.php");
        }
    }

    $i = 0;
    foreach(str_split($word[0]) as $l) {
        if ($l == $letter) {
            $word[1][$i] = $l;
        }
        $i++;
    }

    $new_cookie = strval($guesses) . " " . substr($_COOKIE['hangman'], 1) . $letter . " ";

    setcookie('hangman', $new_cookie, time() + 3600 * 24);
    setcookie('hangman_word', "$word[0] $word[1]", time() + 3600 * 24);
    if ($word[0] != $word[1]) {
        header("location: index.php");
    } else {
        header("location: win.php");
    }
} else {
    header("location: index.php?error=true");
}

?>

这是整个文件。当$ guesses等于0时,它应该重定向。并且在重定向之前没有打印任何内容。我已经研究过了,没有一个答案有效。有人可以解释什么是错的吗?感谢

1 个答案:

答案 0 :(得分:1)

如果您确定$ guesses将完全达到' 0 '那么

if ($guesses == 0) 
{
header("location: fail.php");
exit(); 
}