ツイートする このエントリーを含むはてなブックマーク [rNote Tips]

rNote Padとトラックバック制御を利用する時のエラー回避 / 2009-04-03 (金)

rNotePadを利用していてrnote_config.phpに追加するトラックバック制御
実装している場合、rNotePadで記事を投稿しようとするとTrackbackErrorの
関数が未定義であるというエラーが発生し、投稿出来ないようです。

以下のコードを追加することによってこの問題を回避できます。

rnote_config.php

//------------------------------------------
// Trackback制御
if(($_GET['disp'] != "rnotepad") && ($_POST['url']) || ($_GET['url'])){
    // 本来のTrackBack仕様ではurlさえあればOKなのだけど、blog名とか揃ってない場合は弾く。
    if(!preg_match("/[\x80-\xff]/", $POST['excerpt'])){
        TrackbackError('Bad request.');
    }
    if(!$_POST['blog_name']){
        TrackbackError('No name.');
    }
    if(!$_POST['excerpt']){
        TrackbackError('No excerpt.');
    }
    if(!$_POST['title']){
        TrackbackError('No title.');
    }
}

ちなみにrnote.phpからTrackbackError関数をコピーしても一番上の判定に
引っかかってしまうので、これの方が良いのかなと思います。

このrNote Tipsに記載しているトラックバックスパム対策には上記の対策を
行っていない(rNotePadを利用していないため)ので、rNotePadを利用されて
いる方は忘れずに記述してください。