php代码无法用于创建验证码

时间:2015-10-25 23:35:35

标签: php

我试图在php中显示一些随机数字作为图像。实际上我正在开发php中的验证码,我知道这些只是随机数,但首先我认为我应该制作一个基本的随机数图像所以我找了它并创建了下面的代码,但它不起作用,它没有显示aything除了我放在img标签中的alt文本。有人可以指出给定代码中的错误是什么。 Thanyou !!!

generator.php

<?php
session_start();
header("Content-type: image/jpeg");
$text=$_SESSION['text']=rand(10000,99999);
$image_width= 100;
$image_height= 40;
$font_size= 30;
$image=imagecreate($image_width,$image_height);
imagecolorallocate($image,255,255,255);
$text_color=imagecolorallocate($image,0,0,0);
imagettftext($image,$font_size,0,15,30,$text_color,'Sans-serif',$text);
imagejpeg($image);
?>

captcha.php

<?php

?>
<html>
<head>
</head>
<body>
<h1>Captcha PHP </h1>
<img src="generator.php" alt="There is something wrong"/>
</body>
</html>

1 个答案:

答案 0 :(得分:3)

这里的问题是你没有可以加载的字体。

你应该看到:

  

警告:imagettftext():无法在...中找到/打开字体

作为测试代码时对我的通知。如果未显示,请检查您的日志。

从任何流行的字体网站下载“Sans-serif”字体或“Arial”。

您首先要将其声明为:

$font = 'arial.ttf'; // I used this as an example

然后将现有行修改为:

imagettftext($image,$font_size,0,15,30,$text_color,$font,$text);

旁注:您可能需要增加图像的宽度,或者减小字体大小,因为它会在右侧切掉一点。

我在这里找到了“Arial.ttf”文件来测试:

http://www.font-police.com/affiche.php?a=classique&b=sans-serif&c=arial.ttf

直接链接:

下载(测试)并将其上传到您的服务器,使其与您的.php文件位于同一文件夹中。

N.B。:这些是示例链接,并在发布时正在运作。

如果它们将来不再存在,只需找到另一种字体来源,那里就有很多。