繁体   English   中英

php代码不适用于创建验证码

[英]the php code is not working for creating captcha

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

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>

这里的问题是您没有可用于加载的字体。

您应该看到:

警告: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文件位于同一文件夹中。

注意:这些是示例链接,在发布时有效。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM