index.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <?php
  2. require('../class/connect.php');
  3. //取得随机数
  4. function domake_password($pw_length){
  5. global $public_r;
  6. if($public_r['keytog']==1)//字母
  7. {
  8. $low_ascii_bound=65;
  9. $upper_ascii_bound=90;
  10. $notuse=array(91);
  11. }
  12. elseif($public_r['keytog']==2)//数字+字母
  13. {
  14. $low_ascii_bound=50;
  15. $upper_ascii_bound=90;
  16. $notuse=array(58,59,60,61,62,63,64,73,79);
  17. }
  18. else//数字
  19. {
  20. $low_ascii_bound=48;
  21. $upper_ascii_bound=57;
  22. $notuse=array(58);
  23. }
  24. while($i<$pw_length)
  25. {
  26. if(PHP_VERSION<'4.2.0')
  27. {
  28. mt_srand((double)microtime()*1000000);
  29. }
  30. mt_srand();
  31. $randnum=mt_rand($low_ascii_bound,$upper_ascii_bound);
  32. if(!in_array($randnum,$notuse))
  33. {
  34. $password1=$password1.chr($randnum);
  35. $i++;
  36. }
  37. }
  38. return $password1;
  39. }
  40. //返回颜色
  41. function ReturnShowKeyColor($img){
  42. global $public_r;
  43. //背景色
  44. if($public_r['keybgcolor'])
  45. {
  46. $bgcr=ToReturnRGB($public_r['keybgcolor']);
  47. $r['bgcolor']=imagecolorallocate($img,$bgcr[0],$bgcr[1],$bgcr[2]);
  48. }
  49. else
  50. {
  51. $r['bgcolor']=imagecolorallocate($img,102,102,102);
  52. }
  53. //文字色
  54. if($public_r['keyfontcolor'])
  55. {
  56. $fcr=ToReturnRGB($public_r['keyfontcolor']);
  57. $r['fontcolor']=ImageColorAllocate($img,$fcr[0],$fcr[1],$fcr[2]);
  58. }
  59. else
  60. {
  61. $r['fontcolor']=ImageColorAllocate($img,255,255,255);
  62. }
  63. //干扰色
  64. if($public_r['keydistcolor'])
  65. {
  66. $dcr=ToReturnRGB($public_r['keydistcolor']);
  67. $r['distcolor']=ImageColorAllocate($img,$dcr[0],$dcr[1],$dcr[2]);
  68. }
  69. else
  70. {
  71. $r['distcolor']=ImageColorAllocate($img,71,71,71);
  72. }
  73. return $r;
  74. }
  75. //显示验证码
  76. function ShowKey($v){
  77. $vname=ecmsReturnKeyVarname($v);
  78. $key=strtolower(domake_password(4));
  79. ecmsSetShowKey($vname,$key);
  80. //是否支持gd库
  81. if(function_exists("imagejpeg"))
  82. {
  83. header ("Content-type: image/jpeg");
  84. $img=imagecreate(47,20);
  85. $colorr=ReturnShowKeyColor($img);
  86. $bgcolor=$colorr['bgcolor'];
  87. $fontcolor=$colorr['fontcolor'];
  88. $distcolor=$colorr['distcolor'];
  89. imagefill($img,0,0,$bgcolor);
  90. imagestring($img,5,6,3,$key,$fontcolor);
  91. for($i=0;$i<90;$i++) //加入干扰象素
  92. {
  93. imagesetpixel($img,rand()%70,rand()%30,$distcolor);
  94. }
  95. imagejpeg($img);
  96. imagedestroy($img);
  97. }
  98. elseif (function_exists("imagepng"))
  99. {
  100. header ("Content-type: image/png");
  101. $img=imagecreate(47,20);
  102. $colorr=ReturnShowKeyColor($img);
  103. $bgcolor=$colorr['bgcolor'];
  104. $fontcolor=$colorr['fontcolor'];
  105. $distcolor=$colorr['distcolor'];
  106. imagefill($img,0,0,$bgcolor);
  107. imagestring($img,5,6,3,$key,$fontcolor);
  108. for($i=0;$i<90;$i++) //加入干扰象素
  109. {
  110. imagesetpixel($img,rand()%70,rand()%30,$distcolor);
  111. }
  112. imagepng($img);
  113. imagedestroy($img);
  114. }
  115. elseif (function_exists("imagegif"))
  116. {
  117. header("Content-type: image/gif");
  118. $img=imagecreate(47,20);
  119. $colorr=ReturnShowKeyColor($img);
  120. $bgcolor=$colorr['bgcolor'];
  121. $fontcolor=$colorr['fontcolor'];
  122. $distcolor=$colorr['distcolor'];
  123. imagefill($img,0,0,$bgcolor);
  124. imagestring($img,5,6,3,$key,$fontcolor);
  125. for($i=0;$i<90;$i++) //加入干扰象素
  126. {
  127. imagesetpixel($img,rand()%70,rand()%30,$distcolor);
  128. }
  129. imagegif($img);
  130. imagedestroy($img);
  131. }
  132. elseif (function_exists("imagewbmp"))
  133. {
  134. header ("Content-type: image/vnd.wap.wbmp");
  135. $img=imagecreate(47,20);
  136. $colorr=ReturnShowKeyColor($img);
  137. $bgcolor=$colorr['bgcolor'];
  138. $fontcolor=$colorr['fontcolor'];
  139. $distcolor=$colorr['distcolor'];
  140. imagefill($img,0,0,$bgcolor);
  141. imagestring($img,5,6,3,$key,$fontcolor);
  142. for($i=0;$i<90;$i++) //加入干扰象素
  143. {
  144. imagesetpixel($img,rand()%70,rand()%30,$distcolor);
  145. }
  146. imagewbmp($img);
  147. imagedestroy($img);
  148. }
  149. else
  150. {
  151. ecmsSetShowKey($vname,'ecms');
  152. echo ReadFiletext("../data/images/ecms.jpg");
  153. }
  154. }
  155. //返回变量名
  156. function ecmsReturnKeyVarname($v){
  157. if($v=='login')//登陆
  158. {
  159. $name='checkloginkey';
  160. }
  161. elseif($v=='reg')//注册
  162. {
  163. $name='checkregkey';
  164. }
  165. elseif($v=='info')//信息
  166. {
  167. $name='checkinfokey';
  168. }
  169. elseif($v=='spacefb')//空间反馈
  170. {
  171. $name='checkspacefbkey';
  172. }
  173. elseif($v=='spacegb')//空间留言
  174. {
  175. $name='checkspacegbkey';
  176. }
  177. elseif($v=='gbook')//留言
  178. {
  179. $name='checkgbookkey';
  180. }
  181. elseif($v=='feedback')//反馈
  182. {
  183. $name='checkfeedbackkey';
  184. }
  185. elseif($v=='getpassword')//取回密码
  186. {
  187. $name='checkgetpasskey';
  188. }
  189. elseif($v=='regsend')//重发激活邮件
  190. {
  191. $name='checkregsendkey';
  192. }
  193. elseif($v=='report')//报告
  194. {
  195. $name='checkreportkey';
  196. }
  197. else//评论pl
  198. {
  199. $name='checkplkey';
  200. }
  201. return $name;
  202. }
  203. $v=$_GET['v'];
  204. ShowKey($v);
  205. ?>