Write.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief запись логов действий
6  *
7  */
8 
9 namespace Wrong\Logs;
10 
12 use Wrong\Start\Env;
13 
14 /**
15  * @brief Write класс отвечает за запись логов действий
16  *
17  */
18 
19 class Write
20 {
21  /**
22  * записывает все запросы API действий /api/action в базу данных.
23  */
24  public static function action()
25  {
26  global $user;
27  if ($user->id && $user->write_log_actions && preg_match('#^/api/action#', $_SERVER['REQUEST_URI'])) {
28  register_shutdown_function(function ($user) {
29  $output = ob_get_contents();
30  $output = json_decode(ob_get_contents(), true) ?: $output;
31  $input = file_get_contents('php://input');
32  if (mb_parse_str($input, $arr) || ($arr = json_decode($input, true))) {
33  $input = $arr;
34  }
35  if ($_SERVER['REQUEST_METHOD'] == 'POST' || $_SERVER['REQUEST_METHOD'] == 'PUT') {
36  $input = $input ?: $_POST;
37  }
38  $arr = [
39  "method" => $_SERVER['REQUEST_METHOD'],
40  "input" => $input,
41  "output" => $output
42  ];
43  $text = json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
44  $dbh = Connect::getInstance()->dbh;
45  $sth = $dbh->prepare("INSERT INTO `logs` (`user_id`, `request`, `text`, `ip`) VALUES (:user_id, :request, :text, :ip)");
46  $sth->bindValue(':user_id', $user->id);
47  $sth->bindValue(':request', $_SERVER['REQUEST_URI']);
48  $sth->bindValue(':text', $text);
49  $sth->bindValue(':ip', Env::$e->IP);
50  $sth->execute();
51  }, $user);
52  }
53  }
54 }
$_POST['groups']
Definition: add-action.php:16
if(!($row=Wrong\Models\Crontabs::find($_POST['id']))) if(! $user->access() ->write($row)) $sth
Definition: edit-cli.php:20
Connect создает подключение к базе данных
Definition: Connect.php:19
static getInstance($ignore_error=false)
Definition: Connect.php:50
Write класс отвечает за запись логов действий
Definition: Write.php:20
static action()
Definition: Write.php:24
Env класс управляющий, добавляющий или записывающий переменные среды
Definition: Env.php:17
static $e
Definition: Env.php:22
$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
$arr
Definition: actions.php:25
$dbh
Definition: session.php:19