jQueryとPHPを使用して認証システムを実装しようとしています。すべてのphp作業は、コントローラーおよびデータハンドラークラスで行われます。.htmlファイル内にphpコードはありません。.htmlファイルのすべての値は、phpサーバーからのデータを要求するjQueryを介してレンダリングされます。だから私がやろうとしているのは:
- ユーザーがログインボタンをクリックすると、jQueryはコントローラークラスのauthenticate()メソッドを呼び出し、ユーザーが正しいかどうかを確認します。正しい場合は、セッションを開始し、セッションにuser_idを設定します。後でアクセスでき、userIdをjQueryクライアントに再度返します。
- その後、すべてがうまくいけば、jQueryでそれをhtmlファイルにリダイレクトします。htmlファイルで、
<script>
他の権限を処理するタグからjQueryを呼び出します。ただし、このjQueryは(authenticate()
前述の同じクラスのメソッドから)メソッドgetPermissionStringにアクセスするため、authenticateメソッドで設定されたセッション値を取得する必要があります。
問題:
内部のセッション値を取得しようとすると、次のようにgetPermissionString()
なります。
注意:未定義の変数:_SESSION
2番目の方法でセッションが登録されているかどうかを確認しようとしましたが、登録されていないようです。これが私のPHPコードです。
何か案が?ありがとう。
public function authenticate($login, $password)
{
$result = $this->userDataHandler->authenticateUser($login, $password);
if(is_numeric($result) && $result != 0)
{
session_start();
$_SESSION["uid"] = $result;
if(isset($_SESSION["uid"]))
{
echo "registered";
$userId = $_SESSION["uid"];
}
else
{
echo "not registered";
}
echo $result;
}
else
{
echo 0;
}
}
public function getPermissionString()
{
if(isset($_SESSION["uid"]))
{
echo "registered";
$userId = $_SESSION["uid"];
}
else
{
echo "not registered";
}
}