簡體   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