Пример #1
0
 /**
  * функция проверки авторизации админа
  * Берет логин и пароль админа из сесси и сверяет их с данными в БД
  * 
  * @param (string) $login - новый логин (может быть false)
  * @param (string) $password - новый пароль (может быть false)
  * 
  * @return bool (сообщение перезагружающее страницу)
  */
 static function changeAdminPassword($login, $password)
 {
     $link = isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : '';
     if ($login && $password) {
         $change = "login='******', password='******'";
         $arrSession = array('administrator_login' => md5($login), 'administrator_password' => md5($password));
     } elseif (!$login && $password) {
         $change = "password='******'";
         $arrSession = array('administrator_password' => md5($password));
     } elseif ($login && !$password) {
         $change = "login='******'";
         $arrSession = array('administrator_login' => md5($login));
     } else {
         $change = false;
     }
     $strQuery = "UPDATE " . USR_PREFIX . "admin SET " . $change . " WHERE login IN (" . secure::escQuoteData($_SESSION['administrator_login']) . ") AND password IN (" . secure::escQuoteData($_SESSION['administrator_password']) . ")";
     if (!empty($change) && db::dbQuery($strQuery)) {
         // обновляем пароль в сессии
         tools::updateSessionData($_SESSION, $arrSession);
         messages::messageChangeSaved(MESSAGE_DATA_HAS_BEEN_CHANGED, false, CONF_ADMIN_FILE . $link);
     } else {
         messages::messageChangeSaved(MESSAGE_DATA_HAS_NOT_BEEN_CHANGED, false, CONF_ADMIN_FILE . $link);
     }
 }
Пример #2
0
                $new_password = md5($_POST['new_password']);
                if (md5($_POST['password']) !== $_SESSION['sd_user']['data']['password']) {
                    $arrErrors[] = ERROR_PASSWORD;
                }
                if (strlen($_POST['new_password']) < CONF_REGISTER_USER_PASSWORD) {
                    $arrErrors[] = ERROR_PASSWORD_SHORT;
                }
                if (md5($_POST['password']) === md5($_POST['new_password'])) {
                    $arrErrors[] = ERROR_PASSWORD_NOT_NEW_PASSWORD;
                }
                if ($_POST['new_password'] !== $_POST['confirm_password']) {
                    $arrErrors[] = ERROR_PASSWORD_NOT_CONFIRM_PASSWORD;
                }
            } else {
                $arrErrors[] = ERROR_EMPTY_FIELDS;
            }
            if (!$arrErrors) {
                $user->updateUser(array('password' => md5($_POST['new_password'])), "id IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ")");
                // обновляем пароль в сессии
                tools::updateSessionData($_SESSION['sd_user']['data'], array('password' => md5($_POST['new_password'])));
                messages::messageChangeSaved(MESSAGE_PASSWORD_HAS_BEEEN_CHANGED, false, chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?ut=' . $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] . '&amp;do=user.data'));
            } else {
                $smarty->assignByRef('errors', $arrErrors);
            }
        }
    } else {
        messages::error404();
    }
} else {
    messages::error404();
}
Пример #3
0
 /**
  * protected функция обновления данных пользователя
  * функция может использоваться лишь в том случае, если пользователь вошел на сайт (его данные есть в сессии)
  *
  * @param (array) $arrData - массив данных пользователя для записи в основную таблицу пользователей or false
  * @param (array) $arrConfData - массив данных пользователя для записи в таблицу настроек пользователей or false
  *
  * @return bool
  */
 protected function updateUserData($arrData, $arrConfData)
 {
     // если переданы данные, для обновления в общей таблице пользователей
     if ($arrData) {
         // обновляем данные
         if (!$this->updateUser($arrData, "id IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ")")) {
             return false;
         } else {
             // если данные обновились, обновляем их и в сессии
             tools::updateSessionData($_SESSION['sd_user']['data'], $arrData);
         }
     }
     // если переданы данные для обновления в общей таблице настроек пользователей
     if ($arrConfData) {
         $this->changeTable('conf_users');
         if (!$this->updateUser($arrConfData, "id IN (" . secure::escQuoteData($_SESSION['sd_user']['data']['id']) . ")")) {
             // изменяем рабочую таблицу
             $this->changeTable('users', USR_PREFIX);
             return false;
         } else {
             // изменяем рабочую таблицу
             $this->changeTable('users', USR_PREFIX);
             // если данные обновились, обновляем их и в сессии
             tools::updateSessionData($_SESSION['sd_user'][DB_PREFIX . 'conf'], $arrConfData);
         }
     }
     return true;
 }