【问题标题】:PHP Require makes my page blank?PHP Require 使我的页面空白?
【发布时间】:2017-07-14 18:37:35
【问题描述】:

我创建了一个报告网站,我正在慢慢地向它添加功能。我刚刚添加了一个应该强制用户登录的部分。这实际上只是为了捕获用户的 CorpID,我不保留或记录密码,这不是必需的。

现在我的登录部分正在工作。然后我尝试运行检查以确保用户已登录,如果没有则强制他们登录。我现在只在管理页面上执行此操作,只有我可以访问。这是我现在得到它的方法:

AdminPage.php:

<body>
    <?php
        require 'CheckLogin.php';
        include 'Menu.php';
    ?>

页面的其他代码

CheckLogin.php:

<?php
    $Expiration = time() - (60*60*24*7);
    echo "You made it to here!";
    if(!isset($_COOKIE['UserName']))
    {
        if(isset($_POST['UserName']))
        {
            setcookie("UserName",$_POST['UserName'],$Expiration);
        }
        else   
        {
            echo "<script>location.href='LoginForm.php'</script>";
        }
    }
    else
    {
        if(isset($_POST['UserName']))
        {
            setcookie("UserName",$_POST['UserName'],$Expiration);
        }
        else
        {
            setcookie("UserName",$_COOKIE['UserName'],$Expiration);
        }        
    }
?>

更新

这里是 Menu.php

<?php
    $AdminUsers = include 'AdminUsernames.php';
    if(isset($_COOKIE['UserName']) && in_array($_COOKIE['UserName'],$AdminUsers,TRUE))
    {
        $user = 'Admin';
    }
    else
    {
        $user = 'User';
    }
    //echo "<BR>"; print_r($_COOKIE['UserName']);
    //echo "<BR>"; print_r($AdminUsers);
?>
<div class="menu-wrap">
    <nav class="menu">
        <ul class="clearfix" id="menu">
            <li><a href="index.php">Home</a></li>
            <li><a href="AdvancedSearch.php?PageName=AdvancedSearch">Report Builder</a></li>
            <li><a href="OPR Reports.php">OPCEN Reports</a>
                <ul class="sub-menu">
                    <li><a href="ReportPage.php?PageName=OPR_COEI">New COEI OPR Report</a></li>
                    <li><a href="ReportPage.php?PageName=OPR_OSP">New OSP OPR Report</a></li>                    
                    <li><a href="ReportPage.php?PageName=EOJ">EOJ Report</a></li>
                    <li><a href="MaterialTrackingReport.php?PageName=MaterialTracking">Material Tracking</a></li>
                    <li><a href="ReportPage.php?PageName=VendorMaterial">Vendor Material Tracking</a></li>
                    <li><a href="http://mafinfwwapv01/Reports_MDAT/Pages/Report.aspx?ItemPath=/PMDB/CAF2 Tracker">CAF2 Tracker</a></li>
                    <li><a href="JIMReport.php?PageName=JIMReport">JIM Report</a></li>
                </ul>
            </li>
            <li><a href="#">CAFII Reports</a>
                <ul class="sub-menu">
                    <li class="minHeight"><a href="ReportPage.php?PageName=MaterialReceived">Material Received Job Not Started</a></li>
                    <li class="minHeight"><a href="ReportPage.php?PageName=CAF2Tracker">CAF2 Tracker New Test</a></li>
                    <?php 
                        include 'DBConn.php';
                        $data = $conn->prepare('SELECT Id, QName, SSRSName from pmdb.QDefs where QSrc = 2 AND IsActive = 1 order by QName');
                        $data->execute();
                        $result = $data->fetchAll(PDO::FETCH_ASSOC);
                        foreach ($result as $q)
                        {
                            echo '<li class="minHeight"><a href="http://mafinfwwapv01/Reports_MDAT/Pages/Report.aspx?ItemPath=/PMDB/' . str_replace(' ', '+', $q['SSRSName']) . '" target="_blank">' . $q['QName'] . '</a></li>';
                        }
                    ?>
                </ul>
            </li>
            <li><a href="#">Invoicing/Closing</a>
                <ul class="sub-menu">
                    <li><a href="ReportPage.php?PageName=NonVarassetInvoices">Non-Varasset Invoices</a></li>
                </ul>
            </li>
            <li><a href="#">ENG Reports</a>
                <ul class="sub-menu">
                    <li><a href="ReportPage.php?PageName=ApprovedProjects">Approved Projects</a></li>
                    <li><a href="ReportPage.php?PageName=ApprovedProjects_PrevDay">Approved Projects Previous Day</a></li>
                    <li><a href="ReportPage.php?PageName=M6Action">M6Action</a></li>
                </ul>
            </li>
            <?php
                if($user == 'Admin')
                {
                    include 'AdminMenu.php';
                }
            ?>
        </ul>
    </nav>
</div>

它实际上只是一个标准菜单,在我为CheckLogin.php 页面添加require 之前一直运行良好。

当我在AdminPage.php 中有这个require 时,我得到的只是一个空白页。我没有得到echo 我没有得到菜单或任何东西。

我做错了什么?这不是我第一次使用require,但这是第一次导致空白页。

我知道我将过期设置为上周,我正在尝试强制重新登录。

【问题讨论】:

  • 某处很可能存在致命错误。检查您的 PHP 错误日志。
  • 显示你的 menu.php 代码是什么。 CheckLogin.php 看起来不错
  • 您在刷新响应后设置 cookie
  • 在文件的最顶部添加 error_reporting(E_ALL); 但如果我不得不猜测我会说您的问题正如 Mohsen 所描述的那样:您正在尝试在刷新页面后设置 cookie 已经开始显示数据。

标签: php require


【解决方案1】:

在任何包含或要求之前将以下内容放入您的脚本中。

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

【讨论】:

    【解决方案2】:

    使用上面 Doug 的建议,我发现了错误。在使用require 时,我没有使用文件的完整路径,因此无法打开它。那条线应该是这样的:

    require 'Helper/LoginCheck.php';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-27
      • 2017-05-23
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多