无法控制用户在php中可以看到的内容?

时间:2015-04-24 10:40:20

标签: php forms action

我想控制用户在我的系统中可以看到的内容。一个人告诉我,我应该检查用户ID是否与讲师ID匹配。讲师应该只看到他们自己的数据,而不是任何其他人的讲师。我试过但现在它不起作用。

我也遇到了这些错误:

  

注意:未定义的索引:userID in   第5行的C:\ XAMPP \ htdocs \ statistics \ lecturer.php

     

注意:未定义的索引:lecID in   第6行的C:\ XAMPP \ htdocs \ statistics \ lecturer.php

     

致命错误:调用未定义的函数mysql_fecth_row()   第24行的C:\ XAMPP \ htdocs \ statistics \ lecturer.php

https://stackoverflow.com/questions/29841797/how-can-i-make-the-user-evaluation-scores-private-in-php

我也测试了查询,我得到了:

enter image description here

我认为这有点奇怪。我有桌面用户,用户名,用户名和类型,以及讲师ID和讲师姓名的讲师表。

 include 'connect.php';

   $userID=mysql_real_escape_string($_POST['userID']);
   $lecID=mysql_real_escape_string($_POST['lecID']);
   $year = mysql_real_escape_string($_POST['year']);
   $lecturer = mysql_real_escape_string($_POST['lecturer']); // Don't forget to handle the SQL Injections ...
   $years     = array(
      2005,
      2006,
      2007
   );
  $lecturers = array(
     'dimopoulos',
     'lagkas',
     'kehagias',
     'chrysochoou'
  );

 if(isset($_POST['submit'])){
       if($userID==$lecID){
         $check=("SELECT users.uid,lecturer.lec_id FROM users,lecturer");
          $row=mysql_fecth_row($check);

        if($row[0]==$lecturer){

            if (in_array($lecturer, $lecturers) && in_array($year, $years)) {

                 $sql = "SELECT unit_name,a1,a2,a3,l1,l2,l3,l4,l5,l6,l7,lavg,r1,r2,u1,u2,u3 FROM $lecturer WHERE year=$year";
               $result = mysql_query($sql);
        }

        else {
            echo "No data found";
        }


      }
    }
 }


    ?>
  <html>
  <head>
  <link rel="stylesheet" type="text/css" href="../../statistics/style.css">
  </head>
  <body>
     <div id="container">
      <table id="table" width="900" border="1" cellspacing="1">
    <tr>
    <td>Unit Name</td>
    <td>A1 </td>
    <td>A2 </td>
    <td>A3 </td>
    <td>L1 </td>
    <td>L2 </td>
    <td>L3 </td>
    <td>L4 </td>
    <td>L5 </td>
    <td>L6 </td>
    <td>L7 </td>
    <td>LAVG </td>
    <td>R1 </td>
    <td>R2 </td>
    <td>U1 </td>
    <td>U2 </td>
    <td>U3 </td>


</tr>

<?php
    while($unit=mysql_fetch_assoc($result)){
        echo "<tr>";
        echo "<td>".$unit['unit_name']."</td>";
        echo "<td>".$unit['a1']."</td>";
        echo "<td>".$unit['a2']."</td>";
        echo "<td>".$unit['a3']."</td>";
        echo "<td>".$unit['l1']."</td>";
        echo "<td>".$unit['l2']."</td>";
        echo "<td>".$unit['l3']."</td>";
        echo "<td>".$unit['l4']."</td>";
        echo "<td>".$unit['l5']."</td>";
        echo "<td>".$unit['l6']."</td>";
        echo "<td>".$unit['l7']."</td>";
        echo "<td>".$unit['lavg']."</td>";
        echo "<td>".$unit['r1']."</td>";
        echo "<td>".$unit['r2']."</td>";
        echo "<td>".$unit['u1']."</td>";
        echo "<td>".$unit['u2']."</td>";
        echo "<td>".$unit['u3']."</td>";
        echo "</tr>";    
    }
?>
</table>
</div>

2 个答案:

答案 0 :(得分:1)

使用php Session在登录后存储用户信息,然后根据它们显示/隐藏数据。

见文件 - PHP SESSION

答案 1 :(得分:1)

嗯,首先(正如您的错误消息所示)mysql_fecth_row不是PHP函数。那里有一个拼写错误 - 它应该是mysql_fetch_row