//Mein Code für diese Lektion ist so: Ich habe ihn mehrmals überprüft und keine Fehler festgestellt, aber der angezeigte Bestätigungscode enthält nur eine Nummer ... Warum passiert das?
<?php
$height=15 ;//Leinwand erstellen$img=imagecreatetruecolor($width, $height);//Farbe zuweisen$white=imagecolorallocate($img, 0xff, 0xff, 0xff);
//Füllen Sie die Leinwand mit Farbeimagefill($img, 0, 0, $white);//Generieren Sie den Wert des Bestätigungscodes$chars='1234567890';$chars_len=strlen( $chars);$code_len =4;//Verifizierungscodelänge$code="";//Anfangswertfor ($i=1; $i < $code_len; ++$i) { $rand=mt_rand(0 ,$chars_len-1);//Nimm zufällig vier Zahlen heraus $code=$rand;//Verbinde die genommenen Zahlen miteinander}//Speichere sie in der Sitzung und Verifizierung verwendensession_start() ;$_SESSION['ver_code']=$code;//Zufällige Zeichenfolgenfarbe zuweisen$str_color=imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand (0,255));
//Berechnen Sie die mittlere Anzeige der Zeichenfolge//Die Größe der Zeichenfolge$font=5;//Leinwandgröße$img_w=imagesx($img);
$img_h=imagesy($img) ;//Schriftgröße$font_w=imagefontwidth($font);$font_h=imagefontheight($font);//Stringgröße$code_w=$ font_w*$code_len;$ code_h=$font_h;$x=($img_w-$code_w)/2;$y=($img_h-$code_h)/2;//Überprüfung ausgeben Code auf die Leinwand übertragenimagestring( $img, $font, $x, $y, $code, $str_color);//Direkte Ausgabeimagejpeg($img);imagedestroy($img);
?>
for($i=0;$i<$code_len;$i++){
$rand=mt_rand(0,$chars_len-1);//随机取出数字
$code.=$rand; //将取出的四位数字拼接在一起
}
你少了个连接符
<?php
//生成验证码的背景
header('Content-type:image/jpeg');
//背景图的尺寸
$width=60;
$height=15;
//创建画布
$img=imagecreatetruecolor($width, $height);
//分配颜色
$white=imagecolorallocate($img, 0xff, 0xff, 0xff);
//填充颜色到画布
imagefill($img, 0, 0, $white);
//生成验证码的值
$chars='1234567890';
$chars_len=strlen($chars);
$code_len=4;//验证码长度
$code="";//初始值
for ($i=1; $i < $code_len; ++$i) {
$rand=mt_rand(0,$chars_len-1);//随机取出四个数字
$code.=$rand;//将取出的数字连接在一起
}
//存入session中,用验证
session_start();
$_SESSION['ver_code']=$code;
//随机分配字符串颜色
$str_color=imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
//计算字符串居中显示
//字符串的大小
$font=5;
//画布尺寸
$img_w=imagesx($img);
$img_h=imagesy($img);
//字体尺寸
$font_w=imagefontwidth($font);
$font_h=imagefontheight($font);
//字符串尺寸
$code_w=$font_w*$code_len;
$code_h=$font_h;
$x=($img_w-$code_w)/2;
$y=($img_h-$code_h)/2;
//把验证码输出到画布上
imagestring($img, $font,$x.$y.$code,$str_color);
//直接输出
imagejpeg($img);
imagedestroy($img);
?>
改成这样之后就会变成3个数字了...