A php verification code

Source: Internet
Author: User
A php verification code is carefully crafted. for example, if you have developed a website member logon page using PHP, you must implement the verification code. the verification code picture can be static or dynamic, the text can be Chinese characters, English letters, French letters, and Japanese characters. For example, the verification code Image:

:

Of course it can be modified. it can be implemented only when PHP source code is imported.

The code is as follows:

01.

02. class Imagecode {

03. private $ width;

04. private $ height;

05. private $ counts;

06. private $ distrubcode;

07. private $ fonturl;

08. private $ session;

09. function _ construct ($ width = 120, $ height = 30, $ counts = 5, $ distrubcode = "1235467890 qwertyuipkjhgfdaszxcvbnm", $ fonturl = "C: \ Windows \ Fonts \ TektonPro-BoldCond.otf "){

10. $ this-> width = $ width;

11. $ this-> height = $ height;

12. $ this-> counts = $ counts;

13. $ this-> distrubcode = $ distrubcode;

14. $ this-> fonturl = $ fonturl;

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

16. session_start ();

17. $ _ SESSION ['code'] = $ this-> session;

18 .}

19.

20. function imageout (){

21. $ im = $ this-> createimagesource ();

22. $ this-> setbackgroundcolor ($ im );

23. $ this-> set_code ($ im );

24. $ this-> setdistrubecode ($ im );

25. ImageGIF ($ im );

26. ImageDestroy ($ im );

27 .}

28.

29. private function createimagesource (){

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

31 .}

32. private function setbackgroundcolor ($ im ){

33. $ bgcolor = ImageColorAllocate ($ im, rand (200,255), rand (200,255), rand (200,255); // ± 000000000000° n'hangé «

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

35 .}

36. private function setdistrubecode ($ im ){

37. $ count_h = $ this-> height;

38. $ cou = floor ($ count_h * 2 );

39. for ($ I = 0; $ I <$ cou; $ I ++ ){

40. $ x = rand (0, $ this-> width );

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

42. $ jiaodu = rand (0,360 );

43. $ fontsize = rand (8, 15 );

44. $ fonturl = $ this-> fonturl;

45. $ originalcode = $ this-> distrubcode;

46. $ countdistrub = strlen ($ originalcode );

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

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

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

50.

51 .}

52 .}

53. private function set_code ($ im ){

54. $ width = $ this-> width;

55. $ counts = $ this-> counts;

56. $ height = $ this-> height;

57. $ scode = $ this-> session;

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

59. $ fontsize = rand (30, 35 );

60. $ fonturl = "C: \ Windows \ Fonts \ AdobeGothicStd-Bold.otf"; // $ this-> fonturl;

61.

62. $ counts = $ this-> counts;

63. for ($ I = 0; $ I <$ counts; $ I ++ ){

64. $ char = $ scode [$ I];

65. $ x = floor ($ width/$ counts) * $ I + 8;

66. $ jiaodu = rand (-20, 30 );

67. $ color = ImageColorAllocate ($ im, rand (0, 50), rand (50,100), rand (100,140 ));

68. imagettftext ($ im, $ fontsize, $ jiaodu, $ x, $ y, $ color, $ fonturl, $ char );

69 .}

70.

71.

72.

73 .}

74. private function sessioncode (){

75. $ originalcode = $ this-> distrubcode;

76. $ countdistrub = strlen ($ originalcode );

77. $ _ dscode = "";

78. $ counts = $ this-> counts;

79. for ($ j = 0; $ j <$ counts; $ j ++ ){

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

81. $ _ dscode. = $ dscode;

82 .}

83. return $ _ dscode;

84.

85 .}

86 .}

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

88. $ imagecode = new Imagecode (160,50 );

89. $ imagecode-> imageout ();


After writing, open it in the Dreamweaver editor and upload OK.

Do happy!

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.