sign-remind.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief окно восстановления пароля
6  */
7 
8 isset($user) or require $_SERVER['DOCUMENT_ROOT'] . '/page/404.php';
9 
10 ?>
11 <div class="modal fade" id="<?= $basename ?>" tabindex="-1" data-backdrop="static" data-keyboard="false">
12  <div class="modal-dialog modal-dialog-centered modal-sm" role="document">
13  <div class="modal-content text-white" style="background:#3B4346 url(/assets/system/img/bg01.jpg);">
14  <div class="modal-header">
15  <h5 class="modal-title">Новый пароль</h5>
16  <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
17  <span aria-hidden="true">&times;</span>
18  </button>
19  </div>
20  <div class="modal-body">
21  <form action="<?= Wrong\Models\Actions::find(4)->request ?>">
22  <input type="hidden" name="h-captcha-response">
23  <input type="hidden" name="user_id" value="<?= htmlspecialchars($_GET['user_id']) ?>">
24  <input type="hidden" name="md5" value="<?= htmlspecialchars($_GET['md5']) ?>">
25  <div class="form-group">
26  <div class="input-group">
27  <div class="input-group-prepend">
28  <span class="input-group-text">
29  <i class="fa fa-lock"></i>
30  </span>
31  </div>
32  <input type="password" class="form-control" name="password" placeholder="Пароль">
33  </div>
34  </div>
35  <div class="form-group">
36  <div class="input-group">
37  <div class="input-group-prepend">
38  <span class="input-group-text">
39  <i class="fa fa-lock"></i>
40  </span>
41  </div>
42  <input type="password" class="form-control" name="password2" placeholder="Повторите пароль">
43  </div>
44  </div>
45  <div class="form-group">
46  <button type="submit" class="btn btn-primary btn-block">Сохранить</button>
47  </div>
48  </form>
49  </div>
50  </div>
51  </div>
52  <script>
53  $("#<?= $basename ?> form").submit(function(e) {
54  lockSubmit($("#<?= $basename ?> form [type=submit]"));
55  $("#<?= $basename ?> .is-invalid").removeClass("is-invalid");
56  $("#<?= $basename ?> .invalid-feedback").remove();
57  e.preventDefault();
58  $.ajax({
59  type: "POST",
60  url: $(this).attr("action"),
61  data: $(this).serialize(),
62  dataType: "json",
63  statusCode: {
64  404: errorToast,
65  403: errorToast
66  }
67  })
68  .done(response => {
69  if (response.error == 'password') {
70  $("#<?= $basename ?> [name='password']").addClass("is-invalid");
71  $("#<?= $basename ?> [name='password']").parent().after('<div class="invalid-feedback">В пароле должно быть минимум 5 символов</div>');
72  $("#<?= $basename ?> [name='password']").parent().next(".invalid-feedback").fadeIn();
73  } else if (response.error == 'password2') {
74  $("#<?= $basename ?> [name='password']").addClass("is-invalid");
75  $("#<?= $basename ?> [name='password2']").addClass("is-invalid");
76  $("#<?= $basename ?> [name='password2']").parent().after('<div class="invalid-feedback">Пароли не совпадают</div>');
77  $("#<?= $basename ?> [name='password2']").parent().next(".invalid-feedback").fadeIn();
78  } else if (response.error == 'hcaptcha') {
79  _modal("#hcaptcha");
80  } else if (response.result == 'ok') {
81  $("#<?= $basename ?> .modal-title").html("Отлично!");
82  $("#<?= $basename ?> form").replaceWith("<p>Новый пароль установлен! Автоматическая авторизация через 3 сек...</p>");
83  setTimeout(function() {
84  location.reload();
85  $('body').hide();
86  scrollTo(0, 0);
87  }, 3000);
88  } else {
89  errorToast();
90  }
91  }).always(() => {
92  unlockSubmit($("#<?= $basename ?> form [type=submit]"));
93  });
94  });
95 
96  $("#<?= $basename ?> form input").focus(function() {
97  $("#<?= $basename ?> .is-invalid").removeClass("is-invalid");
98  $("#<?= $basename ?> .invalid-feedback").remove();
99  });
100 
101  window.verifyCallback = function(token) {
102  $("#<?= $basename ?> input[name=h-captcha-response]").val(token);
103  $("#hcaptcha").modal("hide");
104  $("#<?= $basename ?> form").submit();
105  $("#<?= $basename ?> input[name=h-captcha-response]").val("");
106  }
107  </script>
108 </div>
$user
Definition: from-user.php:38
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