[PHP-users 29558] Re: 数字認証画面を作りたい

Hiroshi Honma hiro0122_mail @ yahoo.co.jp
2006年 6月 30日 (金) 19:18:00 JST


To.高木 正弘 様へ。

返事が遅れてしまい申し訳ありません。
レスは見たんですが、それ以降PCにしばらく触れなくてorz

>header 関数のマニュアル
> http://www.php.net/manual/ja/function.header.php
>の中ごろにある「覚えておいて頂きたいのは、header() 関数は、……」以降
>の説明と、それに続くサンプルが参考になるのではないでしょうか。

header関数についてはサンプルをまねただけで、
詳しく理解していなかったので勉強します。

>あるいはブラウザで直接
> runner.php?TN=1
>を開いてみて、どんなふうになるか確かめてみるとか。

実際にTN=1のパラメータを付加してやってみると、

Warning: Cannot modify header information - headers already sent by

といった警告が表示され、そのあとにぐちゃぐちゃしたテキストの羅列が表示されます。 


警告されている部分は画像を表示しようとする直前の

 header('Content-type: image/png');

の行みたいです。

で、いろいろ検索して、以下のようなコードで行ったところ
ちゃんと表示できました。

<?php
if ($_GET['TN'] == '1') {

 $width = 200;

 $height = 200;

 $image = imagecreate($width, $height);

 $white = imagecolorallocate($image, 255, 255, 255);

 $black = imagecolorallocate($image, 0, 0, 0);

 imagefilledrectangle($image, 0, 0, $width, $height, $white);

 imagettftext($image, 10, 0, 20, 110, $black,

 "../fonts/verdana.ttf", "I love you!");

 imagepng($image);
 imagedestroy($image);

 exit();
}

?>

<html>
<head>
<title>test2</title>
</head>
<body>
Test<br>
<IMG SRC="./test2.php?TN=1">
</body>
</html>

これができるのだから何かコードに問題があると思い、
今いろいろとためしているところです。

>以下のようなライブラリが公開されています。
> http://pear.php.net/package/Text_Captcha
> http://pear.php.net/manual/ja/package.text.text-captcha.php
>もちろんすべて PHP で書かれていますし、実際に動作するサンプルプログラ
>ムも同梱されています。時間のあるときにでも読んでみてはいかがでしょうか。

ライブラリについてはさっそくVer0.1.6のText_CAPTCHA
をダウンロードし、exsample/CAPTCHA_test.phpの表示を試みたのですが、

Warning: main(Text/CAPTCHA.php): failed to open stream: No such file or
directory in

という警告が表示され、そのコードは、

        require_once 'Text/CAPTCHA.php';

という部分です。
Text/CAPTHCHA.phpというものが足りないようなので、
今、どうしようか考えているところです。

ありがとうございます。
今後とも何卒よろしくお願いします。 


--------------------------------------
Let's start Yahoo! Auction  -  Free Campaign Now!
http://pr.mail.yahoo.co.jp/auction/


PHP-users メーリングリストの案内