diff --git a/app/api/apiclient.php b/app/api/apiclient.php index de6949e..c99f7cb 100644 --- a/app/api/apiclient.php +++ b/app/api/apiclient.php @@ -13,15 +13,34 @@ function api_client_kuri($hash){ } +function api_login($login, $password){ + + $sqlogin = "SELECT `client_id`, `clientpassword` FROM `clients` WHERE `clientmail` = '$login' LIMIT 1"; + $client = dbl_get($sqlogin); + + if (!isset($client['clientpassword'])) + return ['error'=>'пользователь не найден']; + + if ($client['clientpassword'] == '') + return ['error'=>'необходимо получить ссылку для доступа']; + + if (!password_verify($password, $client['clientpassword'])) + return ['error' => 'неверный пароль']; + + return ['data' => $client]; + +} + + function clientbuys_kuri($client_id, $page = 1){ $sql_sub = "SELECT number_id FROM anbuy WHERE client_id = '$client_id' AND `number_id` = 486 LIMIT 1"; $findsub = db_get($sql_sub); - // if (isset($findsub['number_id'])) {// есть поп - // return clients_arch($page); - // } + if (isset($findsub['number_id'])) {// есть поп + return clients_arch($page); + } $limit = 25; $countsql = "SELECT DISTINCT COUNT(buy_id) as count FROM `anbuy` WHERE `client_id` = $client_id AND `buy_status` = '1' LIMIT 1"; @@ -54,7 +73,10 @@ function clientbuys_kuri($client_id, $page = 1){ -function client_find_email($email){ +function client_find_email($mail){ + + if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) + return ['error' => 'некорректный email']; $pwd_query = "SELECT * FROM `clients` WHERE `clientmail` = '$mail' LIMIT 1"; $client = db_get($pwd_query); @@ -62,37 +84,82 @@ function client_find_email($email){ if (isset($client['client_id'])) return $client; else - return false; + return ['error' => 'client not found']; } -function client_add_password($mail, $pwd, $pwd2){ - - $maxlen = 5; +function client_find_hash($hash){ - if (!filter_var($email, FILTER_VALIDATE_EMAIL)) - return 'некорректный email'; - $find = client_find_email($email); - if ($find) - return 'email не найден'; - - if ($pwd == ''){ + $pwd_query = "SELECT * FROM `clients` WHERE `clienthash` = '$hash' LIMIT 1"; + $client = db_get($pwd_query); + + if (isset($client['client_id'])) + return $client; + else + return ['error' => 'client not found']; + +} + + +function client_find_id($id) { + + $id_query = "SELECT * FROM `clients` WHERE `client_id` = '$id' LIMIT 1"; + $client = db_get($id_query); + + if (!isset($client['client_id'])){ + return ['error' => 'client not found']; + } + + return ['result' => $client]; + +} + + +function client_check_auth($login, $pwd){ + + $check_query = "SELECT * FROM `clients` WHERE `client_id` = '$login' LIMIT 1"; + + $client = dbl_get($check_query); + + if (!isset($client['client_id'])){ + return ['error' => 'client not found']; + } + + $hash_pwd = md5($login.$client['clientpassword']); + + if ($pwd == $hash_pwd){ + return ['data' => $client]; + } + else { + return ['error' => 'invalid hash']; + } + +} + + +function client_add_password($client_id, $password, $confirm, $minlen = 5){ + + + if ($password == ''){ return 'пароль не задан'; } - if (strlen($pwd) < $maxlen) { + if (strlen($password) < $minlen) { return "пароль должен быть не менее $maxlen символов"; } - if ($pwd == $pwd2){ + if ($password !== $confirm){ return "пароли не совпадают"; } - $clientpassword = password_hash($pwd); - $sqlupdate = "UPDATE `clients` SET `clientpassword` = '$clientpassword' WHERE `clientmail` = '$mail'"; + $clientpassword = password_hash($password, PASSWORD_DEFAULT); + $sqlupdate = "UPDATE `clients` SET `clientpassword` = '$clientpassword' WHERE `client_id` = '$client_id'"; + + + $result = db_get($sqlupdate, 'chitatel'); + - dbl_get($sqlupdate); return True; diff --git a/app/confg.php b/app/confg.php index e774527..e568c73 100644 --- a/app/confg.php +++ b/app/confg.php @@ -1,7 +1,7 @@ +
+ + Войти + + Моя библиотека / + Выйти + +
\ No newline at end of file diff --git a/app/views/layout.phtml b/app/views/layout.phtml index 9a38bc8..47ea53a 100644 --- a/app/views/layout.phtml +++ b/app/views/layout.phtml @@ -3,7 +3,7 @@ Еженедельник Аргументы Недели - <?=$title?> - + @@ -55,6 +55,7 @@ _tmr.push({id: "1069168", type: "pageView", start: (new Date()).getTime()});

Аргументы Неделi

+
diff --git a/app/views/layout_lite.phtml b/app/views/layout_lite.phtml new file mode 100644 index 0000000..ced8fbf --- /dev/null +++ b/app/views/layout_lite.phtml @@ -0,0 +1,27 @@ + + + + Еженедельник Аргументы Недели - <?=$title?> + + + + + + + + + + + + +

+ Аргументы Неделi +

+ + + + + + diff --git a/app/views/login.phtml b/app/views/login.phtml new file mode 100644 index 0000000..c0bce1b --- /dev/null +++ b/app/views/login.phtml @@ -0,0 +1,14 @@ +
+ +
+

+

+

+

+
+ + +
+ + +
\ No newline at end of file diff --git a/app/views/reset.phtml b/app/views/reset.phtml index aabfca6..078887c 100644 --- a/app/views/reset.phtml +++ b/app/views/reset.phtml @@ -1,10 +1,18 @@ -
-

Придумайте пароль не менее 5 символов

-

Пароль:

-

Повторить:

- -
+ - -
- \ No newline at end of file +
+

+

+

+

+
+ + + + +
+ + + +
Сохраните пароль в вашем браузере, чтобы каждый раз не вводить его вручную.
Ваша библиотека доступна по адресу
+ \ No newline at end of file