login.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. <?php
  2. namespace app\index;
  3. class login extends Base
  4. {
  5. function index()
  6. {
  7. if ($this->userlogined) {
  8. redirect("/index/user_profile");
  9. }
  10. ?>
  11. <!DOCTYPE html>
  12. <html lang="">
  13. <head>
  14. <title>账号登录 - <?php echo IN_NAME; ?>免费应用内测托管平台|iOS应用Beta测试分发|Android应用内测分发</title>
  15. <meta charset="utf-8" />
  16. <meta name="viewport"
  17. content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  18. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  19. <meta name="renderer" content="webkit" />
  20. <meta name="keywords" content="<?php echo IN_KEYWORDS; ?>" />
  21. <meta property="og:url" content="https://<?php echo $_SERVER["HTTP_HOST"]; ?>/" />
  22. <meta property="og:title" content="<?php echo IN_NAME; ?>" />
  23. <meta name="description" content="<?php echo IN_DESCRIPTION; ?>" />
  24. <?php
  25. $this->static_();
  26. ?>
  27. <link rel="stylesheet" href="/static/index/css/login.css">
  28. </head>
  29. <body>
  30. <?php
  31. $this->header();
  32. ?>
  33. <style>
  34. .em {
  35. font-style: normal;
  36. }
  37. .login-three-home {
  38. height: 84px;
  39. padding: 30px 0 0 0;
  40. width: 355px;
  41. text-align: center;
  42. }
  43. .clearfix:before {
  44. content: ".";
  45. display: block;
  46. height: 0;
  47. overflow: hidden;
  48. visibility: hidden;
  49. }
  50. .login-three-home h3 {
  51. font-size: 12px;
  52. color: #666;
  53. text-align: center;
  54. padding: 5px 0 20px 0;
  55. width: 409px;
  56. height: 14px;
  57. background: url(/qq/image/line.jpg) left center repeat-x;
  58. }
  59. .login-three-home h3 em {
  60. background: #fff;
  61. padding: 0 5px;
  62. }
  63. a#qq {
  64. background-position: 0 -335px;
  65. }
  66. .login-three a,
  67. .login-three-home a {
  68. display: inline-block;
  69. width: 40px;
  70. height: 40px;
  71. margin-right: -50px;
  72. background: url(/qq/image/focus2018.png) no-repeat;
  73. }
  74. .login-common .form-group label,
  75. .login-common .has-error .help-block {
  76. transform: unset;
  77. position: unset;
  78. }
  79. </style>
  80. <script src="/static/index/js/jquery.validate.min.js"></script>
  81. <div class="login-common">
  82. <div class="tit-tabs">
  83. <div id="acc_login" class="tit active" style="display:inline-block;cursor:pointer">账户登录</div>
  84. <!-- <?php if (IN_SMS666666) { ?>
  85. <?php var_dump(IN_SMS666666) ?>
  86. &nbsp; &nbsp; &nbsp;
  87. <div id="phone_login" class="tit" style="display:inline-block;color:rgba(118, 144, 181, 1);cursor:pointer">短信登录</div>
  88. <?php } ?> -->
  89. </div>
  90. <form role="form" id="loginValid" novalidate="novalidate">
  91. <input type="password" style="position: absolute;top: -999px" />
  92. <div class="form-group">
  93. <label class="iconfont icon-user" for="user"></label>
  94. <input type="text" class="form-control input-lg" id="user" name="username"
  95. aria-describedby="helpBlock2"
  96. placeholder="账号名称">
  97. <!-- <span class="help-block">请输入正确的账号名称</span> -->
  98. </div>
  99. <div class="form-group">
  100. <label class="iconfont icon-pwd" for="password"></label>
  101. <input class="form-control input-lg" id="password" name="password" placeholder="登录密码" type="password">
  102. <!-- <span class="help-block">请输入正确的密码</span> -->
  103. </div>
  104. <div class="btn-action" style="display: none;">
  105. <a href="/index/lost" class="fr">忘记密码?</a>
  106. <!-- <?php if (IN_SMS666666) { ?>
  107. <a id="phone_login_btn">手机验证码登录</a>
  108. <?php } ?> -->
  109. </div>
  110. <!-- <div class="checkbox"><input type="checkbox" id="remember-me" checked><span>记住我</span></div> -->
  111. <button type="button" class="ms-btn ms-btn-primary input-lg btn-login" id="submitButton">登录</button>
  112. <div class="clearfix mt15 to-register">
  113. <?php if (IN_REG_ON) { ?>还没有账号?&nbsp;&nbsp;&nbsp;<a href="/index/reg" class="fl">去注册</a>
  114. <?php } ?>
  115. <!-- <a href="/index/lost" class="fr">忘记密码</a> -->
  116. </div>
  117. </form>
  118. <form role="form" id="loginValid_code" novalidate="novalidate" style="display:none">
  119. <!-- <font color="#FF0000">未设置短信,请使用左边的账号登录。<br>需要测试短信登录功能请联系客服设置。</font> -->
  120. <div class="form-group">
  121. <label class="iconfont icon-user" for="phone"></label>
  122. <input type="text" class="form-control input-lg" id="phone" name="phone"
  123. aria-describedby="helpBlock2"
  124. placeholder="手机号码">
  125. <span class="help-block">请输入正确的手机</span>
  126. </div>
  127. <div class="form-group">
  128. <label class="iconfont icon-email"></label>
  129. <div class="clearfix verification-code">
  130. <input type="text" class="form-control input-lg fl" id="code" placeholder="验证码">
  131. <button type="button" class="ms-btn ms-btn-primary input-lg fr" id="sendcode">获取验证码</button>
  132. </div>
  133. <span class="help-block">请输入正确的验证码</span>
  134. </div>
  135. <button type="button" class="ms-btn ms-btn-primary input-lg btn-login" id="submitButton_code">登录</button>
  136. <div class="clearfix mt15 to-register">
  137. <?php if (IN_REG_ON) { ?>还没有账号?&nbsp;&nbsp;&nbsp;<a href="/index/reg" class="fl">去注册</a>
  138. <?php } ?>
  139. </div>
  140. </form>
  141. <!--新增QQ互联登录-->
  142. <?php if (IN_QQ) { ?>
  143. <div class="login-three-home clearfix">
  144. <h3>社交登录</h3> <a onClick="test();" class="login_click" id="qq"></a>
  145. </div>
  146. <?php } ?>
  147. <!--新增QQ互联登录-->
  148. </div>
  149. <script>
  150. // 获取URL参数的函数
  151. function getUrlParameter(name) {
  152. name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
  153. var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
  154. var results = regex.exec(location.search);
  155. return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
  156. }
  157. $(function() {
  158. countdown = 60;
  159. function settime() {
  160. if (countdown == 0) {
  161. $('#sendcode').attr("disabled", false);
  162. $('#sendcode').html("获取验证码");
  163. countdown = 60;
  164. return;
  165. } else {
  166. $('#sendcode').attr("disabled", true);
  167. $('#sendcode').html("重新发送(" + countdown + ")");
  168. countdown--;
  169. }
  170. setTimeout(function() {
  171. settime()
  172. }, 1000)
  173. }
  174. $('#sendcode').click(function() {
  175. var phone = $('#phone').val();
  176. if (phone) {
  177. $.post('/index/ajax/send_sms_forget', {
  178. phone: phone
  179. }, function(data) {
  180. if (data.code != 200) {
  181. alert(data.msg);
  182. } else {
  183. settime();
  184. alert(data.msg);
  185. }
  186. }, 'json');
  187. }
  188. });
  189. $('#acc_login').click(function() {
  190. $('#phone_login').css('color', 'rgba(118, 144, 181, 1)');
  191. $('#acc_login').css('color', 'rgba(21, 21, 21, 1)');
  192. $('#loginValid').css('display', 'block');
  193. $('#loginValid_code').css('display', 'none');
  194. $("#acc_login").addClass("active");
  195. $("#phone_login").removeClass("active");
  196. })
  197. $('#phone_login').click(function() {
  198. $('#phone_login').css('color', 'rgba(21, 21, 21, 1)');
  199. $('#acc_login').css('color', 'rgba(118, 144, 181, 1)');
  200. $('#loginValid').css('display', 'none');
  201. $('#loginValid_code').css('display', 'block');
  202. $("#acc_login").removeClass("active");
  203. $("#phone_login").addClass("active");
  204. })
  205. $('#phone_login_btn').click(function() {
  206. $('#phone_login').css('color', 'rgba(21, 21, 21, 1)');
  207. $('#acc_login').css('color', 'rgba(118, 144, 181, 1)');
  208. $('#loginValid').css('display', 'none');
  209. $('#loginValid_code').css('display', 'block');
  210. $("#acc_login").removeClass("active");
  211. $("#phone_login").addClass("active");
  212. })
  213. $("#submitButton_code").click(function() {
  214. var phone = $("#phone").val();
  215. var code = $("#code").val();
  216. $.post("/index/ajax/phone_code_login", {
  217. phone: phone,
  218. code: code
  219. },
  220. function(data) {
  221. if (data.code != 200) {
  222. alert(data.msg);
  223. } else {
  224. // if ($('#remember-me').is(':checked')) {
  225. // localStorage.setItem('user', user);
  226. // localStorage.setItem('password', password);
  227. // localStorage.setItem('bit', 'true');
  228. // } else {
  229. localStorage.removeItem('user');
  230. localStorage.removeItem('password');
  231. localStorage.removeItem('bit');
  232. // }
  233. // 获取登录前的页面URL,如果没有则跳转到默认页面
  234. var redirectUrl = getUrlParameter('redirect') || '/index/apps/apps';
  235. window.location.href = redirectUrl;
  236. }
  237. }, 'json');
  238. });
  239. if (localStorage.getItem('bit') === 'true') {
  240. $('#remember-me').attr('checked', 'checked');
  241. $('#user').val(localStorage.getItem('user'));
  242. $('#password').val(localStorage.getItem('password'));
  243. }
  244. $("#submitButton").click(function() {
  245. var user = $("#user").val();
  246. var password = $("#password").val();
  247. $.post("/index/ajax/login", {
  248. user: user,
  249. password: password
  250. },
  251. function(data) {
  252. if (data.code != 200) {
  253. alert(data.msg);
  254. } else {
  255. if ($('#remember-me').is(':checked')) {
  256. localStorage.setItem('user', user);
  257. localStorage.setItem('password', password);
  258. localStorage.setItem('bit', 'true');
  259. } else {
  260. localStorage.removeItem('user');
  261. localStorage.removeItem('password');
  262. localStorage.removeItem('bit');
  263. }
  264. // 获取登录前的页面URL,如果没有则跳转到默认页面
  265. var redirectUrl = getUrlParameter('redirect') || '/index/apps/apps';
  266. window.location.href = redirectUrl;
  267. }
  268. }, 'json');
  269. });
  270. document.onkeydown = function(event) {
  271. var e = event || window.event;
  272. if (e && e.keyCode == 13) {
  273. $("#submitButton").click();
  274. }
  275. };
  276. $("#loginValid").validate({
  277. errorPlacement: function(error, element) {
  278. error.appendTo(element.parent().parent());
  279. },
  280. rules: {
  281. "mobile": {
  282. required: true,
  283. mobile: true
  284. },
  285. "password": {
  286. required: true,
  287. minlength: 5
  288. }
  289. },
  290. messages: {
  291. mobile: {
  292. required: "手机号不能为空",
  293. mobile: "请输入正确的手机号"
  294. },
  295. password: {
  296. required: "密码不能为空",
  297. minlength: "密码长度最少5位"
  298. }
  299. },
  300. highlight: function(element) {
  301. $(element).closest('.form-group').addClass('has-error');
  302. },
  303. unhighlight: function(element) {
  304. $(element).closest('.form-group').removeClass('has-error');
  305. },
  306. errorElement: 'label',
  307. errorPlacement: function(error, element) {
  308. if (element.parent('.input-group').length) {
  309. error.insertAfter(element.parent());
  310. } else {
  311. error.insertAfter(element);
  312. }
  313. }
  314. });
  315. });
  316. </script>
  317. <script type="text/javascript">
  318. function test() {
  319. window.open('/index/qlogin/login');
  320. }
  321. </script>
  322. <script>
  323. $(document).ready(function() {
  324. var r = window.setInterval(function() {
  325. $.ajax({
  326. type: 'POST',
  327. url: '/index/qlogin/check',
  328. dataType: 'text',
  329. success: function(str) {
  330. if (str == "ok") {
  331. window.location.reload();
  332. }
  333. }
  334. });
  335. }, 500);
  336. });
  337. </script>
  338. <?php
  339. $this->footer();
  340. ?>
  341. </body>
  342. </html>
  343. <?php
  344. }
  345. }