2017-07-14 6 views
0

私は作成した報告用のウェブサイトを持っており、徐々に機能を追加しています。私はちょうどそれがユーザーにログインするように強制されている部分を追加しました。それは本当にユーザーのCorpIDをキャプチャするだけです、私はパスワードを保持または記録せず、必須ではありません。PHPは私のページを空白にする必要がありますか?

今、私はログイン部分が働いています。それから私は、ユーザーがログインしていることを確認するためにチェックを実行しようとしているし、強制的にログインしないようにしています。私はアクセス権を持っている管理者ページでしかこれをやっていません。ここで私は今それを持っている方法です:

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); 
     }   
    } 
?> 

UPDATE

ここに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を追加まで正常に動作しています。

私はこのrequireAdminPage.phpに入れると空白のページが表示されます。私はechoを取得しない私はメニューなどを取得しません。

私は間違っていますか? requireを初めて使用したわけではありませんが、初めて空白のページが表示されます。

私は先週に設定した有効期限があることを知っています。再ログインを強制しようとしています。

+5

どこかで致命的なエラーが発生する可能性が最も高いです。 PHPエラーログを確認してください。 – Brad

+0

あなたのmenu.phpコードは何ですか? CheckLogin.phpがきれいに見える –

+1

レスポンスをフラッシュした後にクッキーを設定しています – Mohsen

答えて

1

含まれているまたは必要がある前に、次のスクリプトを挿入します。

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

これは私に私の方法のエラーを示した! – Mike

1

上記のDougの提案を使用して、私はエラーを発見しました。 requireの使用では、ファイルの絶対パスを使用していないため、開くことができませんでした。どのような行を表示する必要があります:

require 'Helper/LoginCheck.php'; 
関連する問題