如何解决重定向后如何更改我的代码以使用验证码
我正在更改网站代码。我正在使用路由系统,然后将所有请求通过htaccess文件重定向到index.php文件。现在我的验证码图片不起作用。
验证码生成器:
<?php
session_start();
//Send a generated image to the browser
create_image();
exit();
header("Content-type: image/png");
function create_image(){
$x = 98;
$y = 45;
$im = imagecreate($x,$y);
$bgcolor=imagecolorallocate($im,13,17,25);
$text_color = imagecolorallocate($im,255,210);
function rand_string( $length ) {
$chars = "abcdklmnopqrstuvwxyzABCDEF0123456789GHIJKefghijLMNPQRSTUVWXYZ0123456789";
$str ="";
$size = strlen( $chars );
for( $i = 0; $i < $length; $i++ ) {
$str .= $chars[ rand( 0,$size - 1 ) ];
}
return $str;
}
$text=rand_string(rand(1,2));
$_SESSION['security_code']=strtolower($text);
imagettftext($im,24,3,2,32,$text_color,"fonts/grade.ttf",$text);
$color = imagecolorallocate($im,222,255);
for($i =2; $i < 55; $i+=mt_rand(2,6)) {
for($j =4; $j < 45; $j+=mt_rand(1,5)) {
imagesetpixel($im,$i,$j,$color);
}
}
imagejpeg($im);
imagedestroy($im);
}
?>
显示验证码图片的html代码:
<img id="imgCaptcha" src="Captcha.php" style="float: right;" />
htaccess重写以重定向:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
如何更改我的代码以在重定向后显示我的验证码图像?
解决方法
我发现了问题:
imagettftext($im,24,3,2,32,$text_color,"fonts/grade.ttf",$text);
找不到字体文件。 我将相对路径替换为绝对路径:
$font= __DIR__.'/fonts/grade.ttf';
imagettftext($im,$font,$text);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。