• 締切済み

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>

みんなの回答

回答No.9

Responseオブジェクトは正常に処理されており、 Requestオブジェクトの参照なりでエラーが発生しているようですね。 通常、「表示されない(エラー)コード例」の通りにすれば、 正常に処理されます。 PCにPHPなどをインストールされたりしておりませんか? 一度IISを再インストールされることをお勧めします。

daiking15
質問者

お礼

ありがとうございます。 .net frameworkを使用している独自の開発ツールとクリスタルレポートがマシンに入っているので、そこら辺があやしいのかなと思います。

  • ryoukun
  • ベストアンサー率38% (16/42)
回答No.8

しばらく、来れなくてすみません。 その後どうでしょうか? 私の方は、特に新しい情報の無かったのです。申し訳ない。 とりあえず、エラーを切り分けてみませんか? 2つのコードを比較して、NGの方だけで使われている機能として、 (1)Request.Formを使用している。 (2)変数を使用している。 (3)変数の内容をResponse.Writeしている。 ただ、#3の補足から判断すると、(3)は問題無さそうなので、 (1)と(2)を切り分けるために、(1)の記述をやめて、 単純に変数に文字定数を代入する分を書いて少し絞りませんか?

  • 11zep
  • ベストアンサー率36% (48/133)
回答No.7

確認ですがASPがエラーになると行番号が表示されたと思いますが表示されていませんか? 単に「表示されません」と出る場合、入力されたアドレスが間違っている様な気がします。確認してみて下さい。 あと、関係ないかもしれませんがPROXYを使用している環境でアドレスに「localhost」を指定するとPROXYサーバーへアクセスし同じ様な症状になった記憶があります。でも表示できるページもあるとの事なのでこの可能性は低そうですね。 早く解決できればいいですね。

daiking15
質問者

補足

ご回答ありがとうございます。 エラー発生時に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)
回答No.6

ん~????? まだ、エラーに成るんですよね? 今、自分のマシンに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の設定は、インストールしたそのままです。 今日は、この後出かけるので、ここまでです。 環境など書いておいていただければ、明日以降もう一度調べてみますよ。

daiking15
質問者

補足

色々とありがとうございます。 ryoukunさんのコードで再度試して見ましたが やはりダメです。。。 環境ですが、ryoukunさんと同じWinXP Pro sp2 + IIS5.1 です。

  • ryoukun
  • ベストアンサー率38% (16/42)
回答No.5

参りましたね。 まさかと思うけど、 <% Dim StrText StrText=Request.Form("text1") %> にしたらどう?

daiking15
質問者

補足

ありがとうございます。 うーん。。。試してみたけどやっぱ駄目ですね。 会社のマシンで試しているんですが、他の開発環境も入っているので それが影響しているのかもしれません。 ロジック上の問題ではないとしたらIISの設定など、 どこを疑えばいいのでしょうか。

  • ryoukun
  • ベストアンサー率38% (16/42)
回答No.4

そうですか。 そこを疑うとしたら、 StrText=Request.Form("text1")    を StrText=Request("text1")    もしくは StrText=Request.QueryString("text1")    に変えてみてください。 どちらか上手くいったら、解説しますので、 質問を閉じずに、補足で結果教えてください。

daiking15
質問者

補足

度々、ありがとうございます。 教えて頂いた2パターンとも試してみましたが 両方とも同じ内部エラー(500)が発生してしまいます。 この部分が原因ではないのでしょうか。

  • ryoukun
  • ベストアンサー率38% (16/42)
回答No.3

#1の者です。 その次元では無かったですか。 失礼しました。 【表示されるコード例】の一行目の内容 <%@ Language=VBScript %> を、 【表示されない(エラー)コード例】の一行目に追加してみてください。 これが無いと、スクリプトの種類が、IIS側でデフォルトに設定されている言語に成ってしまうので、正しく解釈されていないかもしれません。

daiking15
質問者

補足

御回答ありがとうございます。 ですが、<%@ Language=VBScript %>を1行目に追加しただけでは 駄目なようです。 ためしに、<%@ Language=VBScript %>を1行目に追加し <% StrText=Request.Form("text1") %> の記述を削除すると、画面には表示されるようになりました。 でも、これでよいのでしょうか?「送信」ボタンを押すとクリアされてしまいます。

  • nagat
  • ベストアンサー率26% (8/30)
回答No.2

【表示されない(エラー)コード例】のコードは、「form.asp」という名前で保存されているでしょうか?

daiking15
質問者

補足

>【表示されない(エラー)コード例】のコードは、「form.asp」という名前で保存されているでしょうか? 御指摘の通り、「form.asp」というファイル名で保存しています。

  • ryoukun
  • ベストアンサー率38% (16/42)
回答No.1

【表示されるコード例】は、単純に文字列を表示しているコードなので、ページを表示すれば、"Hello"が表示されると思いますが、 【表示されない(エラー)コード例】は、先頭にある「Request.Form~」で受け取った文字列を表示するコードなので、初めてページを表示したときは、何も表示されないと思います。 TextBoxに文字列を入力して、[送信]ボタンを押せば、ページが更新され、入力した文字が表示されると思います。

daiking15
質問者

補足

ご回答ありがとうございます。 少し言葉足らずでした、申し訳ありません。 何も表示されないというのは、「ページを表示できません。」と HTTP 500 内部エラーになってしまうということなのです。 解決方法を御教授頂けないでしょうか。

関連するQ&A

専門家に質問してみよう