確認コードに数字が 1 つしか表示されないのはなぜですか?
丫头
丫头 2018-04-21 11:01:31
0
5
3039

//このレッスンのコードは次のとおりです。何度か確認しましたが、エラーは見つかりませんでしたが、表示された確認コードには数字が 1 つしかありません...なぜこれが起こっているのですか?ガイダンスをお願いします


<?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);//ランダム4 つの数字を取り出します

$code=$rand;//抽出した数字を結合します

#}

#//それをセッションに保存し、検証を使用します

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);

# #?>


丫头
丫头

好好学PHP。

全員に返信(3)
王承毅

for($i=0;$i

$rand=mt_rand(0,$chars_len-1);//ランダムに数字を取り出す

$code.=$rand; //取り出した4桁を繋ぎ合わせます

}

コネクタが抜けています

いいねを押す +0
  • 返事 大丈夫です、ありがとう
    丫头 著者 2018-04-22 10:53:02
丫头

<?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);//ランダムに4つの数字を取り出します

$code.=$rand;//取り出した数字をつなぎ合わせます

}

//それをセッションに保存し、検証を使用

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);


?>

いいねを押す +0
丫头

TIM图片20180421112016.png

これに変更すると3つの数字になります…

いいねを押す +1
  • 返事 for ループにエラーがあります。次のようになります。 for($i=0;$i<$code_len;$i++){ $rand=mt_rand(0,$chars_len-1);//ランダムに数値を取り出す $code.=$rand; //取り出した4桁をつなぎ合わせます。 }
    王承毅 著者 2018-04-21 12:35:29
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート