sign-in.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief окно авторизации
6  */
7 
8 isset($user) or require $_SERVER['DOCUMENT_ROOT'] . '/page/404.php';
9 
10 if ($user->access()->page('/system')) {
11  exit('<script>location.href="/system";</script>');
12 }
13 
14 ?>
15 <div class="modal fade" id="<?= $basename ?>" tabindex="-1" data-backdrop="static" data-keyboard="false">
16  <div class="modal-dialog modal-dialog-centered modal-sm" role="document">
17  <div class="modal-content text-white" style="background:#3B4346 url(/assets/system/img/bg01.jpg);">
18  <div class="modal-header">
19  <h5 class="modal-title"><i class="fa fa-sign-in mr-2"></i>Вход</h5>
20  <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
21  <span aria-hidden="true">&times;</span>
22  </button>
23  </div>
24  <div class="modal-body">
25  <form action="<?= Wrong\Models\Actions::find(1)->request ?>">
26  <input type="hidden" name="h-captcha-response">
27  <div class="form-group">
28  <div class="input-group">
29  <div class="input-group-prepend">
30  <span class="input-group-text">
31  <span class="fa fa-at"></span>
32  </span>
33  </div>
34  <input type="email" class="form-control" name="email" placeholder="Email" required>
35  </div>
36  </div>
37  <div class="form-group">
38  <div class="input-group">
39  <div class="input-group-prepend">
40  <span class="input-group-text">
41  <i class="fa fa-key"></i>
42  </span>
43  </div>
44  <input type="password" class="form-control" name="password" placeholder="Пароль" required>
45  </div>
46  </div>
47  <div class="form-group">
48  <button type="submit" class="btn btn-primary btn-block">Войти</button>
49  </div>
50  <div class="text-right small">
51  <a data-dismiss="modal" data-toggle="modal" data-target="#sign-forgot" href="#">Забыли пароль?</a>
52  </div>
53  <?php if (Wrong\Start\Env::$e->GOOGLE_OAUTH_CLIENT_SECRET || Wrong\Start\Env::$e->YANDEX_OAUTH_CLIENT_SECRET) : ?>
54  <p class="text-center">Или войдите при помощи:</p>
55  <div class="btn-group w-100">
56  <?php if (Wrong\Start\Env::$e->GOOGLE_OAUTH_CLIENT_SECRET) : ?>
57  <a data-action="oauth-google" data-response="script" href="#" class="btn btn-outline-info w-50"><i class="fa fa-google"></i>&nbsp; Google</a>
58  <?php endif; ?>
59  <?php if (Wrong\Start\Env::$e->YANDEX_OAUTH_CLIENT_SECRET) : ?>
60  <a data-action="oauth-yandex" data-response="script" href="#" class="btn btn-outline-info w-50"><i class="fa-brands fa-yandex"></i>&nbsp; Yandex</a>
61  <?php endif; ?>
62  </div>
63  <?php endif; ?>
64  </form>
65  <p class="text-center text-muted small mt-3">Ещё нет аккаунта? <a data-dismiss="modal" data-toggle="modal" data-target="#sign-up" href="#">Регистрируйтесь!</a></p>
66  </div>
67  </div>
68  </div>
69  <script>
70  $("#<?= $basename ?> form").submit(function(e) {
71  lockSubmit($("#<?= $basename ?> form [type=submit]"));
72  $("#<?= $basename ?> .is-invalid").removeClass("is-invalid");
73  $("#<?= $basename ?> .invalid-feedback").remove();
74  e.preventDefault();
75  $.ajax({
76  type: "POST",
77  url: $(this).attr("action"),
78  data: $(this).serialize(),
79  dataType: "json",
80  statusCode: {
81  404: errorToast,
82  403: errorToast
83  }
84  })
85  .done(response => {
86  if (response.error == 'email') {
87  $("#<?= $basename ?> [name='email']").addClass("is-invalid");
88  $("#<?= $basename ?> [name='email']").parent().after('<div class="invalid-feedback">Email указан некорректно</div>');
89  $("#<?= $basename ?> [name='email']").parent().next(".invalid-feedback").fadeIn();
90  } else if (response.error == 'password') {
91  $("#<?= $basename ?> [name='password']").addClass("is-invalid");
92  $("#<?= $basename ?> [name='password']").parent().after('<div class="invalid-feedback">Пароль указан некорректно</div>');
93  $("#<?= $basename ?> [name='password']").parent().next(".invalid-feedback").fadeIn();
94  } else if (response.error == 'hcaptcha') {
95  _modal("#hcaptcha");
96  } else if (response.error == 'auth') {
97  $("#<?= $basename ?> [name='password']").parent().after('<div class="invalid-feedback">Ошибка авторизации</div>');
98  $("#<?= $basename ?> [name='password']").parent().next(".invalid-feedback").fadeIn();
99  } else if (response.result == 'ok') {
100  $.getScript('/api/action/stackjs');
101  $('body').hide();
102  scrollTo(0, 0);
103  } else {
104  errorToast();
105  }
106  })
107  .always(() => {
108  unlockSubmit($("#<?= $basename ?> form [type=submit]"));
109  });
110  });
111 
112  $("#<?= $basename ?> form input").focus(function() {
113  $("#<?= $basename ?> .is-invalid").removeClass("is-invalid");
114  $("#<?= $basename ?> .invalid-feedback").remove();
115  });
116 
117  window.verifyCallback = function(token) {
118  $("#<?= $basename ?> input[name=h-captcha-response]").val(token);
119  $("#hcaptcha").modal("hide");
120  $("#<?= $basename ?> form").submit();
121  $("#<?= $basename ?> input[name=h-captcha-response]").val("");
122  }
123  </script>
124 </div>
if(empty($_POST['email'])||!filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL)) if(empty($_POST['password'])) if(!Wrong\Auth\Hcaptcha::check() &&(empty($_POST['h-captcha-response'])||!Wrong\Auth\Hcaptcha::get($_POST['h-captcha-response']))) $user
Definition: sign-in.php:24
setcookie('FROM_UID', $uid, [ 'expires'=> time()+31536000, 'path'=> '/', 'domain'=> $_SERVER['HTTP_HOST'], 'secure'=> Wrong\Start\Env::$e->IS_SECURE, 'httponly'=> false, 'samesite'=> Wrong\Start\Env::$e->IS_SECURE ? 'None' :'Lax']) or setcookie('FROM_UID' $_SERVER['HTTP_HOST']
Definition: from-user.php:36
if(($dbh=Connect::getInstance(true) ->dbh) && $dbh->query("SHOW TABLES") ->fetchAll() && $dbh->query("SELECT COUNT(*) FROM `users`") ->fetchColumn()) if(!empty($_POST)) exit
Definition: install.php:198
if($user->access() ->page('/system')) if(Wrong\Start\Env::$e->GOOGLE_OAUTH_CLIENT_SECRET||Wrong\Start\Env::$e->YANDEX_OAUTH_CLIENT_SECRET)(Wrong\Start\Env::$e->GOOGLE_OAUTH_CLIENT_SECRET) if(Wrong\Start\Env::$e->YANDEX_OAUTH_CLIENT_SECRET) endif
Definition: sign-in.php:59
if(! $user->id) демо версия data toggle
Definition: comments.php:17
href
Definition: main.php:21