为什么重定向PHP只能得到白色页面?

为什么重定向PHP只能得到白色页面?,php,redirect,Php,Redirect,我正在用PHP开发,需要为不同类型的用户更改页面,所以我这样做: switch ($_SESSION['ruolo']) { case 0: header('Location: ./php/admin/homeAdmin.php'); exit();

我正在用PHP开发,需要为不同类型的用户更改页面,所以我这样做:

switch ($_SESSION['ruolo']) {
                                case 0:
                                    header('Location: ./php/admin/homeAdmin.php');
                                    exit();
                                    break;
                                case 1:
                                    header('Location: ./php/150ore/home150.php');
                                    exit();
                                    break;
                                case 2:
                                    header('Location: ./php/150ore/home150.php');
                                    exit();
                                    break;
                                default:
                                    break;
                            }
但我只得到一张白纸。。。没有任何错误

为什么??我哪里做错了

编辑:

我不喜欢默认情况,我检查过了

这是我想要重定向的页面:

<?php require_once './php/doctype.php'; ?>
<html>  
    <head>
        <meta charset="UTF-8">
    </head>
    <body>

        PROVA!!!
    </body>
</html>

普罗瓦!!!
并且您似乎给出了一个相对的文件路径


另外,正如其他人所指出的,脚本可能由于其他地方的错误而完全失败。查看错误日志

要调试此功能,需要做以下几件事:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
switch ($_SESSION['ruolo']) {
    case 0:
        header('Location: ./php/admin/homeAdmin.php');
        exit();
        break;
    case 1:
        header('Location: ./php/150ore/home150.php');
        exit();
        break;
    case 2:
        header('Location: ./php/150ore/home150.php');
        exit();
        break;
    default:
        var_dump("I'm the default case!"); //If you get this, then your session variable is different to 0, 1 or 2.
        break;
}
现在,在
homeAdmin.php
home150.php
页面的顶部添加:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
看看错误在说什么

根据您最近的编辑,我可以看到您正在使用
require\u once
require
将在给定文件抛出错误时停止执行,尝试将
require\u once
更改为
include\u once
,以检查它是否有效,并共享
doctype.php
文件中的内容。另一项尝试如下:

<?php
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    require_once './php/doctype.php';
?>


white page=>通常表示语法错误。在开关的“默认”大小写中添加“echo'something';”。我相信“默认”已被执行。请手动转到页面。我打赌那页的脚本有错误。或者空白页是当前的页面,您需要为您的用例<代码>默认代码>代码>($ySale[RuoLo ])这看起来不是一个使用交换机/案例的好方法。您应该检查会话是否已设置。另外,为会话数组分配一个变量。“我认为您可能还想去掉出口”-它应该在那里,非常重要。否则,代码可能要继续执行。请选择返回,不是吗?没关系,只要有东西使它停止。我添加了ini\U集,但我什么也看不到。。。我做错什么了吗??然而,我不是默认情况下的…@JoseManuelAbarcaRodríguez只是我添加了一个回声。。如果我删除页面以重定向我获得的…未找到…那么我相信您应该共享您重定向到的页面上的内容。@Teo,您是否可以在切换之前添加“echo$_SESSION['ruolo'];”?告诉我们$_SESSION['ruolo']的内容是什么。@JoseManuelAbarcaRodríguez是0