Rumah  >  Soal Jawab  >  teks badan

Mengapa kod pengesahan saya hanya menunjukkan satu nombor?

//Kod saya untuk pelajaran ini adalah seperti ini saya menyemaknya beberapa kali dan tidak melihat sebarang ralat, tetapi kod pengesahan yang dipaparkan hanya mempunyai satu nombor... Mengapa ini berlaku?

<?php

//Latar belakang untuk menjana kod pengesahan

header('Content-type:image/jpeg');

//Saiz imej latar belakang

$width=60;

$height=15 ;

//Buat kanvas

$img=imagecreatetruecolor($width, $height);

//Tetapkan warna

$white=imagecolorallocate($img, 0ff

,0ff);

//Isi warna Ke kanvas

isi imej($img, 0, 0, $white);

//Jana nilai kod pengesahan

$chars='1234567890';

=strlen_len $chars);

$code_len =4;//Panjang kod pengesahan

$code="";//Nilai awal

untuk ($i=1; $i < $code_len; ++$i) {

$rand=mt_rand(0 ,$chars_len-1);//Keluarkan empat nombor secara rawak

$code=$rand;//Sambungkan nombor yang diambil bersama

}

//Simpannya ke dalam sesi dan gunakan pengesahan

session_start() ;

$_SESSION['ver_code']=$code;

//Tetapkan warna rentetan secara rawak

$str_color=imagecolorallocate($img, mt_rand(0,255),(0,mt_rand(0,255),mt_rand(0,255) (0,255));

//Kira paparan tengah rentetan

//Saiz rentetan

$font=5;

//Saiz kanvas

$img_w=imagesx($img);

$img_h=imagesy($img) ;

//Saiz fon

$font_w=imagefontwidth($font);

$font_h=imagefontheight($font);

//String size

//String size

font_w*$code_len;

$ code_h=$font_h;

$x=($img_w-$code_w)/2;

$y=($img_h-$code_h)/2;

//Keluarkan pengesahan kod ke kanvas

imagestring( $img, $font, $x, $y, $code, $str_color);

//Direct output

imagejpeg($img);

imagedestroy($img);


?>

丫头丫头2395 hari yang lalu2998

membalas semua(5)saya akan balas

  • 王承毅

    王承毅2018-04-21 12:33:36

    untuk($i=0;$i<$code_len;$i++){

    $rand=mt_rand(0,$chars_len-1);//Keluarkan nombor secara rawak

    $code.=$rand; Adakah empat digit yang dikeluarkan akan disambung bersama

    }

    Anda kehilangan penyambung

    balas
    0
  • 丫头

    Itu ok, terima kasih

    丫头 · 2018-04-22 10:53:02
  • 丫头

    丫头2018-04-21 11:28:11

    <?php

    //Latar belakang untuk menjana kod pengesahan

    header('Content-type:image/jpeg');

    //Saiz imej latar belakang

    $width=60;

    $height=15 ;

    //Buat kanvas

    $img=imagecreatetruecolor($width, $height);

    //Tetapkan warna

    $white=imagecolorallocate($img, 0xff, 0x

    );

    //Isi warna Ke kanvas

    isi imej($img, 0, 0, $white);

    //Jana nilai kod pengesahan

    $chars='1234567890';

    $chars_len=strlen($chars_len=strlen aksara);

    $code_len =4;//Panjang kod pengesahan

    $code="";//Nilai awal

    untuk ($i=1; $i < $code_len; ++$i) {

    $rand=mt_rand(0 ,$chars_len-1);//Keluarkan empat nombor secara rawak

    $kod.=$rand;//Sambungkan nombor yang diambil bersama

    }

    //Simpan ke dalam sesi dan gunakan pengesahan

    session_start( );

    $_SESSION['ver_code']=$code;

    //Tetapkan warna rentetan secara rawak

    $str_color=imagecolorallocate($img, mtrand(0,255), mtrand(0,255), mtrand(0,255),mt_rand(0,255) (0,255));

    //Kira paparan tengah rentetan

    //Saiz rentetan

    $font=5;

    //Saiz kanvas

    $img_w=imagesx($img);

    $img_h=imagesy($img );

    //Saiz fon

    $font_w=imagefontwidth($font);

    $font_h=imagefontheight($font);

    //String size=$$

    font_w*$code_len;

    $code_h=$font_h;

    $x=($img_w-$code_w)/2;

    $y=($img_h-$code_h)/2;

    //Keluarkan pengesahan kod pada kanvas

    imagestring ($img, $font,$x.$y.$code,$str_color);

    //Direct output

    imagejpeg($img);

    imagedestroy($img);


    ?>

    balas
    0
  • 丫头

    丫头2018-04-21 11:21:00

    TIM图片20180421112016.png

    Selepas tukar kepada ini, ia akan menjadi 3 nombor...

    balas
    1
  • 王承毅

    Terdapat ralat dalam gelung untuk anda, ia sepatutnya seperti ini. untuk($i=0;$i<$kod_len;$i++){ $rand=mt_rand(0,$chars_len-1);//Keluarkan nombor secara rawak $code.=$rand; //Sambung empat digit yang diambil bersama }

    王承毅 · 2018-04-21 12:35:29
  • Batalbalas