首页 > 解决方案 > CSS 属性为何以及如何停止 PHP Header Location X?

问题描述

问题是 PHP Header Location 不起作用。

header('Location: index.php?action=new-game-step-choose-type');

它曾经有效,直到我添加了这 3 种样式。

如果我删除这 3 种样式,该应用程序将再次运行。

CSS 属性是从什么时候开始影响 PHP 的?

我开发了一个网络应用程序。

该应用程序运行良好。

然后,我添加了一些样式:

#faq-page div {
    margin: 5px;
    padding: 5px;
}

#register-form-page div {
    margin: 5px;
    padding: 5px;
}

#login-form-page div {
    margin: 5px;
    padding: 5px;
}

添加这些样式后,该应用程序无法运行。

我看到的警告是:

Warning: Cannot modify header information - headers already sent by (output started at C:\laragon\www\the-aviator-web\menu.php:11) in C:\laragon\www\the-aviator-web\actions\action-new-game.php on line 11

文件中没有什么花哨的menu.php

<a href="index.php?action=main" class="menu">MAIN</a>
|
<?php
if (
    isset($_SESSION['user_id'])
) {

    //

?>
    <a href="index.php?action=new-game" class="menu">NEW GAME</a>
    |
    <a href="index.php?action=join-game" class="menu">JOIN GAME</a>
    |
    <a href="index.php?action=friends" class="menu">FRIENDS</a>
    |
    <a href="index.php?action=logout" class="menu">LOGOUT</a>
<?php

    //

} else {

    //

?>
    <a href="index.php?action=login-form" class="menu">LOGIN</a>
    |
    <a href="index.php?action=register-form" class="menu">REGISTER</a>
<?php

    //

}

//

?>
|
<a href="index.php?action=faq" class="menu">FAQ</a>

文件中没有什么花哨的action-new-game

<?php

if (
    !defined('APP_NAME')
) {
    die;
}

//echo __FILE__;

header('Location: index.php?action=new-game-step-choose-type');

代码应该重定向用户,但它没有,因为 CSS 属性有某种奇怪的影响,并且 php 标头代码停止,它不会被触发。

此外,在我使用这 3 种样式的文件中没有什么特别之处:

<div id="register-form-page" class="color-fff">
...
</div>

我删除了这 3 个 css 属性中的每一个,并将它们放在正在使用它们的文件中,并且代码再次正常工作:

<style>
    #register-form-page div {
        margin: 5px;
        padding: 5px;
    }
</style>

<div id="register-form-page" class="color-fff">
...
</div>

发生了什么,为什么?

标签: phpcss

解决方案


推荐阅读