capcha の一種の Securimage を使ってツッコミを書き込むときに画像認証させるようにしてみました。
公式サイトの説明によると、
・ツッコミの送信後にフォームから送られたデータを処理する php の最初の行に session_start(); が書かれている必要がある。(HTML出力の前に置かないと、入力文字列のチェックが常に失敗する可能性があるそうです。)
らしいので、 rNote の場合、 rnote.php の HTML 出力の直前あたりに session_start(); を書く必要が本当はあるのだと思うのですが、 rnote.php は、ツッコミ以外の様々な処理の結果を受け動作するので、どんな影響が出るか分かりません。なので、とりあえず session_start(); は書かずに処理させてみましたが、見たところ正常に動作しているようです。
ただ、認証画像の内容を別のものに変えたいときにクリックするリンクをつけてみたのですが、クリックすると画像が出なくなるのであれこれやってみたのですが、よく分からず、画像変更のリンクは外してあります。なんで画像が消えてしまうんだろう・・・。
Securimage 追加の手順:
(1) Securimage をサーバにアップロード。
(2) writeback.skin を修正。
ツッコミ用フォーム表示のところの、
<p><input type="submit" value=" ツッコむ " /></p>
と
< /form>
の間に、
< img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" />
< input type="text" name="captcha_code" size="10" maxlength="7" />
を追加。
(3) rnote.php を修正。
function WriteBackSave() の先頭部分の、
$file = $_GET['u'];
と
DoublePostChk($name.$com);
の間に、
$img = new Securimage();
if ($img->check($_POST['captcha_code']) == false) {
error('画像認証の文字が入力されていないか、入力文字が一致しません。',ERR_WB);
}
を追加。
この記事のリンク元
キーワード: rNote Securimage capcha