ここから本文です

この知恵ノートを「知恵コレクション」に追加しました。

追加した知恵ノートはMy知恵袋の「知恵コレクション」ページで確認できます。

知恵コレクション」に登録済みです。

再登録しました。

追加に失敗しました。

ノートに戻り、もう一度やり直してください。

すでに1,000件のノートが登録されています。

新しく追加したい場合は、My知恵袋の「知恵コレクション」ページで登録されているノートを削除してください。

追加できませんでした。

ノートは削除されました。

『知恵コインが0枚でも回答リクエストはできる!!!!』のコードに不備があるので直した

ライターrank_0utさん(最終更新日時:1時間以内)投稿日:1時間以内 アドバイス受付中!

  • お役立ち度:
    0点(5点満点中)

    0人

  • 閲覧数:0

印刷用のページを表示する

■ はじめに

 cyber_barrier_dragon2013さんの『知恵コインが0枚でも回答リクエストはできる!!!!』を読んでみたところ、コードに不備があるので修正してみようと思う。


■ 不備の部分

 cyber_barrier_dragon2013さんが記述したコードは以下の通り。

『知恵コインが0枚でも回答リクエストはできる!!!!』のコード

「javascript:document.post.req_ans_flg.value=1;document.post.request_type.value=2;document.post.innerHTML+="<input type=hidden name=request_age value=0><input type=hidden name=request_gen value=1><div class="qa-editing"><span class="qa-submit"><input type=submit name=submit value=ドグマガイ></span></div>";」

(閲覧日時:2012/3/11 10:05)
  見ての通り単純なDOM操作を実行するブックマークレットなのだが、シンタックスの観点からみても不備は多い。わかり易く改行を入れてみよう。

コードに改行を入れてみる

  • javascript:
  • document.post.req_ans_flg.value=1;
  • document.post.request_type.value=2;
  • document.post.innerHTML+="
  • <input type=hidden name=request_age value=0>
  • <input type=hidden name=request_gen value=1>
  • <div class="qa-editing">
  • <span class="qa-submit">
  • <input type=submit name=submit value=ドグマガイ>
  • </span>
  • </div>";
  まず4行目のinnerHTMLの値。「""」で括られているはずの値の中に、「<div class="qa-editing"><span class="qa-submit">」が含まれている。本来ならここは、<div class='qa-editing'><span class='qa-submit'>とするか、値全体を「''」で括るべきだった。

 5行目、6行目、そして9行目にも、HTMLタグレベルの不備がある。inputタグのtypeの値が括られていなかったり、submitの値が括られていなかったりと、ケアレスミスが相次いでいる。IEのような誤魔化しの通じるブラウザならこれでも通用するだろうが、FireFoxやoperaなどのようなブラウザでは通用しないだろう。

注意

 
 ついでに見栄えとして言えば、このコード全体をfunction()の内部に記述するべきだっただろう。そうしないと、特にIE以外のブラウザでは画面のデザインが崩れる。というより、そうしないとIE以外のブラウザで起動させるのが難しくなるだろう。


■ 修正したコード

 そんな訳で、私が発見した不備は全て以下の通りに修正しておいた。

修正したコード

  • javascript:(function(){document.post.req_ans_flg.value=1;document.post.request_type.value=2;document.post.innerHTML+='<input type="hidden" name="request_age" value="0"><input type="hidden" name="request_gen" value="1"><div class="qa-editing"><span class="qa-submit"><input type="submit" name="submit" value="回答リクエスト" /></span></div>';})();
 

改行を入れてみると

  • javascript:( function(){ document.post.req_ans_flg.value=1; document.post.request_type.value=2; document.post.innerHTML+=' <input type="hidden" name="request_age" value="0"> <input type="hidden" name="request_gen" value="1"> <div class="qa-editing"> <span class="qa-submit"> <input type="submit" name="submit" value="回答リクエスト" /> </span> </div>'; })();
  ちなみに送信ボタンのvalueが「ドグマガイ」と指定されていたが、必然性が感じられないし、何のボタンなのかわからなくなるので、「回答リクエスト」に改めた。


■ 最後に

 このブックマークレットは、質問を投稿した段階に、PHP側あるいはデータベース側で知恵コインの有無を識別する処理が実行されるようになると、無効になる。

 私には与り知らぬことだが、こうしたシステムの盲点を突く「裏技」に対してモラルの観点から非難して問い合わせる連中もいるので、このブックマークレットは短命かもしれない。




 

このノートは役に立ちましたか?

役に立った!
お役立ち度:
0点(5点満点中)

0人が役に立つと評価しています。

この知恵ノートをブックマークする:

Yahoo!ブックマークに登録

違反報告

アドバイス(このノートのライターへのメッセージ)を送る

このノートはどうでしたか?  いいと思ったことや、こうしたらもっとよくなるといったメッセージを送りましょう! ノートの内容やライターについて質問がある場合は、Q&Aから質問してみましょう

アドバイスを送るには、
Yahoo! JAPAN IDでのログインおよび
Yahoo!知恵袋の利用登録が必要です。

利用登録ナビへ

感想アドバイス履歴

  • 現在アドバイスはありません

このノートに関するQ&A

このノートに関するQ&Aは、まだありません。

このノートについて質問する

このノートについてライターの方に質問できます。

※ライターの方から必ず回答をいただけるとは限りません

※別ウィンドウで開きます

PR

この知恵ノートのライター

グレード

グレード知恵ノートのグレード:3-3

rank_0utさん

■ 無断転載、パクリ回答について  無断転載、パクリ回答を探...[続きを見る]

その他の知恵ノート(81件)
【連続投稿・釣り質問を封じる...
【巨匠を労害と呼ぶために】 (...
Yahoo!知恵袋の「無断転載・パ...

ピックアップ

ライブへ行こう!超初心者のため...
はじめに主に邦楽カテゴリの中で、時折人気アーティストのラ...
【医療費控除】を賢く使って節...
医療費控除とは?医療費控除は、自分または自身と生計を一に...
見本市に行きましょう(コツと...
見本市(エキスポ、展示会)は良い刺激になりますインターネッ...

こんなノートがほしい! リクエストする

最大文字数100文字入力できます

リクエストが送信されました。

いただいたリクエストは、Yahoo!知恵袋スタッフが確認のうえ、ライターの方向けに書いていただきたいテーマとして掲出いたします。

続けてリクエストする

知恵ノートを書いてみませんか?知恵ノートの書き方はこちら

知恵ノートとは?

役立つ知恵情報は、Yahoo!知恵袋公式Twitter@yahoochiebukuroをフォロー
本文はここまでです このページの先頭へ