我正在尝试使用非常简单的计算总和来创建验证码。 但是当我尝试添加+时,它会变成一个空白框。
问题2和3
Q2:帽子标题真的需要并且有用吗?
Q3:$ font = dirName( FILE )。' /font/karate/Karate.ttf' ;;有人能解释一下 FILE 的作用吗?
这是我的代码:
<?php
ob_start();
session_start();
$randomnr = rand(1, 5);
$randomnr2 = rand(1, 5);
$plus = '+';
$randanswer = $randomnr + $randomnr2;
$_SESSION['randomnr2'] = md5($randanswer);
$im = imagecreatetruecolor(80, 20);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 150, 150, 150);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 80, 25, $black);
$font = dirName(__FILE__).'/font/karate/Karate.ttf'; //wat is dit?
imagettftext($im, 15 , 7, 15, 19, $grey, $font, $randomnr);
imagettftext($im, 15 , 4 , 30, 19, $grey, $font , $plus); *PROBLEM*
imagettftext($im, 15 , 10, 50, 19, $white, $font, $randomnr2);
//prevent caching on client side:
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
ob_end_flush;
?>
示例:http://nightcore.nl/captcha/captcha.php
如果你看到我绝对不会做的事情,请告诉我并告诉我什么是更好用的!
答案 0 :(得分:4)
您正在使用的Karate font,没有加号作为角色!
见0043的方框:它是空的。
__FILE__
是正在执行的php文件的文件名和完整路径。
从php 5.3开始,dirname(__FILE__)
可以替换为__DIR__
。