使用php时验证码不起作用

使用php时验证码不起作用,php,image,captcha,imagettftext,Php,Image,Captcha,Imagettftext,我的验证码不起作用,我可以调出后面的行,但数字在验证码中不可见。这段代码在本地主机上运行得很好,但在我的托管网站上却不是 代码如下: <?php session_start(); header('Content-type: image/jpeg'); $text= $_SESSION['secure']; $font_size =30; $image_width= 110; $image_height=40; $image=imagecreate($image_width,$imag

我的验证码不起作用,我可以调出后面的行,但数字在验证码中不可见。这段代码在本地主机上运行得很好,但在我的托管网站上却不是

代码如下:

<?php
session_start();
header('Content-type: image/jpeg');

$text= $_SESSION['secure'];

$font_size =30;
$image_width= 110;
$image_height=40;

$image=imagecreate($image_width,$image_height);
imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);


for($x=1; $x<=30; $x++){
$x1 = rand(1,100);
$x2 = rand(1,100);
$y1 = rand(1,100);
$y2 = rand(1,100);
imageline($image, $x1, $x2, $y1, $y2, $text_color);
}

imagettftext($image, $font_size, 0, 15, 30, $text_color, 'font.TTF', $text);
imagejpeg($image);  
?>


我猜您的网络主机服务器上缺少字体。尝试一个免费的,可能安装在服务器上,或者只需将字体上传到您的网络主机,然后设置字体文件的正确路径,我猜您的网络主机服务器上缺少字体。请尝试一个免费的,可能安装在服务器上,或者只需将字体上载到您的网络主机,然后设置字体文件的正确路径。我对该行进行了注释,收到了以下警告和注意事项:

Notice: Undefined index: secure in F:\xampp\htdocs\captcha.php on line 4 
Warning: imagettftext() [function.imagettftext]: Invalid font filename in F:\xampp\htdocs\captcha.php on line 23
因此,首先检查字体位置。 然后检查$\u SESSION['secure']值是否为空,如果为空,则检查该会话为何为空。希望对你有帮助

编辑: 1.我将代码保存在本地主机的php文件中。 2.包括标题的通信行('Content-type:image/jpeg');因为它将页面mime类型设置为jpg 3.我读了通知和警告。
无论如何,我认为您的问题是会话值为空或检查您的服务器中是否启用了gd。

我对该行进行了评论,并收到了以下警告和注意事项:

Notice: Undefined index: secure in F:\xampp\htdocs\captcha.php on line 4 
Warning: imagettftext() [function.imagettftext]: Invalid font filename in F:\xampp\htdocs\captcha.php on line 23
因此,首先检查字体位置。 然后检查$\u SESSION['secure']值是否为空,如果为空,则检查该会话为何为空。希望对你有帮助

编辑: 1.我将代码保存在本地主机的php文件中。 2.包括标题的通信行('Content-type:image/jpeg');因为它将页面mime类型设置为jpg 3.我读了通知和警告。
无论如何,我认为您的问题是会话值为空,或者检查您的服务器中是否启用了gd。

您肯定应该使用recaptcha。它的api非常容易使用,不使用它是一种犯罪。谢谢你的建议:)你能帮我处理上面的代码吗?如果您能找出问题所在,请注释这一行://header('Content-type:image/jpeg');看看你得到了什么错误?@siamak.a.m我得到了这样的东西>>创建者:gd jpeg v1.0(使用IJG jpeg v62),默认质量>>和许多垃圾东西:检查这里www.pingcampus.com/mysql/generate.phpy你肯定应该使用recaptcha。它的api非常容易使用,不使用它是一种犯罪。谢谢你的建议:)你能帮我处理上面的代码吗?如果您能找出问题所在,请注释这一行://header('Content-type:image/jpeg');看看你得到了什么错误?@siamak.a.m我得到了这样的东西>>创建者:gd jpeg v1.0(使用IJG jpeg v62),默认质量>>和许多垃圾东西:检查这里www.pingcampus.com/mysql/generate.phpI已经在主机上上传了字体,我现在正试图使用$_Server['DOCUMENT_ROOT'定义一个特定的路径;我创建了一个新变量来存储字体文件的位置:$font=$\u SERVER['DOCUMENT\u ROOT']./mysql/font.TTF';并将函数用作**imagettftext($image,$font_size,0,15,30,$text_color,$font,$text);**仍然没有工作我已经上传了主机上的字体,我现在试图定义一个特定的路径使用$_服务器['DOCUMENT_ROOT'];我创建了一个新变量来存储字体文件的位置:$font=$\u SERVER['DOCUMENT\u ROOT']./mysql/font.TTF';并将函数用作**imagettftext($image,$font_size,0,15,30,$text_color,$font,$text);**仍然不起作用。你能给我一个演练,告诉我你是如何准确地得到错误的吗?另外,我希望您提醒您,我的代码在本地主机上运行得非常好,但在我的WebHost上运行得非常好。请检查编辑并将此代码置于脚本之上:ini_set('error_reporting',E_ALL);若要打开错误报告,请给我一个关于如何准确获取错误的演练?另外,我希望您提醒您,我的代码在本地主机上运行得非常好,但在我的WebHost上运行得非常好。请检查编辑并将此代码置于脚本之上:ini_set('error_reporting',E_ALL);打开错误报告。