Comments

2005.11.20: [bugfix] Blogn Plus Module captcha 0.2.2

本家の blogn BBS にて C.J. さんから bug報告を頂きました。
早速、対応したものをアップしておきます。

《bugfix》
・fnmatch関数が無いと怒られる。
環境に依存し易い fnmatch関数の使用を止めて、素直にpreg_match関数を使う。
・管理者の設定画面が白紙になる。
管理者かどうかの変数 $blogn_admin を きちんと global 宣言して対応。
以上の2点になります。

C.J.さん、ありがとうございます。

《おまけ》
・管理者の設定画面でサンプル表示が出来ます。
色の具合を確認しながら設定できるようになりました。

添付ファイル:
captcha022.zip


Comments made

こちらでははじめまして、BlognPlus のフォーラムではお世話になりました。。
Global の使い方よく分かっていなかったのですが、今回の1件でとても勉強になりました。

またモジュールのセキュリティについても色々と考えさせられました。
あまり大きな声では言えませんが、うちで公開しているモジュールにも同様のリスクが存在するので、airwhite さんの方法を取り入れさせていただこうと思います。よろしくお願いします。
2005.11.21 20:39
これは良いなと思い早速いれさせてもらったのですが、
imagecreate()が宣言しれてないとのエラーが発生しました。
PHPをビルドするときにGDが組み込まれていないのが原因なようですが
レンタルサーバなのでどうしようもできません。非常に残念です。

当方PHPはよく分からないので要望したいのですが、
imagecreateを置き換えるような方法ってないですかねぇ・・
2006.01.11 21:57
もめんとさん、こんばんは。
お返事が遅れてすみませんでした。
しばらく、覗いておりませんでした。
GDが利用できないのは困りましたね。
他に ImageMagickとかは使えませんか?
GDを使う箇所を ImageMagick に書き換えても構いませんが。
レンタルサーバとは言え、いまどきは
顧客満足度が大切なので
大抵の願いごとは聞いてもらえると思います。
ぜひ、交渉されてみることをお勧めします。
2006.02.03 01:07
初めまして。
Movable TypeにはSCodeがあったのですが探していて
Blogn Plusを使おう!さんでこちらのキャプチャのことを知り本日やってみました。
うまくいきました。
ありがとうございます。
2006.10.02 19:28
失礼します。

bulognのバージョンは2.4.2です。
サーバーはチカッパ!です。

Captchaを組み込んでみましたが、画像が「×」になってしまいます。

ちなみに、スキンのHTMLの中に、{COMMENT} いう部分はあるのですが、{COMMENTINPUT}という部分が見つかりません。

一応、<form>~</form>で囲まれた部分を見つけ、

{CAPTCHA}<br>
<input type="submit" value="コメント送信">

と書き換えました。

index.phpの内部も、

// キャプチャ・チェック
blogn_mod_captcha_check($errflg, $info, $link_url, $entry_id);
if (!$errflg){
$date = gmdate("YmdHis",time() + BLOGN_TIMEZONE);

と書き換えましたが、やはり画像が「×」になってしまいます。

解決の糸口をお教えいただければ幸いです。
2007.07.06 17:02
↑上のコメントに間違いがありました。すみません!

サーバーはチカッパでなく、WEBARENAでした。
2007.07.06 17:07
たびたびすみません。
WEBARENAは、ImageMagickに対応していることがわかりました。

管理人さんのコメントにもありますが、ImageMagickに書き換えるとは、「imagecreate」の文字列を「ImageMagick」に書き換えるということを指すのでしょうか?
2007.07.06 22:23
ピンボケなことを何度も書いてしまっているかもしれません。すみません。

WEBARENAで確認したら、GDは実装されていて、バージョンは1.8とのこと。
でも、肝心なのは、1.8.xのxなのかもしれませんね。

チカッパでは、あっさり動きました。
2007.07.09 16:42
くまさん、こんにちは。お返事が遅くなりました。う~ん、Blogn側のバージョンも上がっているのかな?GDが使えるかどうか下のサンプルプログラムで確かめてみてもらえませんか?test.phpとしてでも保存して実行すると
100x100の黒い四角が表示されればGDは問題ないと思います。
<?php
$img = imagecreate(100, 100);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $black);
header("Content-type: image/gif");
imagegif($img);
imagedestroy($img);
?>
2007.07.10 11:37
管理人さん、ご返答ありがとうございます!

早速、上記ソースをPHPとしてアップして実行してみましたが、残念ながら、「×」印が表示されました。(イメージ参照不可の状態)→作るプロセスはあったのですね。

ちなみに、WEBエラーログを見ますと…

PHP Fatal error: Call to undefined function: imagegif() in /virtual/xxx.xxx.xx.xx/.../.../test.php on line 6

と出ています。6行目になにかあり…?でしょうか…
2007.07.11 00:55
情報追記いたします。
print_r (gd_info());
を実行したところ…

Array (
[GD Version] => 1.6.2 or higher
[FreeType Support] => 1
[FreeType Linkage] => with freetype
[T1Lib Support] =>
[GIF Read Support] =>
[GIF Create Support] =>
[JPG Support] => 1
[PNG Support] => 1
[WBMP Support] => 1
[XBM Support] =>
[JIS-mapped Japanese Font Support] => )

これはつまり…GIFを作れない、ということでしょうか??
2007.07.11 01:23
こんにちは、くまさん。おっしゃる通りのようです。PHPのマニュアルでimagegif関数を見たらGIFライセンスの関係でGDのバージョン1.6辺りからしばらくのバージョンはGIFが作成できないようですね。画像が表示されればGIFではなくても大丈夫なのでimagepng関数に変更してheader関数のカッコ内もpngに変更して実行してみてください。近いうちにGDのサポート状況を調べてGIFが使えない場合にはPNGに自動的に出力を変えるように対応したいと思います。サーバのGDライブラリを最新のものに上げてもらうのも有効だと思います。
2007.07.11 13:44
管理人さん、ありがとうございます。その後のご報告です。

早速、該当部分をGIFでなくpngに書き換えました。
すると、今度は罫線の入った背景だけが書き出され、文字がプリントされないという状況になりました。
エラーログを見ると、フォントをオープンできない旨のことが出ていました。

自分なりにいろいろ調べて、回避策(?)を見つけました。
$fontの行に、フォントのパスを直接書くというものです。
(邪道かも…)

モジュールの管理画面でフォントを選べなくなってしまいますが、これで、やっとcaptchaが動くようになりました。
(これがチカッパでは改造なしで動くのですから、GDのバージョンが1.6以前なのでしょうね。)

いろいろとアドバイスしてくださってありがとうございます! 大変助かりましたm(_ _)m

次はフォント指定をソース内に埋め込むのではなく、モジュール管理から選べるにはどうしたらよいか探りたいです。WEBARENAって…なにかと大変(^^;
2007.07.11 21:20
こんばんわ.初めまして.
このたび導入したのですが,多少不具合があり,
正常に表示できなかったのですが.

自力で解決しましたので,そのレポートを少々書いておきます.

GDライブラリのgif対応ですが,2.0.x以降では対応しているようです.

画像を生成しようとすると,Could not find/open font となる.

公式のPHPマニュアルのimagettftextのページに書いてあるソースの

// GD の環境変数を設定する     //←
putenv('GDFONTPATH=' . realpath('.'));  //←

// 使用するフォント名 (拡張子 .ttf がないことに注意)
$font = 'SomeFont';

と言う部分を借用しまして,captcha.phpの10行目辺りに,矢印の付いた二行を追加.
以上で,正常に動きました.
2008.02.09 20:29

Add comment

:

:
: