{"id":157055,"date":"2012-11-01T19:53:04","date_gmt":"2012-11-01T15:53:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=157055"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=157055","title":{"rendered":"<span class=\"post_title\">\u0421\u0432\u044f\u0437\u043a\u0430 MODX Revolution \u0438 \u0444\u043e\u0440\u0443\u043c\u0430 phpBB<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0412\u0435\u0440\u0441\u0438\u044f phpBB: <b>3.0.11<\/b><br \/>  \u0412\u0435\u0440\u0441\u0438\u044f MODX: <b>2.2.5-pl<\/b><\/p>\n<p>  \u041f\u0430\u043f\u043a\u0430 \u0441\u0430\u0439\u0442\u0430: <b>\/<\/b><br \/>  \u041f\u0430\u043f\u043a\u0430 \u0444\u043e\u0440\u0443\u043c\u0430: <b>\/forum<\/b><\/p>\n<p>  \u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0443 \u043c\u0435\u043d\u044f \u0440\u0430\u0437\u043d\u044b\u0435, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0438 \u043e\u0434\u043d\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0432\u0440\u043e\u0434\u0435 \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u041f\u0443\u0442\u0435\u043c.<\/p>\n<p>  \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 <s>\u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e<\/s> \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 MODX. \u041d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 MODX, \u043d\u043e \u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 MODX.<\/p>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u041f\u043b\u0430\u0433\u0438\u043d \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 phpBB<\/h4>\n<p>  \u0414\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u00ab\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438\u00bb, \u0432\u043a\u0440\u0430\u0442\u0446\u0435 \u043e\u0431 \u043d\u0438\u0445.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0430\u0434\u043e:<\/p>\n<p>  1. \u041f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0438\u043c\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0443 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: modx<br \/>  2. \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b \/forum\/includes\/auth\/auth_modx.php (\u0441\u0443\u0444\u0444\u0438\u043a\u0441 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 (modx) == \u0438\u043c\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430)<br \/>  3. \u0412 \u0444\u0430\u0439\u043b\u0435 \/forum\/includes\/auth\/auth_modx.php, \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f login_modx (\u0441\u0443\u0444\u0444\u0438\u043a\u0441 == \u0438\u043c\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430)<br \/>  4. \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435: \u041e\u0411\u0429\u0418\u0415 -&gt; \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 -&gt; \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e<br \/>  5. \u0412 \u0430\u0434\u043c\u0438\u043d \u043f\u0430\u043d\u0435\u043b\u0438 \u0444\u043e\u0440\u0443\u043c\u0430: \u041e\u0411\u0429\u0418\u0415 -&gt; \u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f -&gt; \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 Modx<\/p>\n<p>  \u041a\u043e\u0434 \u0444\u0430\u0439\u043b\u0430 <b>\/forum\/includes\/auth\/auth_modx.php<\/b>:  <\/p>\n<pre><code class=\"php\">&lt;?php  # \/forum\/includes\/auth\/auth_modx.php  if (!defined('IN_PHPBB')){     exit; }  \/**  * \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435  *\/ function get_user_data(){     \/\/ \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c     define('MODX_API_MODE', true);     require dirname(dirname(dirname(dirname(__FILE__)))) . '\/index.php'; \/\/ \u0443 \u043c\u0435\u043d\u044f \u0444\u043e\u0440\u0443\u043c \u043b\u0435\u0436\u0438\u0442 \u0432 \/forum      \/\/ MODX \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043d\u0430 \u0441\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0447\u0438\u043a \u043e\u0448\u0438\u0431\u043e\u043a, \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u0443\u043c\u0430 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a\u0440\u0438\u0432\u043e,     \/\/ \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u043d\u044b\u0439:     set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');      \/\/ \u0431\u0435\u0440\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f     if($modx-&gt;user-&gt;get('id') != 0){ \/\/ \u0415\u0441\u043b\u0438 \u043d\u0435 anonimous         $result['username'] = $modx-&gt;user-&gt;get('username');         $profile = $modx-&gt;user-&gt;getOne('Profile');         $result['user_email'] = $profile-&gt;get('email');         $fields = $profile-&gt;get('extended');         $result['user_from'] = $fields['region'];         \/\/ \u0421\u044e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044f \u043f\u0440\u043e\u0444\u0438\u043b\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:         \/\/ $result['\u0438\u043c\u044f_\u0441\u0442\u043e\u043b\u0431\u0446\u0430_\u0432_\u0411\u0414_\u0444\u043e\u0440\u0443\u043c\u0430_\u0432_\u0442\u0430\u0431\u043b\u0438\u0446\u0435_users'] = \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435_\u043f\u043e\u043b\u044f_\u0438\u0437_\u0411\u0414_modx;         \/\/ \u0412\u0441\u0435 \u043f\u043e\u043b\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f, \u0438 \u0435\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u0432 MODX, \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0438 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435,         \/\/ \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u041f\u043e\u043c\u0435\u043d\u044f\u043b\u0441\u044f \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 MODX extended \u043f\u043e\u043b\u0435 region, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0411\u0414 \u0444\u043e\u0440\u0443\u043c\u0430 \u043f\u043e\u043b\u0435 user_from         \/\/ \u0430\u0432\u0442\u043e\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 validate_session_modx (\u043d\u0438\u0436\u0435)     }      return $result; }  \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e.  *\/ function login_modx(){     $auth = get_user_data();     \/\/ \u0435\u0441\u043b\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430     if (!is_array($auth) || empty($auth))     {         return array(             'status' =&gt; LOGIN_ERROR_USERNAME,             'error_msg' =&gt; 'ACCESS_DIRECTLY_DENIDED',             'user_row' =&gt; array('user_id' =&gt; ANONYMOUS),         );     }      global $db;     $sql = 'SELECT user_id, username, user_password, user_email, user_from, user_type            FROM ' . USERS_TABLE . &quot;            WHERE username_clean = '&quot; . $db-&gt;sql_escape($auth['username']) . &quot;'&quot;;     $result = $db-&gt;sql_query($sql);     $row = $db-&gt;sql_fetchrow($result);     $db-&gt;sql_freeresult($result);      if ($row){         $res = array(             'status'     =&gt; LOGIN_SUCCESS,             'error_msg'  =&gt; false,             'user_row'     =&gt; array(                 'user_id' =&gt; $row['user_id'],                 'username'       =&gt; $row['username'],  \/\/ \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f                 'user_email'     =&gt; $row['user_email'],  \/\/ E-mail \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0435\u0441\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442                 'user_from'     =&gt; $row['user_from'],                 'user_type'      =&gt; 0,                 'group_id' =&gt; 2             )         );         return $res;     }      \/\/ \u0421\u043e\u043e\u0431\u0449\u0430\u0435\u043c, \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e.     $res = array(         'status'     =&gt; LOGIN_SUCCESS_CREATE_PROFILE,         'error_msg'  =&gt; false,         'user_row'     =&gt; array(             &quot;username&quot;       =&gt; $auth['username'],  \/\/ \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f             &quot;user_email&quot;     =&gt; $auth['user_email'],  \/\/ E-mail \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0435\u0441\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442             &quot;user_from&quot;     =&gt; $auth['user_from'],             &quot;user_type&quot;      =&gt; 0,             &quot;group_id&quot; =&gt; 2         ),     );     return $res;  }  \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u043e\u0441\u0435\u0449\u0435\u043d\u0438\u0438.  *\/ function autologin_modx(){     $user_row = login_modx();     \/\/ \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0435\u0449\u0435 \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d     if ($user_row['status'] == LOGIN_SUCCESS_CREATE_PROFILE)     {         global $phpbb_root_path, $phpEx;         if (!function_exists('user_add'))         {             include($phpbb_root_path . 'includes\/functions_user.' . $phpEx);         }         $user_row['user_row']['user_id'] = user_add($user_row['user_row']);     }     \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f     global $db;     $sql = 'SELECT * FROM ' . USERS_TABLE . &quot; WHERE user_id = '&quot; . $db-&gt;sql_escape($user_row['user_row']['user_id']) . &quot;'&quot;;     $result = $db-&gt;sql_query($sql);     $row = $db-&gt;sql_fetchrow($result);     $db-&gt;sql_freeresult($result);     return $row; }  \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f modx \u0438 \u043f\u043e\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0444\u043e\u0440\u0443\u043c\u0430, \u0435\u0441\u043b\u0438 \u0432 modx \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c, \u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u044d\u0442\u043e \u043f\u043e\u043b\u0435 \u0438 \u0432 \u0444\u043e\u0440\u0443\u043c\u0435  *\/ function validate_session_modx() {     if($auth = get_user_data()){         \/\/ \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f modx \u043b\u0435\u0436\u0430\u0442 \u0432 $auth         \/\/ \u0412\u0437\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f phpbb         global $db;         \/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0438\u0437 modx (user_id - \u043d\u0435 \u0432 \u0441\u0447\u0435\u0442)         $sql = 'SELECT user_id, user_email, user_from            FROM ' . USERS_TABLE . &quot;            WHERE username_clean = '&quot; . $db-&gt;sql_escape($auth['username']) . &quot;'&quot;;         $result = $db-&gt;sql_query($sql);         $row = $db-&gt;sql_fetchrow($result);         $db-&gt;sql_freeresult($result);          if ($row){              foreach($auth as $auK =&gt; $auV){                 if($row[$auK] != $auV){ \/\/ \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0444\u043e\u0440\u043c\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u044e \u0438\u0437 modx (\u0445\u043e\u0442\u044c \u043e\u0434\u043d\u043e)                     \/\/ \u0421\u0434\u0435\u043b\u0430\u0442\u044c UPDATE                     unset($auth['username']);                     $sql = &quot;UPDATE &quot; . USERS_TABLE . &quot; SET &quot; . $db-&gt;sql_build_array('UPDATE', $auth) .                         &quot; WHERE user_id = '&quot; . $db-&gt;sql_escape($row['user_id']) . &quot;'&quot;;                     $db-&gt;sql_query($sql);                     break;                 }             }         }     } }  <\/code><\/pre>\n<h4>\u0410\u0434\u043c\u0438\u043d \u0444\u043e\u0440\u0443\u043c\u0430<\/h4>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f <s>\u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e<\/s> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 MODX, \u0442\u043e \u0430\u0434\u043c\u0438\u043d \u0444\u043e\u0440\u0443\u043c\u0430 (\u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 admin), \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 MODX.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c admin \u0432 MODX, \u0438 \u0443 \u0444\u043e\u0440\u0443\u043c\u0430 \u0430\u0434\u043c\u0438\u043d \u0441 \u0442\u0435\u043c \u0436\u0435 \u0438\u043c\u0435\u043d\u0435\u043c admin.<br \/>  \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0444\u043e\u0440\u0443\u043c\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f, \u0442.\u043a. \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0443 \u043d\u0430\u0441 \u0432 MODX, \u0430 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0411\u0414 \u0444\u043e\u0440\u0443\u043c\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/romb.ru\/images\/phpbb\/repeatpass.gif\" alt=\"image\"\/><\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0432\u0435\u0440\u043a\u0443 \u043f\u0430\u0440\u043e\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0430:<br \/>  \u0412 \u0444\u0430\u0439\u043b\u0435: \/forum\/adm\/index.php  <\/p>\n<pre><code class=\"php\">\/\/ Have they authenticated (again) as an admin for this session? if (!isset($user-&gt;data['session_admin']) || !$user-&gt;data['session_admin']) { \tlogin_box('', $user-&gt;lang['LOGIN_ADMIN_CONFIRM'], $user-&gt;lang['LOGIN_ADMIN_SUCCESS'], true, false); } <\/code><\/pre>\n<p>  \u041c\u0435\u043d\u044f\u0435\u043c \u043d\u0430:  <\/p>\n<pre><code class=\"php\">\/\/ Have they authenticated (again) as an admin for this session? \/\/if (!isset($user-&gt;data['session_admin']) || !$user-&gt;data['session_admin']) \/\/{ \/\/\tlogin_box('', $user-&gt;lang['LOGIN_ADMIN_CONFIRM'], $user-&gt;lang['LOGIN_ADMIN_SUCCESS'], true, false); \/\/} <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435:  <\/p>\n<pre><code class=\"php\">if (!$auth-&gt;acl_get('a_')) { \ttrigger_error('NO_ADMIN'); } <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443:  <\/p>\n<pre><code class=\"php\">$user-&gt;data['session_admin'] = 1; <\/code><\/pre>\n<p>  <\/p>\n<h4>\u0412\u0445\u043e\u0434, \u0432\u044b\u0445\u043e\u0434, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f<\/h4>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0439\u0442\u0438 \u0441 \u0444\u043e\u0440\u0443\u043c\u0430 \u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 \u043f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u00ab\u0412\u044b\u0445\u043e\u0434 [\u0438\u043c\u044f_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f]\u00bb:<br \/>  \u0412 \u0444\u0430\u0439\u043b\u0435 \/forum\/ucp.php, \u043c\u0435\u0436\u0434\u0443 case &#8216;logout&#8217;: \u0438 break; (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e) \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:  <\/p>\n<pre><code class=\"php\">\tcase 'logout':                  \/\/ \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 modx API         define('MODX_API_MODE', true);         require dirname(dirname(__FILE__)) . '\/index.php';         $modx-&gt;getService('error','error.modError');         \/\/ \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u0444\u043e\u0440\u0443\u043c\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0448\u0438\u0431\u043e\u043a         set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');                  \/\/ \u041a\u043e\u0440\u043e\u0447\u0435: \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u044f \u0432 $_GET['sid'] \u0438 \u043e\u043d\u0430 \u043d\u043e\u0440\u043c, \u0442\u043e \u044d\u0442\u043e...         if ($user-&gt;data['user_id'] != ANONYMOUS && isset($_GET['sid']) && !is_array($_GET['sid']) && $_GET['sid'] === $user-&gt;session_id)         {             $user-&gt;session_kill();             $user-&gt;session_begin();         }          $modx-&gt;runProcessor('\/security\/logout');         $message = $user-&gt;lang['LOGOUT_REDIRECT'];          meta_refresh(3, append_sid(&quot;{$phpbb_root_path}index.$phpEx&quot;));          $message = $message . '&lt;br \/&gt;&lt;br \/&gt;' . sprintf($user-&gt;lang['RETURN_INDEX'], '&lt;a href=&quot;' . append_sid(&quot;{$phpbb_root_path}index.$phpEx&quot;) . '&quot;&gt;', '&lt;\/a&gt; ');         trigger_error($message); \tbreak; <\/code><\/pre>\n<p>  \u0410 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0438 \u0444\u043e\u0440\u0443\u043c\u0435, \u0447\u0435\u0440\u0435\u0437 \u0444\u043e\u0440\u043c\u0443 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435:<br \/>  \u041c\u0435\u0436\u0434\u0443 case &#8216;login&#8217;: \u0438 break; (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e), \u0432\u0441\u0435 \u0442\u043e\u0442 \u0436\u0435 \u0444\u0430\u0439\u043b \/forum\/ucp.php:<\/p>\n<pre><code class=\"php\">\tcase 'login':         define('MODX_API_MODE', true);         require dirname(dirname(__FILE__)) . '\/index.php';         $modx-&gt;getService('error','error.modError');         set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');          if($_REQUEST[&quot;username&quot;] and $_REQUEST[&quot;password&quot;]){             $data = array(                 'username' =&gt; $_REQUEST[&quot;username&quot;],                 'password' =&gt; $_REQUEST[&quot;password&quot;],                 'rememberme' =&gt; 1,                 'login_context' =&gt; 'web',             );             $response = $modx-&gt;runProcessor('\/security\/login', $data);             if ($response-&gt;isError()) {                 trigger_error($response-&gt;getMessage());             }         }          if ($user-&gt;data['is_registered']) \t\t{ \t\t\tredirect(append_sid(&quot;{$phpbb_root_path}index.$phpEx&quot;)); \t\t}  \t\tlogin_box(request_var('redirect', &quot;index.$phpEx&quot;)); \tbreak; <\/code><\/pre>\n<p>  \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435\u0431\u044b\u043b\u043e \u0432 \u0411\u0414 \u0444\u043e\u0440\u0443\u043c\u0430, \u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u00ab\u0417\u0430\u0431\u044b\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c?\u00bb \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435, \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f MODX (\/forum\/ucp.php):<\/p>\n<pre><code class=\"php\">\tcase 'sendpassword':          define('MODX_API_MODE', true);         require dirname(dirname(__FILE__)) . '\/index.php';         $modx-&gt;getService('error','error.modError');         set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');         $modx-&gt;sendRedirect($modx-&gt;makeUrl(865,'','','full')); \/\/ \u0433\u0434\u0435 865 - \u044d\u0442\u043e ID \u0440\u0435\u0441\u0443\u0440\u0441\u0430 MODX \u0441 \u0444\u043e\u0440\u043c\u043e\u0439 \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f  \tbreak; <\/code><\/pre>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0432\u0437\u044f\u0442\u0430 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443:<br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/150872\/\">\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0430\u0439\u0442\u0430 \u0438 \u0444\u043e\u0440\u0443\u043c\u0430 \u043d\u0430 phpbb 3<\/a>    \t   \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/157055\/\"> http:\/\/habrahabr.ru\/post\/157055\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0412\u0435\u0440\u0441\u0438\u044f phpBB: <b>3.0.11<\/b><br \/>  \u0412\u0435\u0440\u0441\u0438\u044f MODX: <b>2.2.5-pl<\/b><\/p>\n<p>  \u041f\u0430\u043f\u043a\u0430 \u0441\u0430\u0439\u0442\u0430: <b>\/<\/b><br \/>  \u041f\u0430\u043f\u043a\u0430 \u0444\u043e\u0440\u0443\u043c\u0430: <b>\/forum<\/b><\/p>\n<p>  \u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0443 \u043c\u0435\u043d\u044f \u0440\u0430\u0437\u043d\u044b\u0435, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0438 \u043e\u0434\u043d\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0432\u0440\u043e\u0434\u0435 \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u041f\u0443\u0442\u0435\u043c.<\/p>\n<p>  \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 <s>\u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e<\/s> \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 MODX. \u041d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 MODX, \u043d\u043e \u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 MODX.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-157055","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/157055","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=157055"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/157055\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=157055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=157055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=157055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}