愛車:マツダアテンザ
Webを中心とした、ビジネス&テクノロジーに関する思いつき
by F-shin
[ このサイトについて ] [ F-shinについて ] [ トップ ]
iPhoneアプリ
author:えふしん
photo_20.jpg
藤川真一について


初代モバツイ開発者
想創社再創業 / KMD博士課程
著書〜100万人から教わったウェブサービスの極意―「モバツイ」開発1268日の知恵と視点 [Kindle版]
お求めやすい夏休み特価!
このカテゴリ[Web系]の最新30件
本ブログは移転しました インターネットの遊び方を身につけよう ネットでの選挙活動と投票率 Web2.0がうまくいかなかったワケ WebにおけるMVCアーキテクチャの勃興と変遷 何故、PCはブラウザ、スマホはアプリなのか。 言っとくけどスマホは退化でもあるからな。 アイコン5000円とか、Web受注(発注)価格について。 残念なWeb論の骨子 HTMLってホントよく出来てるな。 「やまもといちろう×イケダハヤト対談イベント」のログを読んで ネットサービスの成功者は「とりあえず受託」という言葉使うのやめません? 全収集型RSSリーダーの終焉とソーシャル化するWeb 頑張ると報われるプログラマーの社会とは。 Perlが○○な話 アメリカ製品のすごさと不思議とワイヤフレーム どの人件費を考えても絶対にお得!利用規約ナイトがきっかけの本が出ます。 クラウドやモバイルを、もっと仕事で活用したいけど、どうやって会社を説得したら良いかわからない! スマホアプリらしいUXとは。 インターネットの変化に対して起こるモヤモヤすることを考え、整理する活動 Facebookは見なくてもいい情報が出てくるSNS 「あなたは影響力があるから、そんなことを言っちゃいけません」の問題点 Facebookに時間を取られすぎる対策 Paypalの本人確認がむかつく件 ネット系イベントがとても主催しやすくなった件 モバイルファーストが失敗なハズはないが、今はまだ時期尚早 やりがいはソートできない…非情なデータベース社会 2012年までのふりかえりと2013年へ ブラウザという平面の限界 ブログ記事の流通の難しさ
[このカテゴリをもっと見る]
Powered by
Movable Type

November 27, 2004

スポンサーリンク

最近、コメントスパムが3日置きに20個ぐらいやってきて、削除するとそのお礼参りが返ってくるような気がしてきて、反撃が大きくならないうちに下記のサイトを参考にして、とりあえずプレビューを経由しないとコメント登録できないようにする対策をしました。

プレビューボタンのみ表示してhashを仕込むというコメントスパム対策

ただ、この対策ですが以下の問題にぶちあたりました。
その前に一言お断り。すいません、↑のサイトも、その元の引用元サイトも、あまり読まないで、長斜め読みで作業してるので、以下に書いたことは僕の勘違いであることも含めて記述しておきますので、その辺は、笑ってご容赦を。

問題1.プレビュー後の登録ボタン送信後に、メールアドレスのチェックでエラーになるとハッシュ値が維持されずにコメント登録ができなくなる。
問題2.プレビュー画面で、メールアドレス等を変更し、そのまま登録ボタンを送信するとハッシュ値と整合が取れなくなってコメント登録ができなくなる。
問題3.MT::App::Comments=HASH(0x8133864) Use of uninitialized value in string ne at extlib/jayallen/MTBlPost.pm line なんつう警告が出ている。通常の登録フローでは画面がリダイレクトしているので気が付かないですが、ちゃんと警告自体は出ています。見えないだけで。

問題1の対策:
問題は、プレビューエラーのテンプレートにハッシュ値がうまく渡されないのが原因で、よくわからないんでカスタムタグ作ってハッシュ値を渡していこうかと思ったのですが、Perlの文法は僕には謎すぎるので諦めました。

仕方ないので、「前に戻る」で一番最初の画面まで戻ってもらって直してもらうしかないかなと。
同時にプレビュー画面で編集できないようにしました。

ただ、メールアドレスのエラーなどが発覚するのが確認画面の後という本来ありえない画面フローになっているのでプレビューボタンが押されたときの処理で、メールアドレスのチェック処理を走らせてエラー画面に飛ばす制御をしないと、おかしいです。これは課題。

問題2の対策:
ハッシュ値の考え方が、プレビュー画面での編集後の再送信に対応していないのが、そもそもの原因。
だから仕方ないです。問題1と同じ対策で解決

問題3の対策:
なんか、このエラーをぐぐると、まぁいいやとか、そもそものエラーを表示しないように隠蔽するとか、一般的に、まともに解決してない人が多いですね。
エラーメッセージの通り、初期化されてない変数を使うなゴルァという警告なのですから、自分のプログラムで使われていない変数を削除すればOK

今、元の元の引用元を見ると、これは自分用の特別な変数だから、この変数は消してねって色も変わって書いてあるじゃん(笑)
あー時間の無駄をしてしまった。ちゃんと原文も読みましょうってことでつね。

つーことでエラーが出る以下の部分は不要なので削除しませう。
「. $q->param('subject') . $q->param('convert_breaks')」

さすれば、このエラーは消えます。

多分、まだこの戦いは続きそうな気がするから、タイトルには、「1」とつけておきました。これで解決したら2はありません。そのことを祈るだけです。

スポンサーリンク
■同じカテゴリ[Web系]のエントリー
<<前の記事 Flash Communication Server
>>次の記事 FCSは怖い
■このblogの書き込み最新3件
本ブログは移転しました インターネットの遊び方を身につけよう トトロが陽なら、『風立ちぬ』は陰?〜『風立ちぬ』の感想