0

ユーザーが表示できるものを自分の詳細のみに制限しようとしています。URL バーを介して PHP 変数を渡しているので、自分の情報のみが表示されますが、ID 番号を編集すると、他のユーザーの詳細を表示できますか?

私が現在持っているコードは次のとおりです。

$managerID = preg_replace('#[^0-9]#i', '', $_SESSION["id"]);
$manager = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["manager"]);
$password = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["password"]);

include "../adminscripts/connect_to_mysql.php";
$sql = mysql_query("SELECT * FROM Users WHERE id='$managerID' AND username='$manager' AND password='$password' AND role='Student' LIMIT 1");
$existCount = mysql_num_rows($sql);
if ($existCount == 0) {
header("location: http://www.zuluirminger.com/SchoolAdmin/index.php");
exit();
}
?>

<?php
// Get a list of all items and display them in alphabetically
include "../adminscripts/connect_to_mysql.php";

//Check to see the URL variable exists in the database
$dynamicList = "";
if (isset($_GET['id'])) {
include "../adminscripts/connect_to_mysql.php";
$id = preg_replace('#[^0-9]#i', '', $_GET['id']);

***********************************************************************************
***********************************************************************************

// If the ID does not exist the display this message.
$sql = mysql_query("SELECT * FROM StudentAttendance WHERE StudentID='$id' ORDER BY AttendanceDate DESC");
$productCount = mysql_num_rows($sql);
if ($productCount > 0) {
    while ($row = mysql_fetch_array($sql)) {
        $AttendanceDate = $row["AttendanceDate"];
        $AttendanceStatus = $row["AttendanceStatus"];
        $Notes = $row["Notes"];
        $dynamicList .= '<tr style="font-size:15px;">
  <td>' . $AttendanceDate . '</td>
  <td>' . $AttendanceStatus . '</td>
  <td>' . $Notes . '</td>
</tr>';
    }
} else {
    $AttendanceDate = "nil";
    $AttendanceStatus = "nil";
    $Notes = "nil";
}
} else {
echo "Something is missing which means we can't display this page! Sorry for the inconvenience and please try again later!";
exit();
}
mysql_close();
?>

上記のコードでアスタリスクを配置した場所に、次のifステートメントを配置しようとしました...

if ($id != $managerID) {
    $id = $managerID;
}

しかし、これは機能していないようです... 正しい場所に置いていますか? 私が知る限り、正しい変数を使用しましたか?

どんな助けでも大歓迎です!

4

2 に答える 2

3

ログインしているユーザーと ID が既にあるよう$_SESSION["id"]です$_GET['id']

于 2012-04-19T18:33:25.903 に答える
2

少し考え方を変えるだけでいいのです。ログイン時に、ユーザー ID であるセッション変数を設定し、クエリ文字列の代わりにそれを使用します。または、引き続きクエリ文字列を使用しますが、セッション ユーザー ID に対して検証し、アクセスしようとしている情報であることを確認します。

于 2012-04-19T18:33:33.383 に答える