データベースの制限された領域のログイン資格情報を評価できる関数を作成しようとしています。
これは私のコードです:
declare function local:check() as xs:string {
let $login := request:get-parameter("username",'')
let $password := request:get-parameter("password",'')
let $user := doc('credentials.xml')/credenziali/utente[./user = $login]
return (
if (not(empty($user))) then concat('staff.xq',$login,' ',$password)
else concat('login_error.xq',$login,' ',$password)
)
};
この関数は次の場所で呼び出されます。
form name="login" method="post" action="{local:check()}"
しかし、正しい認証情報 (credentials.xml ファイルで入手可能) を入力したにもかかわらず、常に「login_error」ページ (つまり、ユーザー オブジェクトが常に空) にリダイレクトされる理由がわかりません。
Credentials.xml には以下が含まれます。
<credenziali>
<utente id="1">
<user>admin</user>
<password>admin</password>
</utente>
</credenziali>
そして、画面のそれぞれの入力テキストボックスに、username=admin と password=admin を設定します。