login.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. class login_c extends Control
  3. {
  4. function __construct()
  5. {
  6. parent::Control();
  7. $this->load_model("user");
  8. }
  9. function login_c()
  10. {
  11. $this->__construct();
  12. }
  13. //会员登录界面
  14. function index_f()
  15. {
  16. if($_SESSION["oauthuser_info"])
  17. {
  18. $oauthuser_info=$_SESSION["oauthuser_info"];
  19. $rs = $this->user_m->user_from_openid($oauthuser_info->openid);
  20. if($rs){
  21. //将数据存到session中
  22. if($rs["status"] == 1)
  23. {
  24. $_SESSION["user_id"] = $rs["id"];
  25. $_SESSION["user_name"] = $rs["username"];
  26. $_SESSION["group_id"] = $rs["groupid"];
  27. $_SESSION["user_rs"]= $rs;
  28. error('',$this->url('index'));
  29. exit;
  30. }
  31. $this->user_m->update_userwxthumb($rs["id"],$_SESSION["oauthuser_info"]->headimgurl);
  32. }else{
  33. error('',$this->url('register'));
  34. //print_r($_SESSION["oauthuser_info"]->nickname);
  35. exit;
  36. }
  37. }else{
  38. error('',$this->url('wxlogin'));
  39. //print_r("登录失败");
  40. exit;
  41. }
  42. /*stdClass Object ( [openid] => oF_-jjiNwznHiXuNbbkVSeaokR14 [nickname] => 刘超 [sex] => 1
  43. [language] => zh_CN [city] => 惠州 [province] => 广东 [country] => 中国
  44. [headimgurl] => http://wx.qlogo.cn/mmopen/3bY8zuTsQSUMrJTZjIee4ReEJw4evWV0qIl88jdagq7osgicu2U3fvuXhSYmoCvqft5Fvpgu7CqgicHthpSeaia4x9gZIkASMFu/0
  45. [privilege] => Array ( ) )*/
  46. //print_r("OK".$_SESSION["oauthuser_info"]);
  47. /*
  48. if(!$_SESSION["user_id"])
  49. {
  50. error('',$this->url('register'));
  51. exit;
  52. }else{
  53. }*/
  54. if(!$this->sys_config["login_status"])
  55. {
  56. $message = $this->sys_config["close_login"] ? $this->sys_config["close_login"] : "Not Login!";
  57. error($message,$this->url());
  58. }
  59. $b_url = $_SESSION["last_url"] ? $_SESSION["last_url"] : ($_SERVER["HTTP_REFERER"] ? $_SERVER["HTTP_REFERER"] : site_url("index"));
  60. if($_SESSION["user_id"] && $_SESSION["user_name"])
  61. {
  62. error('',$this->url('index'));
  63. }
  64. //登录后的向导
  65. $leader[0] = array("url"=>site_url("login","",false),"title"=>$this->lang["login"]);
  66. $this->tpl->assign("leader",$leader);
  67. $this->tpl->display("login.".$this->tpl->ext);
  68. }
  69. function ok_f()
  70. {
  71. if(!$this->sys_config["login_status"])
  72. {
  73. $message = $this->sys_config["close_login"] ? $this->sys_config["close_login"] : "Not Login!";
  74. echo $message;
  75. exit;
  76. }
  77. $phone = $this->trans_lib->safe("phone");
  78. $password = $this->trans_lib->safe("password");
  79. //账号和密码为空时警告
  80. if(!$phone || !$password)
  81. {
  82. echo $this->lang["login_false_empty"];
  83. exit;
  84. }
  85. //检查会员不存在时的警告
  86. $rs = $this->user_m->user_from_phone($phone);
  87. if(!$rs)
  88. {
  89. echo $this->lang["login_false_rs"];
  90. exit;
  91. }
  92. //密码检测
  93. $password = sys_md5($password);
  94. if($rs["pass"] != $password)
  95. {
  96. echo $this->lang["login_false_password"];
  97. exit;
  98. }
  99. //检查会员状态的警告
  100. if(!$rs["status"])
  101. {
  102. echo $this->lang["login_false_check"];
  103. exit;
  104. }
  105. //检查会员是否被锁定
  106. if($rs["status"] == 2)
  107. {
  108. echo $this->lang["login_false_check"];
  109. exit;
  110. }
  111. //将数据存到session中
  112. if($rs["status"] == 1 && $rs["pass"] == $password)
  113. {
  114. $_SESSION["user_id"] = $rs["id"];
  115. $_SESSION["user_name"] = $rs["username"];
  116. $_SESSION["group_id"] = $rs["groupid"];
  117. $_SESSION["user_rs"]= $rs;
  118. echo "1";
  119. exit;
  120. }
  121. }
  122. function codes_f()
  123. {
  124. $x_size=76;
  125. $y_size=23;
  126. if(!defined("SYS_VCODE_VAR"))
  127. {
  128. define("SYS_VCODE_VAR","phpok_login_chk");
  129. }
  130. $aimg = imagecreate($x_size,$y_size);
  131. $back = imagecolorallocate($aimg, 255, 255, 255);
  132. $border = imagecolorallocate($aimg, 0, 0, 0);
  133. imagefilledrectangle($aimg, 0, 0, $x_size - 1, $y_size - 1, $back);
  134. $txt="0123456789";
  135. $txtlen=strlen($txt);
  136. $thetxt="";
  137. for($i=0;$i<4;$i++)
  138. {
  139. $randnum=mt_rand(0,$txtlen-1);
  140. $randang=mt_rand(-10,10); //文字旋转角度
  141. $rndtxt=substr($txt,$randnum,1);
  142. $thetxt.=$rndtxt;
  143. $rndx=mt_rand(1,5);
  144. $rndy=mt_rand(1,4);
  145. $colornum1=($rndx*$rndx*$randnum)%255;
  146. $colornum2=($rndy*$rndy*$randnum)%255;
  147. $colornum3=($rndx*$rndy*$randnum)%255;
  148. $newcolor=imagecolorallocate($aimg, $colornum1, $colornum2, $colornum3);
  149. imageString($aimg,3,$rndx+$i*21,5+$rndy,$rndtxt,$newcolor);
  150. }
  151. unset($txt);
  152. $thetxt = strtolower($thetxt);
  153. $_SESSION[SYS_VCODE_VAR] = md5($thetxt);#[写入session中]
  154. @session_write_close();#[关闭session写入]
  155. imagerectangle($aimg, 0, 0, $x_size - 1, $y_size - 1, $border);
  156. $newcolor="";
  157. $newx="";
  158. $newy="";
  159. $pxsum=30; //干扰像素个数
  160. for($i=0;$i<$pxsum;$i++)
  161. {
  162. $newcolor=imagecolorallocate($aimg, mt_rand(0,254), mt_rand(0,254), mt_rand(0,254));
  163. imagesetpixel($aimg,mt_rand(0,$x_size-1),mt_rand(0,$y_size-1),$newcolor);
  164. }
  165. header("Pragma:no-cache");
  166. header("Cache-control:no-cache");
  167. header("Content-type: image/png");
  168. imagepng($aimg);
  169. imagedestroy($aimg);
  170. exit;
  171. }
  172. }
  173. ?>