- 締切済み
ASPの初歩的な質問です
ASPは全く初心者です。これから始めようと思っています。 初歩的な質問で申し訳ないのですが、テキスト本に載っているサンプルコードの内、ブラウザで表示されるものとされないものがあり、原因がよくわかりません。IISの設定なのかと思い、色々と調べていましたが全くわかりません。原因を教えてください! 【表示されるコード例】 <%@ Language=VBScript %> <html> <head> <title>Hello</title> </head> <body> <% '文字列を表示します。 Response.Write "Hello" %> 文字列を表示します。 <% = "Hello" %> </body> </html> 【表示されない(エラー)コード例】 <% StrText=Request.Form("text1") %> <html> <head> <title>フォームの入力値を受け取る</title> </head> <body> <% Response.Write "入力された値:" & StrText %> <form method="post" action="form.asp"> <input type="text" name="text1" > <input type="submit" value="送信" > </form> </body> </html>
- みんなの回答 (9)
- 専門家の回答
みんなの回答
- tasokarewa
- ベストアンサー率76% (13/17)
Responseオブジェクトは正常に処理されており、 Requestオブジェクトの参照なりでエラーが発生しているようですね。 通常、「表示されない(エラー)コード例」の通りにすれば、 正常に処理されます。 PCにPHPなどをインストールされたりしておりませんか? 一度IISを再インストールされることをお勧めします。
- ryoukun
- ベストアンサー率38% (16/42)
しばらく、来れなくてすみません。 その後どうでしょうか? 私の方は、特に新しい情報の無かったのです。申し訳ない。 とりあえず、エラーを切り分けてみませんか? 2つのコードを比較して、NGの方だけで使われている機能として、 (1)Request.Formを使用している。 (2)変数を使用している。 (3)変数の内容をResponse.Writeしている。 ただ、#3の補足から判断すると、(3)は問題無さそうなので、 (1)と(2)を切り分けるために、(1)の記述をやめて、 単純に変数に文字定数を代入する分を書いて少し絞りませんか?
- 11zep
- ベストアンサー率36% (48/133)
確認ですがASPがエラーになると行番号が表示されたと思いますが表示されていませんか? 単に「表示されません」と出る場合、入力されたアドレスが間違っている様な気がします。確認してみて下さい。 あと、関係ないかもしれませんがPROXYを使用している環境でアドレスに「localhost」を指定するとPROXYサーバーへアクセスし同じ様な症状になった記憶があります。でも表示できるページもあるとの事なのでこの可能性は低そうですね。 早く解決できればいいですね。
補足
ご回答ありがとうございます。 エラー発生時にVS.netでデバッグしてみると、 If Response.Buffer Then Response.Clear Response.Status = "500 Internal Server Error" Response.ContentType = "text/html" Response.Expires = 0 End If という箇所で、「不明な例外」と表示されています。 ちなみに、proxyは使用していないので問題なさそうです。 会社のマシンなので、他の開発環境も色々と入っている為に 悪さをしているような気がしてきました。
- ryoukun
- ベストアンサー率38% (16/42)
ん~????? まだ、エラーに成るんですよね? 今、自分のマシンにIISインストールして試したけど、 「入力された値:」の後は表示されないけど、 エラーには成らないんですよ。 ちなみに、下のコードでは、上手く出ました。 <%@ Language=VBScript %> <% StrText=Request("text1") %> <html> <head> <title>フォームの入力値を受け取る</title> </head> <body> <% Response.Write "入力された値:" & StrText %> <form method="get" action="form.asp"> <input type="text" name="text1" > <input type="submit" value="送信" > </form> </body> </html> このコードも動かないとすると、どこを疑えば良いのか? ちなみに、試した環境は、 WinXP Pro sp2 + IIS5.1 です。 IISの設定は、インストールしたそのままです。 今日は、この後出かけるので、ここまでです。 環境など書いておいていただければ、明日以降もう一度調べてみますよ。
補足
色々とありがとうございます。 ryoukunさんのコードで再度試して見ましたが やはりダメです。。。 環境ですが、ryoukunさんと同じWinXP Pro sp2 + IIS5.1 です。
- ryoukun
- ベストアンサー率38% (16/42)
参りましたね。 まさかと思うけど、 <% Dim StrText StrText=Request.Form("text1") %> にしたらどう?
補足
ありがとうございます。 うーん。。。試してみたけどやっぱ駄目ですね。 会社のマシンで試しているんですが、他の開発環境も入っているので それが影響しているのかもしれません。 ロジック上の問題ではないとしたらIISの設定など、 どこを疑えばいいのでしょうか。
- ryoukun
- ベストアンサー率38% (16/42)
そうですか。 そこを疑うとしたら、 StrText=Request.Form("text1") を StrText=Request("text1") もしくは StrText=Request.QueryString("text1") に変えてみてください。 どちらか上手くいったら、解説しますので、 質問を閉じずに、補足で結果教えてください。
補足
度々、ありがとうございます。 教えて頂いた2パターンとも試してみましたが 両方とも同じ内部エラー(500)が発生してしまいます。 この部分が原因ではないのでしょうか。
- ryoukun
- ベストアンサー率38% (16/42)
#1の者です。 その次元では無かったですか。 失礼しました。 【表示されるコード例】の一行目の内容 <%@ Language=VBScript %> を、 【表示されない(エラー)コード例】の一行目に追加してみてください。 これが無いと、スクリプトの種類が、IIS側でデフォルトに設定されている言語に成ってしまうので、正しく解釈されていないかもしれません。
補足
御回答ありがとうございます。 ですが、<%@ Language=VBScript %>を1行目に追加しただけでは 駄目なようです。 ためしに、<%@ Language=VBScript %>を1行目に追加し <% StrText=Request.Form("text1") %> の記述を削除すると、画面には表示されるようになりました。 でも、これでよいのでしょうか?「送信」ボタンを押すとクリアされてしまいます。
- nagat
- ベストアンサー率26% (8/30)
【表示されない(エラー)コード例】のコードは、「form.asp」という名前で保存されているでしょうか?
補足
>【表示されない(エラー)コード例】のコードは、「form.asp」という名前で保存されているでしょうか? 御指摘の通り、「form.asp」というファイル名で保存しています。
- ryoukun
- ベストアンサー率38% (16/42)
【表示されるコード例】は、単純に文字列を表示しているコードなので、ページを表示すれば、"Hello"が表示されると思いますが、 【表示されない(エラー)コード例】は、先頭にある「Request.Form~」で受け取った文字列を表示するコードなので、初めてページを表示したときは、何も表示されないと思います。 TextBoxに文字列を入力して、[送信]ボタンを押せば、ページが更新され、入力した文字が表示されると思います。
補足
ご回答ありがとうございます。 少し言葉足らずでした、申し訳ありません。 何も表示されないというのは、「ページを表示できません。」と HTTP 500 内部エラーになってしまうということなのです。 解決方法を御教授頂けないでしょうか。
お礼
ありがとうございます。 .net frameworkを使用している独自の開発ツールとクリスタルレポートがマシンに入っているので、そこら辺があやしいのかなと思います。