このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

guestMail.acgiの『処理中にエラーが生じました』

発言者:みやむら
( Date Friday, May 15, 1998 23:59:46 )


CGI Kit1.3を使用させていただいています。

スクリプトを私用に書き換えてコンパイルも
うまく行なえるのですが、
いざhtmlから送信すると
『
Error
処理中にエラーが生じました
----------------------
Can't get item 11 of {"", "", "", "", "", "", " ", " ", " ", " "}.
』
とでてきます。
スクリプトは項目リスト設定とメール設定以外はそのまま
使用しています。

どうしても抜け出せません。
どのような原因が考えられますでしょうか?

また
書式『英語』でguestMail.acgiを開きますと
文字化けされている時とされていない時が
あるのですが、これって特に気にしなくていいのでしょうか?
文字化けの際はJeditへペーストとして編集をしているのですが。。。

田中求之 さんからのコメント
( Saturday, May 16, 1998 02:36:33 )

HTML のページなどもそのままですか? item 11 なんてものにアクセスする
スクリプトは、元のものにはないはずなんですが…??

どの程度改造されたのかを、教えてください。

>文字化けされている時とされていない時が

「書式」で、どのようなフォントの割り当てを行っているかによります。
comment と value には日本語のフォント( Osaka-等幅 12 )を
割り当てておけば、文字化けはないと思います(Reference も日本語
フォントの方がいいかな?)

みやむら さんからのコメント
( Saturday, May 16, 1998 08:06:46 )

すみません、間違えてポストしてしまいました

田中先生、早速ご教授頂きまして、ありがとうございます。

変更したところは主に下記の場所だけなんですが、
デフォルトのまま使用するとうまく機能するんですが
下記のようにしてしますと『Net Event』まで
データを運ぶ前にエラーが出ているようです。


---- ここからが CGI 処理の本番

on ヌevent WWWスsdocネ path_args ツ
  given ヌclass kforネ:http_search_args, ヌclass postネ:post_args
  try
    --- post_args のデコード
    set myList to DecodeJArgs post_args
    
    set guestName to item 1 of myList
    set guestMail to item 2 of myList
    set guestTel to item 3 of myList
    set guestWorks to item 4 of myList
    set guestAge to item 5 of myList
    set guestZip to item 6 of myList
    set guestAdd to item 7 of myList
    set quest1 to item 8 of myList
    set quest2 to item 9 of myList
    set quest3 to item 10 of myList
    set quest4 to item 11 of myList
    set quest5 to item 12 of myList
    
    if guestName = "" or guestAdd = "" then
      --- 記入ミス
      return & redirect_header & "5.html" & crlf & crlf
    end if
    
    if guestMail = "" then
      set guestMail to "(記入なし)"
    end if

    ※上と同様に各アイテムでの記入なし設定
    
    --- メッセージの改行コードの統一
    set quest2 to xReturner quest2
    set quest4 to xReturner quest4
    set quest5 to xReturner quest5
    
    --- 受け取ったメッセージを整理する
    set myData to "アンケートが届きました。" & return & return ツ
      & "日時: " & ((current date) as string) & return & return ツ
      & "名前: " & guestName & return ツ
      & "電子メール: " & guestMail & return ツ
      & "電話番号: " & guestTel & return ツ
      & "職業: " & guestWorks & return ツ
      & "年齢: " & guestAge & return ツ
      & "郵便番号: " & guestZip & return ツ
      & "住所: " & guestAdd & return & return ツ
      & "解答1: " & quest1 & return ツ
      & "解答2: " & quest2 & return ツ
      & "解答3: " & quest3 & return ツ
      & "解答4: " & quest4 & return ツ
      & "解答5: " & quest5

よろしくお願いいたします。

田中求之 さんからのコメント
( Saturday, May 16, 1998 11:05:11 )

スクリプトを拝見するかぎり、エラーは

set quest4 to item 11 of myList

の部分で起きていると思われます。ということは、Form から送られてくるデータが
おかしい、つまり FORM の HTML の書き方がおかしいという可能性が高いです。
(項目が足りていない)

この点は大丈夫ですか?

みやむら さんからのコメント
( Saturday, May 16, 1998 14:49:09 )

>HTML の書き方がおかしいという可能性が高いです。
ありがとうございます。てっきりスクリプトのミスばかりだと思い、
そちらばかり何回もチェックしておりました^^;

無事治りました。ありがとうございました。