ホームページ > バックエンド開発 > PHPチュートリアル > php验证码可以显示,但放在CI上边就又不显示了!

php验证码可以显示,但放在CI上边就又不显示了!

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-06 20:47:05
オリジナル
1385 人が閲覧しました

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

<code>    <?php //application->libraries->MY_Imagecode.php

    class MY_Imagecode{

    private $width ;

    private $height;

    private $counts;

    private $distrubcode;

    private $fonturl;

    private $session;

    function __construct($width = 120,

    $height=30,

    $counts=5,

    $distrubcode="1235467890qwertyuipkjhgfdaszxcvbnm",

    $fonturl="http://localhost/xampp/jyz/public/AdobeGothicStd-Bold.otf"

    ){

    $this->width=$width;

    $this->height=$height;

    $this->counts=$counts;

    $this->distrubcode=$distrubcode;

    $this->fonturl=$fonturl;

    $this->session=$this->sessioncode();

    session_start();

    $_SESSION['code']=$this->session;

    }

    function imageout(){

    $im=$this->createimagesource();

    $this->setbackgroundcolor($im);

    $this->set_code($im);

    $this->setdistrubecode($im);

    ImageGIF($im);

    ImageDestroy($im);

    }

    private function createimagesource(){

    return imagecreate($this->width,$this->height);

    }

    private function setbackgroundcolor($im){

    $bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255),rand(200,255));

    imagefill($im,0,0,$bgcolor);

    }

    private function setdistrubecode($im){

    $count_h=$this->height;

    $cou=floor($count_h*2);

    for($i=0;$iwidth);

    $y=rand(0,$this->height);

    $jiaodu=rand(0,360);

    $fontsize=rand(8,15);

    $fonturl=$this->fonturl;

    $originalcode = $this->distrubcode;

    $countdistrub = strlen($originalcode);

    $dscode = $originalcode[rand(0,$countdistrub-1)];

    $color = ImageColorAllocate($im, rand(40,140),rand(40,140),rand(40,140));

    imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);

    }

    }

    private function set_code($im){

    $width=$this->width;

    $counts=$this->counts;

    $height=$this->height;

    $scode=$this->session;

    $y=floor($height/2)+floor($height/4);

    $fontsize=rand(30,35);

    $fonturl="./AdobeGothicStd-Bold.otf";

    $counts=$this->counts;

    for($i=0;$idistrubcode;

    $countdistrub=strlen($originalcode);

    $_dscode="";

    $counts=$this->counts;

    for($j=0;$j

    <?php //application->Controllers->images.php

    Header("Content-type:image/GIF");

    class images extends CI_Controller{

    public function index(){

    $this->load->library('MY_Imagecode');

    echo $this->MY_Imagecode->imageout();

    }

    }

</code>

ログイン後にコピー
ログイン後にコピー

回复内容:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

<code>    <?php //application->libraries->MY_Imagecode.php

    class MY_Imagecode{

    private $width ;

    private $height;

    private $counts;

    private $distrubcode;

    private $fonturl;

    private $session;

    function __construct($width = 120,

    $height=30,

    $counts=5,

    $distrubcode="1235467890qwertyuipkjhgfdaszxcvbnm",

    $fonturl="http://localhost/xampp/jyz/public/AdobeGothicStd-Bold.otf"

    ){

    $this->width=$width;

    $this->height=$height;

    $this->counts=$counts;

    $this->distrubcode=$distrubcode;

    $this->fonturl=$fonturl;

    $this->session=$this->sessioncode();

    session_start();

    $_SESSION['code']=$this->session;

    }

    function imageout(){

    $im=$this->createimagesource();

    $this->setbackgroundcolor($im);

    $this->set_code($im);

    $this->setdistrubecode($im);

    ImageGIF($im);

    ImageDestroy($im);

    }

    private function createimagesource(){

    return imagecreate($this->width,$this->height);

    }

    private function setbackgroundcolor($im){

    $bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255),rand(200,255));

    imagefill($im,0,0,$bgcolor);

    }

    private function setdistrubecode($im){

    $count_h=$this->height;

    $cou=floor($count_h*2);

    for($i=0;$iwidth);

    $y=rand(0,$this->height);

    $jiaodu=rand(0,360);

    $fontsize=rand(8,15);

    $fonturl=$this->fonturl;

    $originalcode = $this->distrubcode;

    $countdistrub = strlen($originalcode);

    $dscode = $originalcode[rand(0,$countdistrub-1)];

    $color = ImageColorAllocate($im, rand(40,140),rand(40,140),rand(40,140));

    imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);

    }

    }

    private function set_code($im){

    $width=$this->width;

    $counts=$this->counts;

    $height=$this->height;

    $scode=$this->session;

    $y=floor($height/2)+floor($height/4);

    $fontsize=rand(30,35);

    $fonturl="./AdobeGothicStd-Bold.otf";

    $counts=$this->counts;

    for($i=0;$idistrubcode;

    $countdistrub=strlen($originalcode);

    $_dscode="";

    $counts=$this->counts;

    for($j=0;$j

    <?php //application->Controllers->images.php

    Header("Content-type:image/GIF");

    class images extends CI_Controller{

    public function index(){

    $this->load->library('MY_Imagecode');

    echo $this->MY_Imagecode->imageout();

    }

    }

</code>

ログイン後にコピー
ログイン後にコピー

1、ci中调用library的方式为

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

//application->Controllers->images.php

Header("Content-type:image/GIF");

class images extends CI_Controller{

    public function index(){

        $this->load->library('MY_Imagecode');

        $imagecode = new MY_Imagecode();

 

        //or

        //$imagecode = null;

        //$this->load->library('MY_Imagecode', null, $imagecode);

 

        $imagecode->imageout();

 

    }

}

ログイン後にコピー

2、ci中使用session的方式为

1

2

3

4

$this->load->library('session');

$this->session->set_userdata(array('code'=>$this->session));

//session_start();

//$_SESSION['code']=$this->session;

ログイン後にコピー
関連ラベル:
php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート