2016-12-04 5 views
0

私は、フォルダに保存されているPDFがテーブルに表示され、ユーザがクリックすると開くことができる、簡単なレポートビューアに取り組んでいます。そのことはうまくいきます。私はまた、ユーザーがそれぞれのフォルダにファイルをアップロードし、後でテーブルに表示することができますアップロード機能があります。また、テーブルのファイル名の前に削除リンクを表示してファイルを削除することもできます。Adminがログインしているがビューア(通常のユーザ)にログインしていないときにPHPでDeleteボタンを有効にするには?

最初は、すべてのことを行うことができるユーザーが1人しかいないことが必要でした。ここでは、ユーザー名が「管理者」の場合にのみ、「削除リンク」および「アップロード」メニューが表示されるようにします。データは分類されておらず、スクリプトベースのソリューションを使用しても問題ないので、データベースを使用する必要はありません。ただし、管理者のみの削除とアップロードを有効にする方法を理解できません。私は以下に添付されて使用していますコード:login.phpすべてのページの前に

<?php session_start(); /* Starts the session */ 

    /* Check Login form submitted */ 
    if(isset($_POST['Submit'])){ 
     /* Define username and associated password array */ 
     $logins = array('reader' => '123456','admin' => '654321','username2' => 'password2'); 


     /* Check and assign submitted Username and Password to new variable */ 
     $Username = isset($_POST['Username']) ? $_POST['Username'] : ''; 
     $Password = isset($_POST['Password']) ? $_POST['Password'] : ''; 

     /* Check Username and Password existence in defined array */ 
     if (isset($logins[$Username]) && $logins[$Username] == $Password){ 
      /* Success: Set session variables and redirect to Protected page */ 
      $_SESSION['UserData']['Username']=$logins[$Username]; 
      header("location:index.php"); 
      exit; 
     } else { 
      /*Unsuccessful attempt: Set error message */ 
      $msg="<span style='color:red'>Invalid Login Details</span>"; 
     } 
    } 
?> 

から

は、我々は、このコードを挿入します。

<?php session_start(); /* Starts the session */ 
if(!isset($_SESSION['UserData']['Username'])){ 
    header("location:login.php"); 
    exit; 
} 
?> 

をそして、これは私たちですテーブルの中でファイルのリストと削除するリンクを表示しています:

foreach($files as $file) 
     { 
        if(isset($_GET['delete'])) 
        { 
        unlink($file); 
        break; 
        //a better approach for deletion will be appreciated 
        } 

      echo'<tr><td><a href="ViewerJS/#.'.$file.'" target="_blank">'.returnFile($file).'</a></td> 
      <td><a href="'.$file.'">Download</a></td> 
      <td><a href="?delete=1">Delete</a></td> 

      </tr>'; 
     } 
+0

あなたのコード 'もし($ _ SESSION [ 'UserDataの'] [ 'ユーザー名'] == '管理者'){エコー "​​Delete";}に基づいて' –

+0

ノート、そのが動作していない...そのが表示されません必要な削除リンクを持つ別のセル.. –

+0

エコー$ _SESSION ['UserData'] ['Username'];私は654321を与えています。これはAdminのパスワードです。 その正確なユーザー名ではありません、笑、これは面白いです:D –

答えて

1

$_SESSION['UserData']['Username']=$logins[$Username];をlogin.phpのに変更したときに機能しました。

最終的にコードの前にif($_SESSION['UserData']['Username'] == 'admin')を追加すると、管理者がサインインしたときにだけ表示したかったのです。みなさんありがとう。

関連する問題