所以我自制的验证码以直线显示文本,但我认为正因为如此,机器人仍然可以注册 - 他们正在进入。
有人可以告诉我如何修改下面的代码以添加一个函数或使每个字母显示得比其他字母略高或略低的东西吗?请不要介意肮脏的编码,因为我不是 PHP 专业人士。感谢大家的帮助。
$image = imagecreatetruecolor(70, 20);
for ($i=0; $i < rand(20,40); $i++) {
$x = rand(0, 70);
$y = rand(0, 20);
imageline($image, $x, $y, $x+rand(0,10), $y+rand(0,240), imagecolorallocate($image, rand(0,255),rand(0,190),rand(1,90)));
imageline($image, $x, $y, $x+rand(0,11), $y+rand(0,34), imagecolorallocate($image, 255,rand(50,240),rand(241,240)));
}
$s = rand(1, 240);
$x = rand(50, 240);
$f = rand(1, 4);
$d = rand(1, 1);
$c = rand(1, 4);
imagestring($image, $c, 3, $f, $_GET["T"], imagecolorallocate($image, $s,$x,$s));
imagestring($image, $c, 4, $f, $_GET["T"], imagecolorallocate($image, 255,rand(50,240),rand(241,240)));
imagecolortransparent($image, imagecolorallocate($image, 255, 0, 0));
imageinterlace($image);
header("Content-type: image/gif");
imagegif($image);
imagedestroy($image);