pages-signin.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <!DOCTYPE html>
  2. <html class="fixed">
  3. <head>
  4. <!-- Basic -->
  5. <meta charset="UTF-8">
  6. <meta content="HTML5 Admin Template"
  7. name="keywords">
  8. <meta content="Porto Admin - Responsive HTML5 Template"
  9. name="description">
  10. <meta content="okler.net"
  11. name="author"><!-- Mobile Metas -->
  12. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
  13. name="viewport"><!-- Web Fonts -->
  14. <link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Shadows+Into+Light"
  15. rel="stylesheet"
  16. type="text/css"><!-- Vendor CSS -->
  17. <link href="/Common/assets/vendor/bootstrap/css/bootstrap.css"
  18. rel="stylesheet">
  19. <link href="/Common/assets/vendor/font-awesome/css/font-awesome.css"
  20. rel="stylesheet">
  21. <link href="/Common/assets/vendor/magnific-popup/magnific-popup.css"
  22. rel="stylesheet">
  23. <link href="/Common/assets/vendor/bootstrap-datepicker/css/datepicker3.css"
  24. rel="stylesheet"><!-- Theme CSS -->
  25. <link href="/Common/assets/stylesheets/theme.css"
  26. rel="stylesheet"><!-- Skin CSS -->
  27. <link href="/Common/assets/stylesheets/skins/default.css"
  28. rel="stylesheet"><!-- Theme Custom CSS -->
  29. <link href="/Common/assets/stylesheets/theme-custom.css"
  30. rel="stylesheet"><!-- Head Libs -->
  31. <script src="/Common/assets/vendor/modernizr/modernizr.js"></script>
  32. <title></title>
  33. </head>
  34. <body>
  35. <!-- start: page -->
  36. <section class="body-sign">
  37. <div class="center-sign">
  38. <a class="logo pull-left"
  39. href="/"><img alt="Porto Admin"
  40. height="54"
  41. src="/Common/assets/images/logo.png"></a>
  42. <div class="panel panel-sign">
  43. <div class="panel-title-sign mt-xl text-right">
  44. <h2 class="title text-uppercase text-bold m-none">Sign In</h2>
  45. </div>
  46. <div class="panel-body">
  47. <form action="./script/php/authenticate.php"
  48. method="post">
  49. <div class="form-group mb-lg">
  50. <label>Username</label>
  51. <div class="input-group input-group-icon">
  52. <input class="form-control input-lg"
  53. id="username"
  54. name="username"
  55. required=""
  56. type="text">
  57. </div>
  58. </div>
  59. <div class="form-group mb-lg">
  60. <div class="clearfix">
  61. <label class="pull-left">Password</label> <a class="pull-right"
  62. href="pages-recover-password.html">Lost Password?</a>
  63. </div>
  64. <div class="input-group input-group-icon">
  65. <input class="form-control input-lg"
  66. id="password"
  67. name="password"
  68. required=""
  69. type="password">
  70. </div>
  71. </div>
  72. <div class="form-group mb-lg">
  73. <label>驗證碼</label>
  74. <div class="input-group input-group-icon"><input class="form-control input-lg"
  75. id="captcha"
  76. name="captcha"
  77. required=""
  78. style="width: 50%"
  79. type="text"> <img id="imageCode"
  80. onclick="refresh_code()"
  81. src="./script/php/captcha.php"
  82. style="padding-left: 50px; margin-top: 10px"></div>
  83. </div>
  84. <div class="row">
  85. <div class="col-sm-8">
  86. <div class="checkbox-custom checkbox-default">
  87. <input id="RememberMe"
  88. name="rememberme"
  89. type="checkbox"> <label for="RememberMe">Remember Me</label>
  90. </div>
  91. </div>
  92. <div class="col-sm-4 text-right">
  93. <input class="btn btn-primary hidden-xs"
  94. id="send"
  95. onclick="sendData()"
  96. type="button"
  97. value="登入"> <input class="btn btn-primary btn-block btn-lg visible-xs mt-lg"
  98. id="send"
  99. onclick="sendData()"
  100. type="button"
  101. value="登入">
  102. </div>
  103. </div>
  104. <p class="text-center">Don't have an account yet? <a href="pages-signup.html">Sign Up!</a></p>
  105. </form><a class="modal-basic"
  106. href="#modalHeaderColorDanger"
  107. id="alinkError"></a>
  108. <div class="modal-block modal-header-color modal-block-danger mfp-hide"
  109. id="modalHeaderColorDanger">
  110. <section class="panel">
  111. <header class="panel-heading">
  112. <h2 class="panel-title">錯誤!</h2>
  113. </header>
  114. <div class="panel-body">
  115. <div class="modal-wrapper">
  116. <div class="modal-icon"></div>
  117. <div class="modal-text">
  118. <h4>錯誤</h4>
  119. <p id="errorString">帳號密碼不能為空</p>
  120. </div>
  121. </div>
  122. </div>
  123. <footer class="panel-footer">
  124. <div class="row">
  125. <div class="col-md-12 text-right">
  126. <button class="btn btn-danger modal-dismiss">OK</button>
  127. </div>
  128. </div>
  129. </footer>
  130. </section>
  131. </div><a class="modal-basic"
  132. href="#modalHeaderColorWarning"
  133. id="alinkWaring"></a>
  134. <div class="modal-block modal-header-color modal-block-warning mfp-hide"
  135. id="modalHeaderColorWarning">
  136. <section class="panel">
  137. <header class="panel-heading">
  138. <h2 class="panel-title">警告!</h2>
  139. </header>
  140. <div class="panel-body">
  141. <div class="modal-wrapper">
  142. <div class="modal-icon"></div>
  143. <div class="modal-text">
  144. <h4>警告</h4>
  145. <p id="waringString">帳號密碼不能含有特殊字元</p>
  146. </div>
  147. </div>
  148. </div>
  149. <footer class="panel-footer">
  150. <div class="row">
  151. <div class="col-md-12 text-right">
  152. <button class="btn btn-warning modal-dismiss">OK</button>
  153. </div>
  154. </div>
  155. </footer>
  156. </section>
  157. </div>
  158. <script>
  159. function refresh_code() {
  160. document.getElementById("imageCode").src = "./script/php/captcha.php";
  161. }
  162. function sendData() {
  163. if (checkSpecial($("#username").val())) {
  164. document.getElementById("waringString").innerHTML =
  165. "帳號不能含有特殊字元";
  166. $("#alinkWaring").click();
  167. } else if (checkSpecial($("#password").val())) {
  168. document.getElementById("waringString").innerHTML =
  169. "密碼不能含有特殊字元";
  170. $("#alinkWaring").click();
  171. } else {
  172. if ($("#username").val().length === 0) {
  173. document.getElementById("waringString").innerHTML =
  174. "帳號不能為空";
  175. $("#alinkWaring").click();
  176. } else if ($("#password").val().length === 0) {
  177. document.getElementById("waringString").innerHTML =
  178. "密碼不能為空";
  179. $("#alinkWaring").click();
  180. } else {
  181. $.ajax({
  182. url: "./script/php/authenticate.php",
  183. cache: false,
  184. async: false,
  185. dataType: "text",
  186. type: "POST",
  187. data: {
  188. username: $("#username").val(),
  189. password: $("#password").val(),
  190. captcha: $("#captcha").val(),
  191. },
  192. error: function (xhr) {
  193. document.getElementById("errorString").innerHTML =
  194. "Ajax request 發生錯誤";
  195. $("#alinkError").click();
  196. },
  197. success: function (data) {
  198. if (data == "success") {
  199. document.location.href = "../home.php";
  200. } else {
  201. document.getElementById("errorString").innerHTML =
  202. data;
  203. $("#alinkError").click();
  204. }
  205. },
  206. });
  207. }
  208. }
  209. }
  210. function checkSpecial(str) {
  211. var specialStr = RegExp(
  212. /[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/
  213. );
  214. return specialStr.test(str);
  215. }
  216. function checkNull(str) {
  217. if (str != null) return false;
  218. else return true;
  219. }
  220. </script>
  221. </div>
  222. </div>
  223. <p class="text-center text-muted mt-md mb-md">&copy; Copyright 2018. All rights reserved. Template by <a href="https://colorlib.com">Colorlib</a>.</p>
  224. </div>
  225. </section><!-- end: page -->
  226. <!-- Vendor -->
  227. <script src="/Common/assets/vendor/jquery/jquery.js"></script>
  228. <script src="/Common/assets/vendor/jquery-browser-mobile/jquery.browser.mobile.js"></script>
  229. <script src="/Common/assets/vendor/bootstrap/js/bootstrap.js"></script>
  230. <script src="/Common/assets/vendor/nanoscroller/nanoscroller.js"></script>
  231. <script src="/Common/assets/vendor/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
  232. <script src="/Common/assets/vendor/magnific-popup/magnific-popup.js"></script>
  233. <script src="/Common/assets/vendor/jquery-placeholder/jquery.placeholder.js"></script> <!-- Theme Base, Components and Settings -->
  234. <script src="assets/javascripts/theme.js"></script> <!-- Theme Custom -->
  235. <script src="assets/javascripts/theme.custom.js"></script> <!-- Theme Initialization Files -->
  236. <script src="assets/javascripts/theme.init.js"></script> <!-- Examples -->
  237. <script src="assets/javascripts/ui-elements/examples.modals.js"></script> <img src="http://www.ten28.com/fref.jpg">
  238. </body>
  239. </html>