0

標準のhtmlフォームからaspページにフォーム値を渡すことはできますが、手動で渡すことはできません。これはASPクラシックの奇妙な点ですか?状況を概説するために、私は次の標準形を持っています:

<form name="login" id="login" method="post" action="login_process.asp">
<input name="userName" type="text" size="30" maxlength="100" />
<input name="password" type="password" size="30" maxlength="100" />
<input name="Submit" type="submit" class="btn" value="Login" />
</form>

受信側(login_process.asp)には、次のものがあります。

if Request.Form("Username") <> "" and Request.Form("Password") <> "" then
' do stuff here

奇妙なことに、このフォームは何年にもわたって使用されており、実際に機能します。しかし、login_process.aspに手動で値を渡そうとすると、値が正しく渡されません。

www.zzz.com/login_process.asp?username=some_user&password=some_password

login_process.aspにいくつかのチェックを追加して、次のように処理される前に送信から変数をプルできるかどうかを確認しました。

myUsername = request.form("Username")
myPassword = request.form("Password")
response.write "user=" & myUsername
response.write "pass=" & myPassword

そして私が得ているのは

user=pass=

したがって、明らかにデータは渡されていません。しかし、なぜ?私は何を見落としていますか?フォームデータの受け渡しは基本的なものなので、何が得られますか?

どんな洞察もありがたいです!

4

2 に答える 2

3

クエリ文字列でフォームを渡す場合はフォームを使用しなくなったため、Request.Formは機能しません。代わりにRequest.QueryStringを使用する必要があります。

詳細はこちら

于 2012-11-08T19:20:04.097 に答える
1

「Request.Form」を使用して、フォーム フィールド データを他のページに取得できます。このためには、以下のコードを試してください:

<form name="login" id="login" method="post" action="login_process.asp">
<input name="userName" type="text" size="30" maxlength="100" />
<input name="password" type="password" size="30" maxlength="100" />
<input name="Submit" type="submit" class="btn" value="Login" />
</form>

login.process.asp ページでフォーム データを取得すると、次のようになります。

<%  Response.Write(Request.Form("userName"))   %>

userName 値が表示されます

于 2016-12-14T07:27:47.727 に答える