0
私は、「NT」とそれに続く既存の学生IDの最後の6桁のパスワード(NT123456など)のみを許可するように、パスワードの検証方法を試行しています。 。ユーザーは最初のページに姓とパスワードを入力し、クエリを実行します。レコード数が0より大きい場合は、そこからポータルにリダイレクトされます。そうでない場合は、間違っていると言われますが、それは現在重要ではありません。データベースからのパスワードの生成と検証
私が使用しているフォームはこちらです:
<cfquery name="qry1" datasource="grantme">
SELECT 'NT' + RIGHT(StudentID, 6) AS Passwords, Lname
FROM Classmates
WHERE Passwords = form.password;
</cfquery>
<cfoutput query="qry1">
#qry1.RecordCount#
</cfoutput>
しかし、私は次のようなエラーレポート取得しています:
Error Executing Database Query.
[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
The error occurred in G:\InetPub2\wwwroot\student\A00507999\PortalPage.cfm: line 9
7 :
8 : <body>
9 : <cfquery name="qry1" datasource="grantme">
10 : SELECT 'NT' + RIGHT(StudentID, 6) AS Passwords, Lname
11 : FROM Classmates
VENDORERRORCODE -3010
SQLSTATE 07002
SQL SELECT 'NT' + RIGHT(StudentID, 6) AS Passwords, Lname FROM Classmates WHERE Passwords = form.password;
DATASOURCE grantme
をここにフォーム情報を送信
<cfform name="form" action="PortalPage.cfm">
<cfinput type="Text" name="password" maxlength="8">
<cfinput type="submit" name="submit" value="Submit">
</cfform>
これを解決するにはどうすればよいですか?私はフォーマットを正しくすることができないようですが、ロジックがそこにあるようです。
DBから2つの値を取得していますが、受信するのは1つだけです。 – FDavidov
WHERE句を削除すると値を表示できるので問題はありませんが、WHERE句が必要です。 – shrimppunk
私の言葉がはっきりしていないと思います...あなたは 'パスワード、Lname'を選択しています...何ですか?これらのTWO値を受け取る必要がある変数を指定する必要はありませんか? – FDavidov