研究室からw3m

研究室からw3mニトロのページにアクセス。したらば


                                                                           
                       ニトロプラスネットにようこそ                        
                               1 0 0 0 0 0 0                               
                           おめでとうございます                            
      お客様は、幸運にも100万人目に、ニトロプラスネットを訪れました。      
          ささやかですが、当社より記念品を贈呈したいと思います。           
下のフォームに、ご自身のメールアドレスをご記入の上、enterキーを押して下さい
                                    。                                     
                   こちらから、確認のメール送信します。                    
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
                          [                    ]                           
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
                         million complete thanks!                          

なんてな表示が。ぉお、とか思ってacドメインのメールアドレス入れて送信。受付しました画面の後トップに戻ったらもう一度同じ画面に戻る。………。要するにプログラムミスだったのね(^^;; あぅ、期待して損した。というか終わった企画ページはさっさと抹消しろよ。腹だたしいので控え目に晒しておこう

ま、それだけで終わるのもなんなんでちゃんと解析してみる。ちゃんと見れば原因は一目瞭然。

<td colspan="2"><font color="#FFFFFF"> <!- カウンター(触るべからず) > <!- ETA HTTP-EQUIV="Refresh" CONTENT="0; URL=http://www.nitroplus.co.jp/million_complete/thanks.html"> (中略) <!- カウンターここまで>人目のお客様です</font></td>

でコメントのようでコメントでない部分があるからですな。ま、ETA HTTP-EQUIV="Refresh" CONTENT="0; URL=http://www.nitroplus.co.jp/million_complete/thanks.html"という文字列があるだけでRefreshが効いてしまうw3mにも問題があるわけですが。

一応メールしときますか。こんなん出しました。

Subject: Re: 100万アクセスユーザーのE-Mailアドレス(OK)
Date: Thu, 06 Sep 2001 22:04:23 +0900

ニトロプラスWeb担当御中

本日17時前にw3mにて 
 http://www.nitroplus.co.jp/pc/free.php3 
にアクセスしたところ、
 http://www.nitroplus.co.jp/million_complete/thanks.html
に強制的に飛ばされてしまったのでメールアドレスを記入してしまいました。

しかしながら、その後も
 http://www.nitroplus.co.jp/million_complete/thanks.html
に飛ばされ続けるという挙動が確認でき
これは意図しない動作をしているのであろうと認識しました。

106000以上のアクセスあるのは確認できてますので別に記念品はいいですが、
更なるぬか喜び者が出ないように以下の対処をお願いします。

1.http://www.nitroplus.co.jp/million_complete/thanks.html の削除
2.http://www.nitroplus.co.jp/pc/free.php3で仕様に合致したHTMLを
  出力するようにする。


今回問題となったのは、free.phpの出力中の

<!- カウンター(触るべからず) > 
<!- ETA HTTP-EQUIV="Refresh" CONTENT="0; 
URL=http://www.nitroplus.co.jp/million_complete/thanks.html">

の部分です(見やすいように改行いれてます)。

この部分は制作者側の意図としてはコメントアウトしたつもりなのでしょうが、
SGML的にはコメントとはみなされません。
定義されていないのでw3mが勝手に拡大解釈を行い(この動作もバグな気がしますが)
Refreshを効かせてしまったというのが私が経験した現象の原因だと思います。

# SGMLの注釈宣言に関しては
# http://www.ne.jp/asahi/minazuki/bakera/html/sgml/comdeclare
# あたりが詳しいかと思います。

以上ご報告まで。

--
NOGUCHI Wataru    nog@nihon.to
http://nog.nihon.to/nog/daily/

あ、今気付いた。106万アクセスとかいたつもりだったのに0が一つ少ないや。ま、いっか(笑)。