2017-06-15 140 views
1

我试图做一个验证码图像渲染随机文本(看看我的$_SESSION["captcha"])。没有正确渲染我的图像

它使用WAMP在本地主机上完美工作,但在我的网站上,它只显示透明的64x20图像,没有文字,没有任何内容。

我有一个错误500之前,我安装了php5-gd +重新启动Apache,也许我错过了什么安装?

我无法访问我的(错误)日志。

这里是我的代码:

<?php 

session_start(); 

$_SESSION["captcha"] = mt_rand(100, 999); 
$img = imagecreatetruecolor(64, 20); 
$font = "Inversionz.otf"; 

imagealphablending($img, true); 
imagesavealpha($img, true); 

imagefill($img, 0, 0, 0x7fff0000); 
$textcolor = imagecolorallocate($img, 0, 0, 0); 

imagettftext($img, 27, 0, 0, 20, $textcolor, $font, $_SESSION["captcha"]); 

header("Content-type:image/png"); 
imagepng($img); 
imagedestroy($img); 

?> 

我的字体(Inversionz.otf)上传。

+0

获取访问这些错误日志,他们会告诉你到底是什么问题。或者,也许你可以设置自己的日志? 'ini_set(“log_errors”,1); ini_set(“error_log”,“/tmp/php-error.log”); error_log(“你好,错误!”);'你已经知道你的代码有效,所以人们不得不大肆猜测它没有错误日志的环境出了什么问题。我的猜测是字体丢失。 – mkaatman

+0

@mkaatman字体不会丢失,正如我所说,我可以通过在我的浏览器中访问它来下载它。我添加了你的代码并没有发生任何事情(没有创建文件夹/没有显示错误)。 –

+0

只是踢,本地主机如果你改变字体名称为无效,行为是否匹配? PHP版本是一样的吗?你可以安装一些东西,但你无法访问日志,这太疯狂了。 – mkaatman

回答

1

好的,你让我去找那个字体并在本地运行。 :)

我有您在,直到同样的错误......

击鼓声请。

我在路径中添加了./。 $font = "./Inversionz.otf";

+0

Omg大声笑..非常感谢您的时间和你的帮助! –

+0

没问题。很高兴它的工作。 – mkaatman