WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:書き込みが送られてない?

0:[投稿] kzhr [MAIL] [URL] [2002/03/25 15:17 ][環境:WIN+NN WIN系+Perl]

http://pkap.tripod.co.jp/prt/prt.txt

フォームからメッセージが送られていないようなので、エラーが出ます。
受け取った内容が認識されていないようなのですが、名前はあっているのでエラー原因がわかりません(相変わらず)
文法ミスは無いので(とりあえず)変なソース等発見していただけたらうれしいです。

(とりあえずテストしたのはAnHTTPDなのですが、多分それの正ではないでしょう。)


1:[回答] えび [2002/03/25 19:18 ]

http://pkap.tripod.co.jp/prt/prt.txt は Not Found のようですが……。


2:[回答] kzhr [MAIL] [URL] [2002/03/25 20:18 ]

すいません、名前を変えてませんでした。 もう大丈夫です。


3:[回答] ween [2002/03/25 22:37 ]

こういうときはスクリプトの先頭に

print "Content-type:text/html\n\n";

とか入れて、あちこちに print 文をいれて変数の中身を確認するようにすると、
どこまで期待通りにに動いていて、どこからおかしくなっているのかを発見できます。
すると 103 行目の foreach 文が一度も回っていないのがわかります。何故でしょう?

102: @pair = split(/[&;]/, $baff);
103: foreach $pair (@pairs){

102 行目で定義している配列の名前は @pair であって @pairs ではありません。
@pairs という配列は一度も定義されていないので
103 行目の foreach ループが回らない。
だから %d_frm には一切データが入らない、
一見認識されないように見える、ということです。


4:[回答] 通りすがりX [2002/03/26 01:36 ]

>エラーが出ます。
どのようなエラーが出るのでしょう?

>#usr/local/bin/perl
1行目のパスが'/'から始まっていませんが・・・


5:[回答] kzhr [MAIL] [URL] [2002/03/26 08:37 ]

>>3

修正してまわしたらエラーはでませんでした。 しかし書き込みはされていません。
そこで次のスクリプトを%d_frmに配置した後に入れました。


119: print "Content-type: text/plain\n\n";
120: while(( $n,$v ) = each( %d_frm )){
121:     print "$n = $c\n";
122: }
123: exit;

そうすると何も入っていませんでした。
結果:
s_eml =
s_uri =
s_dat =
s_nam =
s_tle =
となり、名前は認識されているようでした。
ということは(ここでは$value)送られたデータをどこかで落としてしまうということでしょうか。(スクリプト内部で)

>>4
>どのようなエラーが出るのでしょう?
エラーはデータに何も含まれて居ないというデータ不備エラーです。(スクリプトの中の)
>1行目のパスが'/'から始まっていませんが・・・
AN HTTPDは一行目のパスを見ないので見落としました。 訂正します。


6:[回答] 通りすがりX [2002/03/26 11:17 ]

read(STDIN, $baff, $ENV{'CONTENT_LENGTH'});
の行での $buff を表示してみれば判りますよ。

>何も含まれて居ないというデータ不備エラー
と言うことはHTTPヘッダーを吐いた後に異状終了してしまっている可能性が高いです。

weenさんの方法で原因個所が特定できるはずです。

送信元のフォームで METHOD=GET を指定しているなんてオチは無いですよね?


7:[回答] 通りすがりX [2002/03/26 11:24 ]

121:     print "$n = $c\n";
$cは何処から来るのでしょう?


8:[質問] kzhr [MAIL] [URL] [2002/03/26 13:51 ]

>>6
method="post"って、Another HTML lintにも言われたので大丈夫です。

>>7

こんな近くにあるのになんで間違えるんでしょうね。 直したらデータは入っていたようです。
データも書き込みされていたので表示ルーチンが異常の原因のようです。
メールアドレスのチェックもされていないようなのですが、データの取り込み方が悪いんでしょうか?


9:[質問] kzhr [MAIL] [URL] [2002/03/26 13:53 ]

データの取り込み方というのは、ログを取り込むときの動作です。


10:[質問] kzhr [MAIL] [URL] [2002/03/27 14:09 ]

別のスクリプトを作って、フォームのテストをしたら、どうやらPOSTで送られて内容なんですけれども、どうしてでしょう。

http://pkap.tripod.co.jp/prt/bugs.txt
http://pkap.tripod.co.jp/prt/bugsj.txt


11:[質問] kzhr [MAIL] [URL] [2002/03/27 16:55 ]

自己完結しました。
ただ、8、9が終わってないのですが、ログの取り込み方はいいんでしょうか、


12:[回答] sage [2002/03/29 11:01 ]

>ただ、8、9が終わってないのですが、ログの取り込み方はいいんでしょうか、


13:[完了] kzhr [MAIL] [URL] [2002/03/29 14:42 ]

ルーチンを書き換えたら、表示されるようになりました。
一応説明しますと、ログの取り込み方とは、CGIがログを呼び出して分割する方法が合っているのかという問題です。
ログナンバーが書き込まれないのですが、それは自己調整します。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World