インターネットなこと: 2011年11月アーカイブ

今日、お客さんにテストしてもらってた CGI で、お客さんから何度も「DB 登録時にシステムエラーが出る」と連絡が来た。
しかし、うちでは何度やっても再現出来ないので、「何か変な使い方してるんじゃねえだろうなあ?」とお客さんを疑い始めたところでハッと気づいた。

Internet Explorer でのみ発生する「Form の二重送信じゃねえの?」と。

で、ソースを見てみたら案の定だ。

今回は、(他人が作った)既存の CGI を改修して新しいサービス用のシステムを作ってるわけで、まあ、特に問題なければ元のソースの内容をなるべく残してるんだけど、Form の Submit のところで、

<input type="submit" name="ADD" value="更 新" onClick="javascrpt:Submit('ADD')">

なんてやってる。
で、JavaScript の方で、

function Submit(ps) {
    document.form.action.value = ps;
    document.form.submit();
}

みたいにして、action という Form 項目に 'ADD' という文字をセットしてから送信処理を行なっているようだ。
これじゃあ、まず type="submit" のボタンを押すことで送信が行われ、更にその時に実行される JavaScript 側でも送信が行われる。つまり二重送信だ。
結果、DB に登録する時に duplicate error が発生してるんだな。

なんでこんなことしてるんやろ?俺が作ったプログラムじゃないから全然わからんわ(^^;

取り敢えず、

<input type="hidden" name="action" value="ADD">
<input type="submit" name="ADD" value="更 新">

にしてみたのだが(元々、<input type="hidden" name="action" value="ADD"> は書かれていた)、これで問題なく動いているようである。今のところ、エラーは発生していない。

ちなみに、こういう現象が発生するのは Internet Explorer だけである。
Form 送信は HTTP のプロトコル的にも(リクエストと一緒だからな)一度だけ行われるもので、他のブラウザ(Firefox や Chrome、Safari など)は二重送信が行われないように、二度目の送信処理は裏でキャンセルするようになっている。
だから、Firefox と Chrome でテストやってた俺んとこじゃ再現出来なかったんだな(^^;

重ねて言うが、二重送信しちゃうのは Internet Explorer だけなのである。

で、ここで、Microsoft 信者は「IE が悪いんじゃない!そういう HTML の書き方がまずいんじゃないか!!」とか言うだろうけど、「Form の二重送信なんかあり得ないんだから、素直に駄目にしておけばいいだけ」なんだよ。
Microsoft には HTTP プロトコルに詳しいヤツがいないんじゃねえかって思うよ、実際。

今日、東京ポッド許可局の10/22のポッドキャスティングを聞いていたら「東京ポッド許可局のサイトは、Internet Explorer については動作保証外にします。Firefox や Safari で見てください」って言うてて笑った。
そう。実はとっくの昔に「Internet Explorer じゃなくたって良い」世の中になってたのである。
つーか、やっぱ、Internet Explorer だけ、変な独自仕様を詰め込んじゃって、インターネット界では特殊な存在になってしまってるんだよね。

まったく、Internet Explorer のおかげで、どれだけ無駄な時間を過ごしたことか・・・

今時 Internet Explorer に固執するのは、変化を望まないXX企業と、「このパソコンにインターネットはついてますか?」的発言をする馬鹿ユーザーくらいしかいねえよ。

さあ、皆、Internet Explorer を捨てて、素敵な未来へ!(笑)
20111111_addon.JPG
今まで YouTube のデータ落とすのは「Area61 ビデオダウンローダー」という定番ソフトを使ってたんだけど、何ヶ月か前から YouTube の新仕様に対応出来てなくて(Windows XP以外では)ダウンロードできなくなっちゃった。

まあ、元々動画をそんなにローカルに保存したいケースというのも俺の場合は無いので、そのままほったらかしにしてたんだけど・・・

ちょっと、エロ動画、もとい、技術的手順をアレコレ説明した真面目な動画をダウンロードしたくなりまして、Area61ソフトウェアのサイトに行ってみたんだけど、やっぱり YouTube の新仕様には未だ対応できてないみたい。

ということで、良いのが無いかちょっと探してみたんだけど、Ant Video Downloader ってのがなかなかいいみたい。そういえば、エロ動画サイトでも見たことあるな、このソフトの名前。なんか、Firefox のアドオンとして提供されているものがあるらしい。

さっそく、Firefox のアドオンマネージャで探してみるとすぐにヒットした。

Ant Video Downloader 2.4.4

すぐにインストール。そして使ってみたが、お、いいね、これ!

ブラウザの右上の方にアイコンが表示されているんだが、ダウンロード可能な動画ファイルのあるページでは、アイコンクリックで表示されるメニューの上にその動画名と容量がつらつらと表示されるので、それを選択すればダウンロードが開始される。

この時、特にダウンロードするよ!とも言わずに、裏のほうで静かに処理が始まるので、「あれ?ダウンロードされんじゃん?」と一瞬焦ってしまうので注意。(笑)
俺は思わず同じファイルを三回もダンロード指示しちゃった(^^;;;

ところで、メインのブラウザは Chrome なんだけど、Chrome ウェブストアで「video downloader」で検索しても、何か、ダウンローダーじゃないソフト(拡張機能)が沢山表示されてようわからんわ、英語に弱い俺には(^^;
Firefox のアドオンサイトでの検索では、ほぼダウンローダーばかりが 40個くらいヒットした。

つーことで、動画のダウンロードでは Firefox を使う俺であった。

ググってみたら、同じような現象に悩んでる人、けっこういるのね。


色々なページを見てわかってきたこと。

●どうも Gmail と Chrome の組み合わせで発生しているようだ。
 (うちでも、InternetExplorer では発生しないのを確認)
●メモ帳で書いた文章を、コピー&ペーストすると発生するようだ。
 (確かに、俺は秀丸で文章書いて、本文にコピペしてる。等幅フォントで書きたいからだ)
●途中で保存とかすると発生するケースが多いようだ。
 (うちでは今朝、保存せず直接送ったメールも改行が消えてしまったので、どんな場合でも発生するようだ)
●リッチテキスト形式で書けば大丈夫なようだ。(その後、テキスト形式を選んで送信するってこと)
●スタイルによって発生する場合としない場合があるようだ。例えば簡易HTMLを選んだら発生し始めた・・・とか。
●メモ帳からコピペする時に、1行改行を入れて、その後にコピペすれば改行が消えることはないようだ。
 (うちでも確認済。ダミーの改行をして、その下にペーストすれば改行が消えることはない)

まあ、つまり、完璧に原因が究明されているようではなく、対処療法で皆がんばっているというところのようだ。
でも、一応対処法があるとはいえ、いちいち「リッチテキスト形式で入力したり」「空の行を一行作って、その後ろにペーストしたり」しないといけないなんて糞だよな!

確かに、ブラウザが違えば発症しないので、Gmail だけのバグではないかもしれない。
でも、Chrome だって Google じゃんか!Google 同士の組み合わせで問題が発生するなんて、あまりにお粗末じゃありませんか?Google さんよ。

まあ、JavaScript に問題があることは確かなので、早く対応してよ、Google さん!

冴えんなぁ・・・ほんま・・・
例えば、

これはテストです。
これはテストですって。

これはテストであります。

という本文のメールを Gmail 上で作成する。
これをすぐに送信すれば何の問題も無いのだが、一旦「下書き」に保存して、もう一度編集画面に呼び出すと、

これはテストです。これはテストですって。
これはテストであります。

ってなってる。
改行が1個のところはつながって、2個のところはひとつ改行しているので、つまり、改行コードが1個抜けてしまったということか。

これは100%再現出来る障害だ。

Gmail のデザインが新しくなってから発生しているんだから完全なバグだよな。
一応、環境を書いておくと、Windows 7 Professional(64bit) SP1 + Chrome 15.0.874.106 での障害。

え?「送る前に改行入れなおせばええやん」って?
阿呆か。Google 信者ぶりも大概にせんといてまうぞ、こら。

ほんま、最近の Google は冴えんなあ・・・
20111101_plugin.jpg
金曜日、突然 Chrome(OS は Windows 7 Professional 64bit 版)で Flash コンテンツが見れなくなった。
全ての画面で、Missing Plug-in 表示に・・・

まあ、こういう時は、Chrome の更新を行なったらプラグインも一緒に更新されて復活することもあるんだけど、この時点で Chrome のバージョンは最新の 15.0.874.106 なのでそれも無し。

取り敢えず、プラグイン画面(chrome://plugins/)でプラグインの一覧を見ると、Flash Plug-in が、

Shockwave Flash 11.0 r1(Ver 11,0,1,152)
Shockwave Flash 10.3 r181(Ver 10,3,181,26)

の2つインストールされていて、両方とも「有効」になってる。

これはなんかおかしい状態じゃね?ってことで、バージョンの古い 10.3 r181 の方を「無効」にしてみたのだが状況変わらず。
次にバージョンの新しい 11.0 r1 を「無効」にしてみたら、見事、Flash コンテンツの表示が復活した。

つーことで、どうも 11.0 r1 のインストールに失敗したという疑いが濃厚。
しかし、11.0 r1 の再インストールってどうやったらいいのかね?手動で落としてきて入れる方法もあるみたいだけど、Chrome は基本的に組み込みの Flash Plug-in を優先的に使うみたいだから意味ないんじゃねえのかな?違う?>Chrome ユーザのエロい人

そもそも、プラグイン画面には「有効/無効」の選択しかなく、最新バージョンの「削除」とか「再インストール」とかどうすんのかね?

何か、気持ち悪いが、取り敢えずはヨシとしよう。

このアーカイブについて

このページには、2011年11月以降に書かれたブログ記事のうちインターネットなことカテゴリに属しているものが含まれています。

前のアーカイブはインターネットなこと: 2011年8月です。

次のアーカイブはインターネットなこと: 2011年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら