PHP 要求使我的页面空白?
PHP Require makes my page blank?
我有一个我创建的报告网站,我正在慢慢地向它添加功能。我刚刚添加了一个应该强制用户登录的部分。它实际上只是为了捕获用户 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
,但它是第一次导致空白页。
我知道我的到期时间设置为上周,我正在尝试强制重新登录。
根据上面 Doug 的建议,我发现了错误。在使用 require
时,我没有使用文件的完整路径,因此无法打开。该行应该是这样的:
require 'Helper/LoginCheck.php';
将以下内容放在脚本中的任何包含或要求之前。
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
我有一个我创建的报告网站,我正在慢慢地向它添加功能。我刚刚添加了一个应该强制用户登录的部分。它实际上只是为了捕获用户 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
,但它是第一次导致空白页。
我知道我的到期时间设置为上周,我正在尝试强制重新登录。
根据上面 Doug 的建议,我发现了错误。在使用 require
时,我没有使用文件的完整路径,因此无法打开。该行应该是这样的:
require 'Helper/LoginCheck.php';
将以下内容放在脚本中的任何包含或要求之前。
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);