【问题标题】:How to insert a own bg to captcha.?如何将自己的bg插入验证码?
【发布时间】:2014-04-01 09:47:06
【问题描述】:

以下是运行良好的代码,但我想添加我自己的背景 img 而不是蓝色。还想在代码中添加字母吗?请帮忙...

<?php
session_start();
$code=rand(10000,99999);
$_SESSION["code"]=$code ;
$im = imagecreatetruecolor(60, 24);
$bg = imagecolorallocate($im, 22, 86, 165);
$fg = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $bg);
imagestring($im, 5, 5, 5,  $code, $fg);
header("Cache-Control: no-cache, must-revalidate");
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

【问题讨论】:

    标签: php captcha


    【解决方案1】:

    使用验证码的想法是区分计算机和人类。这个验证码很容易被 OCR 程序破解。

    话虽如此,您需要执行以下操作:

    <?php
    session_start();
    $code=rand(10000,99999);
    $_SESSION["code"]=$code ;
    $im = imagecreatefrompng("bg.png");
    $fg = imagecolorallocate($im, 255, 255, 255);
    imagestring($im, 5, 5, 5,  $code, $fg);
    header("Cache-Control: no-cache, must-revalidate");
    header('Content-type: image/png');
    imagepng($im);
    imagedestroy($im);
    ?>
    

    【讨论】:

    • 使用字母数字验证码可以参考this
    • 谢谢,这很好用。最后一件事是如何添加字母和增加字体大小。
    • 你可以用 $code=generateRandomString(5) 代替 $code=rand(10000,99999)。 generateRandomeString() 的实现请参考this discussion。为了增加字体大小,5 是可用的最大字体,您已经在使用它了。因此,您需要考虑加载自己的字体。可以参考函数imageloadfont
    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多