基本的にここでやろうとしているのは、顧客のログイン詳細を使用してデータベースのテーブルから読み取り、この情報に一致するレコードを取得することです。このテーブルには、「AccountType」という列があり、平均的なユーザーと管理者を区別します。この列が 1 の場合、平均的なユーザーです。この列が 2 の場合、マネージャーです。
これをコードに実装する際に問題が発生しました。以下は、ログイン用のプロセス スクリプトのスニペットです。
<?php
***session_start()
$query = mysql_query("SELECT * FROM accounts WHERE username='$username' and password='$password'", $db) or die ("Query failed with error: ".mysql_error());
$count=@mysql_num_rows($query);
if(***$count == 1)
{
***$user_row = mysql_fetch_array($result)
$userid = $user_row["userid"];
$_SESSION['userid'] = $userid;
$customername = $user_row["customername"];
$_SESSION['customername'] = $customername;
$AccountType = $user_row["accounttype"];
if ($AccountType == 2)
{
$_SESSION['manager'] = $AccountType;
}
これに応じて、すべてのページに含まれるログインスクリプトをチェックすると、アカウントの種類に応じてナビゲーションに特定のリンクが表示されます。ユーザーの場合は通常のリンクにアクセスできますが、マネージャーの場合はアクセスできます以下は、管理機能のコード スニペットです。
***session_start();
if (***isset($_SESSION['userid']))
{
$employeeid = $_SESSION['userid'];
$firstname = $_SESSION['customername'];
if (***isset($_SESSION['manager']))
{
$User_Options .='Manager links go here';
}
else
{
$Links .='Normal Links go here';
}
}
これは単なる基本的な切り詰められたバージョンですが、それは私が達成しようとしていることの基礎を提供します. while ループを使用してセッションを上書きしていると推測していますが、これは理解していますが、検索している情報のレコードは 1 つしかありません。ある程度は機能しますが、AccountType が 1 の場合でも、2 のオプションが表示されます。
この問題を解決するために、誰でも私をさらに助けることができますか? ありがとうございました!