アプリ版:「スタンプのみでお礼する」機能のリリースについて

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>

A 回答 (9件)

Responseオブジェクトは正常に処理されており、


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

ありがとうございます。

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

お礼日時:2006/12/12 15:25

しばらく、来れなくてすみません。



その後どうでしょうか?
私の方は、特に新しい情報の無かったのです。申し訳ない。

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

確認ですが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は使用していないので問題なさそうです。
会社のマシンなので、他の開発環境も色々と入っている為に
悪さをしているような気がしてきました。

補足日時:2006/11/30 09:19
    • good
    • 0

ん~?????



まだ、エラーに成るんですよね?
今、自分のマシンに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
です。

補足日時:2006/11/29 19:57
    • good
    • 0

参りましたね。



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

この回答への補足

ありがとうございます。

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

補足日時:2006/11/29 19:02
    • good
    • 0

そうですか。


そこを疑うとしたら、
StrText=Request.Form("text1")
   を
StrText=Request("text1")
   もしくは
StrText=Request.QueryString("text1")
   に変えてみてください。

どちらか上手くいったら、解説しますので、
質問を閉じずに、補足で結果教えてください。

この回答への補足

度々、ありがとうございます。

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

補足日時:2006/11/29 18:25
    • good
    • 0

#1の者です。


その次元では無かったですか。
失礼しました。

【表示されるコード例】の一行目の内容
<%@ Language=VBScript %>
を、
【表示されない(エラー)コード例】の一行目に追加してみてください。


これが無いと、スクリプトの種類が、IIS側でデフォルトに設定されている言語に成ってしまうので、正しく解釈されていないかもしれません。

この回答への補足

御回答ありがとうございます。
ですが、<%@ Language=VBScript %>を1行目に追加しただけでは
駄目なようです。

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

補足日時:2006/11/29 17:44
    • good
    • 0

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

この回答への補足

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

御指摘の通り、「form.asp」というファイル名で保存しています。

補足日時:2006/11/29 15:52
    • good
    • 0

【表示されるコード例】は、単純に文字列を表示しているコードなので、ページを表示すれば、"Hello"が表示されると思いますが、



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

この回答への補足

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

補足日時:2006/11/29 14:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!