3v4l.org

run code in 300+ PHP versions simultaneously
<?php setlocale(LC_CTYPE, "ru_RU.UTF-8"); require '../include/config.php'; require '../include/functions.php'; session_start(); // Если пользователь не авторизован, но выставлена // cookie-переменная autologin - входим на форум if ( !isset( $_SESSION['user'] ) and isset( $_COOKIE['autologin'] ) ) autoLogin(); // Подключаем дополнительную таблицу стилей если передан параметр if ( !isset( $style ) ) { $style = '<style type="text/css">'."\r\n"; $style = $style. file_get_contents( '../style/admin.css' )."\r\n"; $style = $style.'</style>'."\r\n"; } // Загрузка шаблона и замена переменных $html = file_get_contents( '../templates/admin.html' ); $html = str_replace( '{title}', $pageTitle, $html ); $html = str_replace( '{description}', $description, $html ); $html = str_replace( '{nav}', $nav, $html ); $html = str_replace( '{content}', $content, $html ); $html = str_replace( '{style}', $style, $html ); echo $html; // Функция возвращает html формы для авторизации function getLoginForm( &$style ) { $html = $html.'<form class="form-signin" action="?action=login" method="post">'."\r\n"; if ( isset( $_SESSION['loginForm']['error'] ) ) { $info = file_get_contents( '../templates/info.html' ); $info = str_replace( '{infoMessage}', $_SESSION['loginForm']['error'], $info ); $html = $html.$info."\r\n"; unset( $_SESSION['loginForm']['error'] ); } $html = $html.'<h2 class="form-signin-heading">Вход</h2>'."\r\n"; $html = $html.' <input class="input-block-level" placeholder="Логин" name="login" type="text" size="15" maxlength="15">'."\r\n"; $html = $html.'<input class="input-block-level" placeholder="Пароль" name="password" type="password" size="15" maxlength="40">'."\r\n"; $html = $html.'<label class="checkbox">'."\r\n"; $html = $html.'<input name="autologin" type="checkbox" value="1"> Запомнить меня'."\r\n"; $html = $html.'</label>'."\r\n"; $html = $html.'<button class="btn btn-large btn-primary" type="submit" name="submit">Войти</button>'."\r\n"; $html = $html.'</form>'."\r\n"; $style = '<style type="text/css">'."\r\n"; $style = $style. file_get_contents( '../style/login.css' )."\r\n"; $style = $style.'</style>'."\r\n"; return $html; } // Обработчик формы авторизации function login() { global $connection; // Если не переданы данные формы - значит функция была вызвана по ошибке if ( !isset( $_POST['login'] ) or !isset( $_POST['password'] ) ) { header( 'Location: '.$_SERVER['PHP_SELF'] ); die(); } // Защита от перебора пароля - при каждой неудачной попытке время задержки увеличивается if ( isset( $_SESSION['loginForm']['count'] ) ) sleep( $_SESSION['loginForm']['count'] ); // Обрезаем переменные до длины, указанной в параметре maxlength тега input $login = substr( $_POST['login'], 0, 40 ); $password = substr( $_POST['password'], 0, 40 ); // Обрезаем лишние пробелы $login = trim( $login ); $password = trim( $password ); // Проверяем, заполнены ли обязательные поля $error = ''; if ( empty( $login ) ) $error = $error.'<li>не заполнено поле "Имя"</li>'."\r\n"; if ( empty( $password ) ) $error = $error.'<li>не заполнено поле "Пароль"</li>'."\r\n"; // Проверяем поля формы на недопустимые символы //if ( !empty( $name ) and !preg_match( "#^[- _0-9a-zА-Яа-я]+$#i", $name ) ) // $error = $error.'<li>поле "Имя" содержит недопустимые символы</li>'."\n"; //if ( !empty( $password ) and !preg_match( "#^[-_0-9a-z]+$#i", $password ) ) // $error = $error.'<li>поле "Пароль" содержит недопустимые символы</li>'."\n"; // Указываем "соль" для пароля и шифруем пароль $salt = "yD4@1bTySXq9vb"; $password = sha1($salt . $password); // Проверять существование такого пользователя есть смысл только в том // случае, если поля не пустые и не содержат недопустимых символов if ( empty( $error ) ) { // Выполняем запрос на получение данных пользователя из БД $query = "SELECT * FROM users WHERE login='".$login."' AND password='".$password."' LIMIT 1"; //извлекаем из базы все данные о пользователе с введенным логином $result = mysqli_query( $connection, $query ); if ( !$result ) { $msg = 'Ошибка при авторизации пользователя'; $err = 'Ошибка при выполнении запроса: <br/>'. $query.'<br/>'.mysqli_errno().':&nbsp;'.mysqli_error().'<br/>'.'(Файл '. __FILE__ .', строка '. __LINE__ .')'; return showErrorMessage( $msg, $err, true, 'action=loginForm' ); } if ( mysqli_num_rows( $result ) == 0 ) $error = $error.'<li>Неправильный логин или пароль</li>'."\n"; } // Если были допущены ошибки при заполнении формы if ( !empty( $error ) ) { if ( !isset( $_SESSION['loginForm']['count'] ) ) $_SESSION['loginForm']['count'] = 1; else $_SESSION['loginForm']['count'] = $_SESSION['loginForm']['count'] + 1; $_SESSION['loginForm']['error'] = '<br>'."\r\n".'При заполнениии формы были допущены ошибки:'. "\r\n".'<ul>'."\r\n".$error.'</ul>'."\r\n"; header( 'Location: '.$_SERVER['PHP_SELF'].'?action=loginForm' ); die(); } // Все поля заполнены правильно и такой пользователь существует - продолжаем unset( $_SESSION['loginForm'] ); $user = mysqli_fetch_assoc( $result ); if ( $user['activation'] == '0' ) return showInfoMessage( 'Ваша учетная запись не активирована', '' ); // Если пользователь заблокирован if ( $user['status'] != 'admin' ) return showInfoMessage( 'Недостаточно прав доступа. Обратитесь к администратору.', '' ); $_SESSION['user'] = $user; // Выставляем cookie, если пользователь хочет входить на форум автоматически if ( isset ( $_POST['autologin'] ) ) { $tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1; $path = substr( $_SERVER['PHP_SELF'], 0, $tmppos ); setcookie( 'autologin', 'yes', time() + 3600*24*30, $path ); setcookie( 'login', $_SESSION['user']['login'], time() + 3600*24*30, $path ); setcookie( 'password', $_SESSION['user']['password'], time() + 3600*24*30, $path ); } // Авторизация прошла успешно - перенаправляем посетителя на главную страницу header( 'Location: '.$_SERVER['PHP_SELF'].'?action=pages' ); die(); } // Функция осуществляет автоматический вход на форум function autoLogin() { global $connection; // Если не установлены cookie, содержащие логин и пароль if ( !isset( $_COOKIE['login'] ) or !isset( $_COOKIE['password'] ) ) { $tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1; $path = substr( $_SERVER['PHP_SELF'], 0, $tmppos ); if ( isset( $_COOKIE['login'] ) ) setcookie( 'login', '', time() - 1, $path ); if ( isset( $_COOKIE['password'] ) ) setcookie( 'password', '', time() - 1, $path ); if ( isset( $_COOKIE['autologin'] ) ) setcookie( 'autologin', '', time() - 1, $path ); return false; } // Проверяем переменные cookie на недопустимые символы //$login = preg_replace( "#[^- _0-9a-zА-Яа-я]#i", '', $_COOKIE['login'] ); $login = $_COOKIE['login']; // Т.к. пароль зашифрован с помощью sha1, то он представляет собой // 40-значное шестнадцатеричное число $password = substr( $_COOKIE['password'], 0, 40 ); //$password = preg_replace( "#[^0-9a-f]#i", '', $password ); // Выполняем запрос на получение данных пользователя из БД $query = "SELECT * FROM users WHERE login='".$login."' AND password='".$password."' LIMIT 1"; $result = mysqli_query( $connection, $query ); if ( !$result ) { $msg = 'Ошибка при авторизации пользователя'; $err = 'Ошибка при выполнении запроса: <br/>'. $query.'<br/>'.mysqli_errno().':&nbsp;'.mysqli_error().'<br/>'.'(Файл '. __FILE__ .', строка '. __LINE__ .')'; return showErrorMessage( $msg, $err, true, '' ); } // Если пользователь с таким логином и паролем не найден - // значит данные неверные и надо их удалить if ( mysqli_num_rows( $result ) == 0 ) { $tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1; $path = substr( $_SERVER['PHP_SELF'], 0, $tmppos ); setcookie( 'autologin', '', time() - 1, $path ); setcookie( 'login', '', time() - 1, $path ); setcookie( 'password', '', time() - 1, $path ); return false; } $user = mysqli_fetch_assoc( $result ); if ( $user['activation'] == '0' ) { $tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1; $path = substr( $_SERVER['PHP_SELF'], 0, $tmppos ); setcookie( 'autologin', '', time() - 1, $path ); setcookie( 'login', '', time() - 1, $path ); setcookie( 'password', '', time() - 1, $path ); return showInfoMessage( 'Ваша учетная запись не активирована', '' ); } if ( $user['status'] != 'admin' ) { $tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1; $path = substr( $_SERVER['PHP_SELF'], 0, $tmppos ); setcookie( 'autologin', '', time() - 1, $path ); setcookie( 'login', '', time() - 1, $path ); setcookie( 'password', '', time() - 1, $path ); return showInfoMessage( 'Недостаточно прав доступа. Обратитесь к администратору.', '' ); } $_SESSION['user'] = $user; return true; } // Выход из системы function logout() { unset( $_SESSION['user'] ); $tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1; $path = substr( $_SERVER['PHP_SELF'], 0, $tmppos ); if ( isset( $_COOKIE['autologin'] ) ) setcookie( 'autologin', '', time() - 1, $path ); if ( isset( $_COOKIE['login'] ) ) setcookie( 'login', '', time() - 1, $path ); if ( isset( $_COOKIE['password'] ) ) setcookie( 'password', '', time() - 1, $path ); header( 'Location: '.$_SERVER['PHP_SELF'] ); die(); } // Загрузчик файлов (массив $_FILES) // Используется при добавлении и редактировании страниц, новостей function uploader($id, $marker, $path) { global $connection; $filepath = array(); $filename = array(); for( $i = 0; $i < count($_FILES['file']); $i++) { if ( !empty( $_FILES['file']['tmp_name'][$i] ) and $_FILES['file']['error'][$i] == 0 ) { $filepath = $_FILES['file']['tmp_name'][$i]; $filename = $_FILES['file']['name'][$i]; $upload_path = $path;//папка, куда будет загружаться начальная картинка $target = $upload_path . $filename; move_uploaded_file($filepath, $target);//загрузка оригинала в папку $path_to $path_parts = pathinfo($filename); $ext = $path_parts['extension']; $name = $path_parts['filename']; $new_name = translitIt($name).".".$ext; chmod($target, 0755); rename($target, $upload_path.$new_name); $query= "INSERT INTO files (parent, marker, file_name, file_url) VALUES ('".$id."', '".$marker."', '".$name."', '".$new_name."')"; $result = mysqli_query( $connection, $query ); //обработчик ошибки if(!$result) { echo "Возникла ошибка - ".mysqli_error()."\n"; echo $query; exit(); } } } } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 12, Position 2 = 15
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 18
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 31
Branch analysis from position: 21
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 31
Branch analysis from position: 18
Branch analysis from position: 15
filename:       /in/qNYKH
function name:  (null)
number of ops:  67
compiled vars:  !0 = $style, !1 = $html, !2 = $pageTitle, !3 = $description, !4 = $nav, !5 = $content
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'setlocale'
          1        SEND_VAL                                                 0
          2        SEND_VAL                                                 'ru_RU.UTF-8'
          3        DO_ICALL                                                 
    4     4        INCLUDE_OR_EVAL                                          '..%2Finclude%2Fconfig.php', REQUIRE
    5     5        INCLUDE_OR_EVAL                                          '..%2Finclude%2Ffunctions.php', REQUIRE
    7     6        INIT_FCALL                                               'session_start'
          7        DO_ICALL                                                 
   11     8        FETCH_IS                                         ~10     '_SESSION'
          9        ISSET_ISEMPTY_DIM_OBJ                         0  ~11     ~10, 'user'
         10        BOOL_NOT                                         ~12     ~11
         11      > JMPZ_EX                                          ~12     ~12, ->15
         12    >   FETCH_IS                                         ~13     '_COOKIE'
         13        ISSET_ISEMPTY_DIM_OBJ                         0  ~14     ~13, 'autologin'
         14        BOOL                                             ~12     ~14
         15    > > JMPZ                                                     ~12, ->18
         16    >   INIT_FCALL_BY_NAME                                       'autoLogin'
         17        DO_FCALL                                      0          
   14    18    >   ISSET_ISEMPTY_CV                                 ~16     !0
         19        BOOL_NOT                                         ~17     ~16
         20      > JMPZ                                                     ~17, ->31
   15    21    >   ASSIGN                                                   !0, '%3Cstyle+type%3D%22text%2Fcss%22%3E%0D%0A'
   16    22        INIT_FCALL                                               'file_get_contents'
         23        SEND_VAL                                                 '..%2Fstyle%2Fadmin.css'
         24        DO_ICALL                                         $19     
         25        CONCAT                                           ~20     !0, $19
         26        CONCAT                                           ~21     ~20, '%0D%0A'
         27        ASSIGN                                                   !0, ~21
   17    28        CONCAT                                           ~23     !0, '%3C%2Fstyle%3E'
         29        CONCAT                                           ~24     ~23, '%0D%0A'
         30        ASSIGN                                                   !0, ~24
   21    31    >   INIT_FCALL                                               'file_get_contents'
         32        SEND_VAL                                                 '..%2Ftemplates%2Fadmin.html'
         33        DO_ICALL                                         $26     
         34        ASSIGN                                                   !1, $26
   22    35        INIT_FCALL                                               'str_replace'
         36        SEND_VAL                                                 '%7Btitle%7D'
         37        SEND_VAR                                                 !2
         38        SEND_VAR                                                 !1
         39        DO_ICALL                                         $28     
         40        ASSIGN                                                   !1, $28
   23    41        INIT_FCALL                                               'str_replace'
         42        SEND_VAL                                                 '%7Bdescription%7D'
         43        SEND_VAR                                                 !3
         44        SEND_VAR                                                 !1
         45        DO_ICALL                                         $30     
         46        ASSIGN                                                   !1, $30
   24    47        INIT_FCALL                                               'str_replace'
         48        SEND_VAL                                                 '%7Bnav%7D'
         49        SEND_VAR                                                 !4
         50        SEND_VAR                                                 !1
         51        DO_ICALL                                         $32     
         52        ASSIGN                                                   !1, $32
   25    53        INIT_FCALL                                               'str_replace'
         54        SEND_VAL                                                 '%7Bcontent%7D'
         55        SEND_VAR                                                 !5
         56        SEND_VAR                                                 !1
         57        DO_ICALL                                         $34     
         58        ASSIGN                                                   !1, $34
   26    59        INIT_FCALL                                               'str_replace'
         60        SEND_VAL                                                 '%7Bstyle%7D'
         61        SEND_VAR                                                 !0
         62        SEND_VAR                                                 !1
         63        DO_ICALL                                         $36     
         64        ASSIGN                                                   !1, $36
   28    65        ECHO                                                     !1
  271    66      > RETURN                                                   1

Function getloginform:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 27
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
filename:       /in/qNYKH
function name:  getLoginForm
number of ops:  63
compiled vars:  !0 = $style, !1 = $html, !2 = $info
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   31     0  E >   RECV                                             !0      
   33     1        CONCAT                                           ~3      !1, '%3Cform+class%3D%22form-signin%22+action%3D%22%3Faction%3Dlogin%22+method%3D%22post%22%3E'
          2        CONCAT                                           ~4      ~3, '%0D%0A'
          3        ASSIGN                                                   !1, ~4
   34     4        FETCH_IS                                         ~6      '_SESSION'
          5        FETCH_DIM_IS                                     ~7      ~6, 'loginForm'
          6        ISSET_ISEMPTY_DIM_OBJ                         0          ~7, 'error'
          7      > JMPZ                                                     ~8, ->27
   35     8    >   INIT_FCALL                                               'file_get_contents'
          9        SEND_VAL                                                 '..%2Ftemplates%2Finfo.html'
         10        DO_ICALL                                         $9      
         11        ASSIGN                                                   !2, $9
   36    12        INIT_FCALL                                               'str_replace'
         13        SEND_VAL                                                 '%7BinfoMessage%7D'
         14        FETCH_R                      global              ~11     '_SESSION'
         15        FETCH_DIM_R                                      ~12     ~11, 'loginForm'
         16        FETCH_DIM_R                                      ~13     ~12, 'error'
         17        SEND_VAL                                                 ~13
         18        SEND_VAR                                                 !2
         19        DO_ICALL                                         $14     
         20        ASSIGN                                                   !2, $14
   37    21        CONCAT                                           ~16     !1, !2
         22        CONCAT                                           ~17     ~16, '%0D%0A'
         23        ASSIGN                                                   !1, ~17
   38    24        FETCH_UNSET                                      $19     '_SESSION'
         25        FETCH_DIM_UNSET                                  $20     $19, 'loginForm'
         26        UNSET_DIM                                                $20, 'error'
   40    27    >   CONCAT                                           ~21     !1, '%3Ch2+class%3D%22form-signin-heading%22%3E%D0%92%D1%85%D0%BE%D0%B4%3C%2Fh2%3E'
         28        CONCAT                                           ~22     ~21, '%0D%0A'
         29        ASSIGN                                                   !1, ~22
   41    30        CONCAT                                           ~24     !1, '+%3Cinput+class%3D%22input-block-level%22+placeholder%3D%22%D0%9B%D0%BE%D0%B3%D0%B8%D0%BD%22+name%3D%22login%22+type%3D%22text%22+size%3D%2215%22+maxlength%3D%2215%22%3E'
         31        CONCAT                                           ~25     ~24, '%0D%0A'
         32        ASSIGN                                                   !1, ~25
   42    33        CONCAT                                           ~27     !1, '%3Cinput+class%3D%22input-block-level%22+placeholder%3D%22%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D1%8C%22+name%3D%22password%22+type%3D%22password%22+size%3D%2215%22+maxlength%3D%2240%22%3E'
         34        CONCAT                                           ~28     ~27, '%0D%0A'
         35        ASSIGN                                                   !1, ~28
   43    36        CONCAT                                           ~30     !1, '%3Clabel+class%3D%22checkbox%22%3E'
         37        CONCAT                                           ~31     ~30, '%0D%0A'
         38        ASSIGN                                                   !1, ~31
   44    39        CONCAT                                           ~33     !1, '%3Cinput+name%3D%22autologin%22+type%3D%22checkbox%22+value%3D%221%22%3E+%D0%97%D0%B0%D0%BF%D0%BE%D0%BC%D0%BD%D0%B8%D1%82%D1%8C+%D0%BC%D0%B5%D0%BD%D1%8F'
         40        CONCAT                                           ~34     ~33, '%0D%0A'
         41        ASSIGN                                                   !1, ~34
   45    42        CONCAT                                           ~36     !1, '%3C%2Flabel%3E'
         43        CONCAT                                           ~37     ~36, '%0D%0A'
         44        ASSIGN                                                   !1, ~37
   46    45        CONCAT                                           ~39     !1, '%3Cbutton+class%3D%22btn+btn-large+btn-primary%22+type%3D%22submit%22+name%3D%22submit%22%3E%D0%92%D0%BE%D0%B9%D1%82%D0%B8%3C%2Fbutton%3E'
         46        CONCAT                                           ~40     ~39, '%0D%0A'
         47        ASSIGN                                                   !1, ~40
   47    48        CONCAT                                           ~42     !1, '%3C%2Fform%3E'
         49        CONCAT                                           ~43     ~42, '%0D%0A'
         50        ASSIGN                                                   !1, ~43
   49    51        ASSIGN                                                   !0, '%3Cstyle+type%3D%22text%2Fcss%22%3E%0D%0A'
   50    52        INIT_FCALL                                               'file_get_contents'
         53        SEND_VAL                                                 '..%2Fstyle%2Flogin.css'
         54        DO_ICALL                                         $46     
         55        CONCAT                                           ~47     !0, $46
         56        CONCAT                                           ~48     ~47, '%0D%0A'
         57        ASSIGN                                                   !0, ~48
   51    58        CONCAT                                           ~50     !0, '%3C%2Fstyle%3E'
         59        CONCAT                                           ~51     ~50, '%0D%0A'
         60        ASSIGN                                                   !0, ~51
   53    61      > RETURN                                                   !1
   54    62*     > RETURN                                                   null

End of function getloginform

Function login:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 47) Position 1 = 5, Position 2 = 9
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 17
Branch analysis from position: 10
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 27
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 54, Position 2 = 57
Branch analysis from position: 54
2 jumps found. (Code = 43) Position 1 = 59, Position 2 = 62
Branch analysis from position: 59
2 jumps found. (Code = 43) Position 1 = 70, Position 2 = 114
Branch analysis from position: 70
2 jumps found. (Code = 43) Position 1 = 82, Position 2 = 106
Branch analysis from position: 82
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 106
2 jumps found. (Code = 43) Position 1 = 111, Position 2 = 114
Branch analysis from position: 111
2 jumps found. (Code = 43) Position 1 = 117, Position 2 = 150
Branch analysis from position: 117
2 jumps found. (Code = 43) Position 1 = 122, Position 2 = 127
Branch analysis from position: 122
1 jumps found. (Code = 42) Position 1 = 135
Branch analysis from position: 135
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 127
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 150
2 jumps found. (Code = 43) Position 1 = 159, Position 2 = 164
Branch analysis from position: 159
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 164
2 jumps found. (Code = 43) Position 1 = 167, Position 2 = 172
Branch analysis from position: 167
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 172
2 jumps found. (Code = 43) Position 1 = 178, Position 2 = 227
Branch analysis from position: 178
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 227
Branch analysis from position: 114
Branch analysis from position: 114
Branch analysis from position: 62
Branch analysis from position: 57
Branch analysis from position: 27
Branch analysis from position: 9
filename:       /in/qNYKH
function name:  login
number of ops:  236
compiled vars:  !0 = $connection, !1 = $login, !2 = $password, !3 = $error, !4 = $salt, !5 = $query, !6 = $result, !7 = $msg, !8 = $err, !9 = $user, !10 = $tmppos, !11 = $path
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   59     0  E >   BIND_GLOBAL                                              !0, 'connection'
   62     1        FETCH_IS                                         ~12     '_POST'
          2        ISSET_ISEMPTY_DIM_OBJ                         0  ~13     ~12, 'login'
          3        BOOL_NOT                                         ~14     ~13
          4      > JMPNZ_EX                                         ~14     ~14, ->9
   63     5    >   FETCH_IS                                         ~15     '_POST'
          6        ISSET_ISEMPTY_DIM_OBJ                         0  ~16     ~15, 'password'
          7        BOOL_NOT                                         ~17     ~16
          8        BOOL                                             ~14     ~17
          9    > > JMPZ                                                     ~14, ->17
   65    10    >   INIT_FCALL                                               'header'
         11        FETCH_R                      global              ~18     '_SERVER'
         12        FETCH_DIM_R                                      ~19     ~18, 'PHP_SELF'
         13        CONCAT                                           ~20     'Location%3A+', ~19
         14        SEND_VAL                                                 ~20
         15        DO_ICALL                                                 
   66    16      > EXIT                                                     
   70    17    >   FETCH_IS                                         ~22     '_SESSION'
         18        FETCH_DIM_IS                                     ~23     ~22, 'loginForm'
         19        ISSET_ISEMPTY_DIM_OBJ                         0          ~23, 'count'
         20      > JMPZ                                                     ~24, ->27
         21    >   INIT_FCALL                                               'sleep'
         22        FETCH_R                      global              ~25     '_SESSION'
         23        FETCH_DIM_R                                      ~26     ~25, 'loginForm'
         24        FETCH_DIM_R                                      ~27     ~26, 'count'
         25        SEND_VAL                                                 ~27
         26        DO_ICALL                                                 
   73    27    >   INIT_FCALL                                               'substr'
         28        FETCH_R                      global              ~29     '_POST'
         29        FETCH_DIM_R                                      ~30     ~29, 'login'
         30        SEND_VAL                                                 ~30
         31        SEND_VAL                                                 0
         32        SEND_VAL                                                 40
         33        DO_ICALL                                         $31     
         34        ASSIGN                                                   !1, $31
   74    35        INIT_FCALL                                               'substr'
         36        FETCH_R                      global              ~33     '_POST'
         37        FETCH_DIM_R                                      ~34     ~33, 'password'
         38        SEND_VAL                                                 ~34
         39        SEND_VAL                                                 0
         40        SEND_VAL                                                 40
         41        DO_ICALL                                         $35     
         42        ASSIGN                                                   !2, $35
   77    43        INIT_FCALL                                               'trim'
         44        SEND_VAR                                                 !1
         45        DO_ICALL                                         $37     
         46        ASSIGN                                                   !1, $37
   78    47        INIT_FCALL                                               'trim'
         48        SEND_VAR                                                 !2
         49        DO_ICALL                                         $39     
         50        ASSIGN                                                   !2, $39
   81    51        ASSIGN                                                   !3, ''
   82    52        ISSET_ISEMPTY_CV                                         !1
         53      > JMPZ                                                     ~42, ->57
         54    >   CONCAT                                           ~43     !3, '%3Cli%3E%D0%BD%D0%B5+%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BE+%D0%BF%D0%BE%D0%BB%D0%B5+%22%D0%98%D0%BC%D1%8F%22%3C%2Fli%3E'
         55        CONCAT                                           ~44     ~43, '%0D%0A'
         56        ASSIGN                                                   !3, ~44
   83    57    >   ISSET_ISEMPTY_CV                                         !2
         58      > JMPZ                                                     ~46, ->62
         59    >   CONCAT                                           ~47     !3, '%3Cli%3E%D0%BD%D0%B5+%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BE+%D0%BF%D0%BE%D0%BB%D0%B5+%22%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D1%8C%22%3C%2Fli%3E'
         60        CONCAT                                           ~48     ~47, '%0D%0A'
         61        ASSIGN                                                   !3, ~48
   92    62    >   ASSIGN                                                   !4, 'yD4%401bTySXq9vb'
   93    63        INIT_FCALL                                               'sha1'
         64        CONCAT                                           ~51     !4, !2
         65        SEND_VAL                                                 ~51
         66        DO_ICALL                                         $52     
         67        ASSIGN                                                   !2, $52
   97    68        ISSET_ISEMPTY_CV                                         !3
         69      > JMPZ                                                     ~54, ->114
   99    70    >   CONCAT                                           ~55     'SELECT+%2A+FROM+users+WHERE+login%3D%27', !1
         71        CONCAT                                           ~56     ~55, '%27+AND+password%3D%27'
         72        CONCAT                                           ~57     ~56, !2
         73        CONCAT                                           ~58     ~57, '%27+LIMIT+1'
         74        ASSIGN                                                   !5, ~58
  101    75        INIT_FCALL_BY_NAME                                       'mysqli_query'
         76        SEND_VAR_EX                                              !0
         77        SEND_VAR_EX                                              !5
         78        DO_FCALL                                      0  $60     
         79        ASSIGN                                                   !6, $60
  103    80        BOOL_NOT                                         ~62     !6
         81      > JMPZ                                                     ~62, ->106
  104    82    >   ASSIGN                                                   !7, '%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0+%D0%BF%D1%80%D0%B8+%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8+%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F'
  106    83        CONCAT                                           ~64     '%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0+%D0%BF%D1%80%D0%B8+%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8+%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%3A+%3Cbr%2F%3E', !5
         84        CONCAT                                           ~65     ~64, '%3Cbr%2F%3E'
         85        INIT_FCALL_BY_NAME                                       'mysqli_errno'
         86        DO_FCALL                                      0  $66     
         87        CONCAT                                           ~67     ~65, $66
         88        CONCAT                                           ~68     ~67, '%3A%26nbsp%3B'
         89        INIT_FCALL_BY_NAME                                       'mysqli_error'
         90        DO_FCALL                                      0  $69     
         91        CONCAT                                           ~70     ~68, $69
         92        CONCAT                                           ~71     ~70, '%3Cbr%2F%3E'
         93        CONCAT                                           ~72     ~71, '%28%D0%A4%D0%B0%D0%B9%D0%BB+'
         94        CONCAT                                           ~73     ~72, '%2Fin%2FqNYKH'
         95        CONCAT                                           ~74     ~73, '%2C+%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0+'
         96        CONCAT                                           ~75     ~74, '106'
         97        CONCAT                                           ~76     ~75, '%29'
  105    98        ASSIGN                                                   !8, ~76
  107    99        INIT_FCALL_BY_NAME                                       'showErrorMessage'
        100        SEND_VAR_EX                                              !7
        101        SEND_VAR_EX                                              !8
        102        SEND_VAL_EX                                              <true>
        103        SEND_VAL_EX                                              'action%3DloginForm'
        104        DO_FCALL                                      0  $78     
        105      > RETURN                                                   $78
  109   106    >   INIT_FCALL_BY_NAME                                       'mysqli_num_rows'
        107        SEND_VAR_EX                                              !6
        108        DO_FCALL                                      0  $79     
        109        IS_EQUAL                                                 $79, 0
        110      > JMPZ                                                     ~80, ->114
  110   111    >   CONCAT                                           ~81     !3, '%3Cli%3E%D0%9D%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD+%D0%B8%D0%BB%D0%B8+%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C%3C%2Fli%3E'
        112        CONCAT                                           ~82     ~81, '%0A'
        113        ASSIGN                                                   !3, ~82
  114   114    >   ISSET_ISEMPTY_CV                                 ~84     !3
        115        BOOL_NOT                                         ~85     ~84
        116      > JMPZ                                                     ~85, ->150
  115   117    >   FETCH_IS                                         ~86     '_SESSION'
        118        FETCH_DIM_IS                                     ~87     ~86, 'loginForm'
        119        ISSET_ISEMPTY_DIM_OBJ                         0  ~88     ~87, 'count'
        120        BOOL_NOT                                         ~89     ~88
        121      > JMPZ                                                     ~89, ->127
  116   122    >   FETCH_W                      global              $90     '_SESSION'
        123        FETCH_DIM_W                                      $91     $90, 'loginForm'
        124        ASSIGN_DIM                                               $91, 'count'
        125        OP_DATA                                                  1
        126      > JMP                                                      ->135
  118   127    >   FETCH_R                      global              ~96     '_SESSION'
        128        FETCH_DIM_R                                      ~97     ~96, 'loginForm'
        129        FETCH_DIM_R                                      ~98     ~97, 'count'
        130        ADD                                              ~99     ~98, 1
        131        FETCH_W                      global              $93     '_SESSION'
        132        FETCH_DIM_W                                      $94     $93, 'loginForm'
        133        ASSIGN_DIM                                               $94, 'count'
        134        OP_DATA                                                  ~99
  121   135    >   CONCAT                                           ~103    '%3Cbr%3E%0D%0A%D0%9F%D1%80%D0%B8+%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%D0%B8+%D1%84%D0%BE%D1%80%D0%BC%D1%8B+%D0%B1%D1%8B%D0%BB%D0%B8+%D0%B4%D0%BE%D0%BF%D1%83%D1%89%D0%B5%D0%BD%D1%8B+%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8%3A%0D%0A%3Cul%3E%0D%0A', !3
        136        CONCAT                                           ~104    ~103, '%3C%2Ful%3E'
        137        CONCAT                                           ~105    ~104, '%0D%0A'
  120   138        FETCH_W                      global              $100    '_SESSION'
        139        FETCH_DIM_W                                      $101    $100, 'loginForm'
        140        ASSIGN_DIM                                               $101, 'error'
  121   141        OP_DATA                                                  ~105
  122   142        INIT_FCALL                                               'header'
        143        FETCH_R                      global              ~106    '_SERVER'
        144        FETCH_DIM_R                                      ~107    ~106, 'PHP_SELF'
        145        CONCAT                                           ~108    'Location%3A+', ~107
        146        CONCAT                                           ~109    ~108, '%3Faction%3DloginForm'
        147        SEND_VAL                                                 ~109
        148        DO_ICALL                                                 
  123   149      > EXIT                                                     
  127   150    >   FETCH_UNSET                                      $111    '_SESSION'
        151        UNSET_DIM                                                $111, 'loginForm'
  129   152        INIT_FCALL_BY_NAME                                       'mysqli_fetch_assoc'
        153        SEND_VAR_EX                                              !6
        154        DO_FCALL                                      0  $112    
        155        ASSIGN                                                   !9, $112
  131   156        FETCH_DIM_R                                      ~114    !9, 'activation'
        157        IS_EQUAL                                                 ~114, '0'
        158      > JMPZ                                                     ~115, ->164
  132   159    >   INIT_FCALL_BY_NAME                                       'showInfoMessage'
        160        SEND_VAL_EX                                              '%D0%92%D0%B0%D1%88%D0%B0+%D1%83%D1%87%D0%B5%D1%82%D0%BD%D0%B0%D1%8F+%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C+%D0%BD%D0%B5+%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B0'
        161        SEND_VAL_EX                                              ''
        162        DO_FCALL                                      0  $116    
        163      > RETURN                                                   $116
  135   164    >   FETCH_DIM_R                                      ~117    !9, 'status'
        165        IS_NOT_EQUAL                                             ~117, 'admin'
        166      > JMPZ                                                     ~118, ->172
  136   167    >   INIT_FCALL_BY_NAME                                       'showInfoMessage'
        168        SEND_VAL_EX                                              '%D0%9D%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D0%BE+%D0%BF%D1%80%D0%B0%D0%B2+%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0.+%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%B8%D1%82%D0%B5%D1%81%D1%8C+%D0%BA+%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%83.'
        169        SEND_VAL_EX                                              ''
        170        DO_FCALL                                      0  $119    
        171      > RETURN                                                   $119
  138   172    >   FETCH_W                      global              $120    '_SESSION'
        173        ASSIGN_DIM                                               $120, 'user'
        174        OP_DATA                                                  !9
  141   175        FETCH_IS                                         ~122    '_POST'
        176      

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
171.42 ms | 1428 KiB | 31 Q