PHP本番検証コードの詳細なチュートリアル
効果:
myvcode.class.php: 検証コードを作成するためのクラスをカプセル化します
リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー70: imageline($this->image, rand(1,$this->幅 / 2), rand(1,$this->高さ / 2),
リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリーimgcode.php出力画像
リーリー リーリー リーリー リーリー リーリーtest.html: imgタグリファレンスと同じ
リーリーa タグを追加し、js を使用してタグを変更する効果を実現できます。
リーリー
codeとchangeはそれぞれimgとaのIDです
[pic] を使用すると、PHP は pic という名前の定数があるかどうかを確認します。これは間違いなく見つからないため、ファイルの先頭に警告メッセージが出力されます。この情報は画像データの前に出力されるため、ブラウザで画像が認識されなくなります。解決策は、写真 $_SESSION['pic'] に引用符を追加することです
phpのGDライブラリを使えばできます
//検証コードをランダムに生成します
class randomString
{
function createRandomStr($strLen)
{
list($usec, $sec) =explode(' ', microtime()) ;
(float) $sec + ((float) $usec * 100000);
$number = '';
$number_len = $strLen;
$stuff = '1234567890abcdefghijklmnopqrstuvwxyz';//追加コード表示range ABCDEFGHIJKLMNOPQRSTUVW XYZ
$stuff_len = strlen($stuff) - 1;
for ($i = 0; $i < $number_len; $i++) {
$number .= substr($stuff, mt_rand(0, $stuff_len) ), 1);
}
return $number;
}
}
ZDライブラリを通して検証コードを画像に変換します
$number = $createStr->createRandomStr('4');//桁数認証コード内
$number_len = strlen( $number);
$_SESSION["VERIFY_CODE"] = $number;
// 認証コード画像を生成
$img_width = 60;
$img_height = 20;
$img = imageCreate($img_width, $img_height);
ImageColorAllocate($img, 0x6C, 0x74, 0x70);
$white = ImageColorAllocate($img, 0xff, 0xff, 0xff);
$ix = 6;
$iy = 2;
for ($i = 0; $i imageString($img, 5, $ix, $iy, $number[$i], $white);
$ix + = 14;
}
for($i =0;$i {
$randcolor = ImageColorallocate($img,rand(0,255),rand(0,255),rand(0,255) ));
imagesetpixel($img, rand()%100 , rand()%50 , $randcolor);
}
// 出力画像
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
imagepng($img);
imagedestroy($img);...本文の続き>>