[英]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.