Soniks
15.02.2007, 19:23
Инструкция по ручному обновлению встроенного форума phpBB в php-nuke с версии 2.0.21 до версии 2.0.22. Инструкция приведена для версий php-nuke ниже 8.x для версий выше следует учесть, что папка includes в которой будут производится изменения находится в директории modules/Forums/
Открываем
modules/Forums/admin/admin_board.php
Находим (строка 55)
// Attempt to prevent a common mistake with this value,
// http:// is the protocol and not part of the server name
if ($config_name == 'server_name')
{
$new['server_name'] = str_replace('http://', '', $new['server_name']);
}
Ниже добавляем
// Attempt to prevent a mistake with this value.
if ($config_name == 'avatar_path')
{
$new['avatar_path'] = trim($new['avatar_path']);
if (strstr($new['avatar_path'], "\0") || !is_dir($phpbb_root_path . $new['avatar_path']) || !is_writable($phpbb_root_path . $new['avatar_path']))
{
$new['avatar_path'] = $default_config['avatar_path'];
}
}
Открывем
modules/Forums/groupcp.php
Находим (строка 153)
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
Ниже добавляем
$start = ($start < 0) ? 0 : $start;
Находим (строка 426)
AND NOT EXISTS (
SELECT aa.group_id
FROM " . AUTH_ACCESS_TABLE . " aa
WHERE aa.group_id = g.group_id
)
Ниже находим
)";
Заменяем на
)
ORDER BY aa.auth_mod DESC";
Находим (строка 435)
case 'oracle':
$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa
WHERE g.group_id = $group_id
Ниже находим
AND aa.group_id (+) = g.group_id";
Заменяем на
AND aa.group_id (+) = g.group_id
ORDER BY aa.auth_mod DESC";
Находим (строка 443)
default:
$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
FROM ( " . GROUPS_TABLE . " g
LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id )
Ниже находим
WHERE g.group_id = '$group_id'";
Заменяем на
WHERE g.group_id = $group_id
ORDER BY aa.auth_mod DESC";
Открывем
includes/functions.php
Находим (строка 920)
if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r"))
Заменяем на
if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r") || strstr(urldecode($url), ';url'))
Открывем
includes/usercp_email.php
Находим (строка 94)
if ( $result = $db->sql_query($sql) )
{
$row = $db->sql_fetchrow($result);
Заменяем на
if ( $result = $db->sql_query($sql) )
{
if ( $row = $db->sql_fetchrow($result) )
{
Находим (строка 247)
else
{
message_die(GENERAL_MESSAGE, $lang['User_not_exist']);
}
Заменяем на
else
{
message_die(GENERAL_MESSAGE, $lang['User_not_exist']);
}
}
else
{
message_die(GENERAL_ERROR, 'Could not select user data', '', __LINE__, __FILE__, $sql);
}
Открывем
includes/usercp_register.php
Находим (строка 168)
$notifypm = ( isset($HTTP_POST_VARS['notifypm']) ) ? ( ($HTTP_POST_VARS['notifypm']) ? TRUE : 0 ) : TRUE;
$popup_pm = ( isset($HTTP_POST_VARS['popup_pm']) ) ? ( ($HTTP_POST_VARS['popup_pm']) ? TRUE : 0 ) : TRUE;
Ниже добавляем
$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0;
Находим (строка 276)
if ( isset($HTTP_POST_VARS['submit']) )
{
include("includes/usercp_avatar.php");
Ниже добавляем
// session id check
if ($sid == '' || $sid != $userdata['session_id'])
{
$error = true;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Session_invalid'];
}
Находим (строка 325)
message_die(GENERAL_ERROR, 'Could not obtain confirmation code', __LINE__, __FILE__, $sql);
Заменяем на
message_die(GENERAL_ERROR, 'Could not obtain confirmation code', '', __LINE__, __FILE__, $sql);
Находим (строка 342)
message_die(GENERAL_ERROR, 'Could not delete confirmation code', __LINE__, __FILE__, $sql);
Заменяем на
message_die(GENERAL_ERROR, 'Could not delete confirmation code', '', __LINE__, __FILE__, $sql);
Находим (строка 983)
$s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />';
Ниже добавляем
$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
Открываем
modules/Forums/language/lang_english/lang_main.php
Находим (строка 1018)
$lang['Please_remove_install_contrib'] = 'Please ensure both the install/ and contrib/ directories are deleted';
Ниже добавляем
$lang['Session_invalid'] = 'Invalid Session. Please resubmit the form.';
Открываем
modules/Forums/language/lang_russian/lang_main.php
Находим (строка 996)
$lang['Admin_reauthenticate'] = 'Для того, что бы зайти в панель администратора вы должны перезалогинится.';
Ниже добавляем
$lang['Session_invalid'] = 'Недопустимая сессия. Пожалуйста, отправьте форму еще раз.';
Открываем
modules/Forums/login.php
Находим (строка 132 и 151)
if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))
Заменяем на
if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r") || strstr(urldecode($redirect), ';url'))
Открываем
modules/Members_List/index.php
Находим (строка 40)
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
Ниже добавляем
$start = ($start < 0) ? 0 : $start;
Открываем
modules/Forums/modcp.php
Находим (строка 77)
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
Ниже добавляем
$start = ($start < 0) ? 0 : $start;
Открываем
modules/Forums/posting.php
Находим (строка 55)
$confirm = isset($HTTP_POST_VARS['confirm']) ? true : false;
Ниже добавляем
$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0;
Находим (строка 236)
if ( $result = $db->sql_query($sql) )
{
$post_info = $db->sql_fetchrow($result);
Заменяем на
if ( ($result = $db->sql_query($sql)) && ($post_info = $db->sql_fetchrow($result)) )
{
Находим (строка 444)
$s_hidden_fields = '<input type="hidden" name="' . POST_POST_URL . '" value="' . $post_id . '" />';
$s_hidden_fields .= ( $delete || $mode == "delete" ) ? '<input type="hidden" name="mode" value="delete" />' : '<input type="hidden" name="mode" value="poll_delete" />';
Ниже добавляем
$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
Находим (строка 553)
// Submit post/vote (newtopic, edit, reply, etc.)
//
$return_message = '';
$return_meta = '';
Ниже добавляем
// session id check
if ($sid == '' || $sid != $userdata['session_id'])
{
$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Session_invalid'] : $lang['Session_invalid'];
}
Находим (строка 583)
break;
case 'delete':
case 'poll_delete':
Ниже добавляем
if ($error_msg != '')
{
message_die(GENERAL_MESSAGE, $error_msg);
}
Находим (строка 948)
$topic_type_toggle = $lang['Post_topic_as'] . ': <input type="radio" name="topictype" value="' . POST_NORMAL .'"' . ( ( $post_data['topic_type'] == POST_NORMAL || $topic_type == POST_NORMAL ) ? ' checked="checked"' : '' ) . ' /> ' . $lang['Post_Normal'] . ' ' . $topic_type_toggle;
}
}
$hidden_form_fields = '<input type="hidden" name="mode" value="' . $mode . '" />';
Ниже добавляем
$hidden_form_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
Открываем
modules/Forums/admin/admin_board.php
Находим (строка 55)
// Attempt to prevent a common mistake with this value,
// http:// is the protocol and not part of the server name
if ($config_name == 'server_name')
{
$new['server_name'] = str_replace('http://', '', $new['server_name']);
}
Ниже добавляем
// Attempt to prevent a mistake with this value.
if ($config_name == 'avatar_path')
{
$new['avatar_path'] = trim($new['avatar_path']);
if (strstr($new['avatar_path'], "\0") || !is_dir($phpbb_root_path . $new['avatar_path']) || !is_writable($phpbb_root_path . $new['avatar_path']))
{
$new['avatar_path'] = $default_config['avatar_path'];
}
}
Открывем
modules/Forums/groupcp.php
Находим (строка 153)
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
Ниже добавляем
$start = ($start < 0) ? 0 : $start;
Находим (строка 426)
AND NOT EXISTS (
SELECT aa.group_id
FROM " . AUTH_ACCESS_TABLE . " aa
WHERE aa.group_id = g.group_id
)
Ниже находим
)";
Заменяем на
)
ORDER BY aa.auth_mod DESC";
Находим (строка 435)
case 'oracle':
$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa
WHERE g.group_id = $group_id
Ниже находим
AND aa.group_id (+) = g.group_id";
Заменяем на
AND aa.group_id (+) = g.group_id
ORDER BY aa.auth_mod DESC";
Находим (строка 443)
default:
$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
FROM ( " . GROUPS_TABLE . " g
LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id )
Ниже находим
WHERE g.group_id = '$group_id'";
Заменяем на
WHERE g.group_id = $group_id
ORDER BY aa.auth_mod DESC";
Открывем
includes/functions.php
Находим (строка 920)
if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r"))
Заменяем на
if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r") || strstr(urldecode($url), ';url'))
Открывем
includes/usercp_email.php
Находим (строка 94)
if ( $result = $db->sql_query($sql) )
{
$row = $db->sql_fetchrow($result);
Заменяем на
if ( $result = $db->sql_query($sql) )
{
if ( $row = $db->sql_fetchrow($result) )
{
Находим (строка 247)
else
{
message_die(GENERAL_MESSAGE, $lang['User_not_exist']);
}
Заменяем на
else
{
message_die(GENERAL_MESSAGE, $lang['User_not_exist']);
}
}
else
{
message_die(GENERAL_ERROR, 'Could not select user data', '', __LINE__, __FILE__, $sql);
}
Открывем
includes/usercp_register.php
Находим (строка 168)
$notifypm = ( isset($HTTP_POST_VARS['notifypm']) ) ? ( ($HTTP_POST_VARS['notifypm']) ? TRUE : 0 ) : TRUE;
$popup_pm = ( isset($HTTP_POST_VARS['popup_pm']) ) ? ( ($HTTP_POST_VARS['popup_pm']) ? TRUE : 0 ) : TRUE;
Ниже добавляем
$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0;
Находим (строка 276)
if ( isset($HTTP_POST_VARS['submit']) )
{
include("includes/usercp_avatar.php");
Ниже добавляем
// session id check
if ($sid == '' || $sid != $userdata['session_id'])
{
$error = true;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Session_invalid'];
}
Находим (строка 325)
message_die(GENERAL_ERROR, 'Could not obtain confirmation code', __LINE__, __FILE__, $sql);
Заменяем на
message_die(GENERAL_ERROR, 'Could not obtain confirmation code', '', __LINE__, __FILE__, $sql);
Находим (строка 342)
message_die(GENERAL_ERROR, 'Could not delete confirmation code', __LINE__, __FILE__, $sql);
Заменяем на
message_die(GENERAL_ERROR, 'Could not delete confirmation code', '', __LINE__, __FILE__, $sql);
Находим (строка 983)
$s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />';
Ниже добавляем
$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
Открываем
modules/Forums/language/lang_english/lang_main.php
Находим (строка 1018)
$lang['Please_remove_install_contrib'] = 'Please ensure both the install/ and contrib/ directories are deleted';
Ниже добавляем
$lang['Session_invalid'] = 'Invalid Session. Please resubmit the form.';
Открываем
modules/Forums/language/lang_russian/lang_main.php
Находим (строка 996)
$lang['Admin_reauthenticate'] = 'Для того, что бы зайти в панель администратора вы должны перезалогинится.';
Ниже добавляем
$lang['Session_invalid'] = 'Недопустимая сессия. Пожалуйста, отправьте форму еще раз.';
Открываем
modules/Forums/login.php
Находим (строка 132 и 151)
if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))
Заменяем на
if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r") || strstr(urldecode($redirect), ';url'))
Открываем
modules/Members_List/index.php
Находим (строка 40)
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
Ниже добавляем
$start = ($start < 0) ? 0 : $start;
Открываем
modules/Forums/modcp.php
Находим (строка 77)
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
Ниже добавляем
$start = ($start < 0) ? 0 : $start;
Открываем
modules/Forums/posting.php
Находим (строка 55)
$confirm = isset($HTTP_POST_VARS['confirm']) ? true : false;
Ниже добавляем
$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0;
Находим (строка 236)
if ( $result = $db->sql_query($sql) )
{
$post_info = $db->sql_fetchrow($result);
Заменяем на
if ( ($result = $db->sql_query($sql)) && ($post_info = $db->sql_fetchrow($result)) )
{
Находим (строка 444)
$s_hidden_fields = '<input type="hidden" name="' . POST_POST_URL . '" value="' . $post_id . '" />';
$s_hidden_fields .= ( $delete || $mode == "delete" ) ? '<input type="hidden" name="mode" value="delete" />' : '<input type="hidden" name="mode" value="poll_delete" />';
Ниже добавляем
$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
Находим (строка 553)
// Submit post/vote (newtopic, edit, reply, etc.)
//
$return_message = '';
$return_meta = '';
Ниже добавляем
// session id check
if ($sid == '' || $sid != $userdata['session_id'])
{
$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Session_invalid'] : $lang['Session_invalid'];
}
Находим (строка 583)
break;
case 'delete':
case 'poll_delete':
Ниже добавляем
if ($error_msg != '')
{
message_die(GENERAL_MESSAGE, $error_msg);
}
Находим (строка 948)
$topic_type_toggle = $lang['Post_topic_as'] . ': <input type="radio" name="topictype" value="' . POST_NORMAL .'"' . ( ( $post_data['topic_type'] == POST_NORMAL || $topic_type == POST_NORMAL ) ? ' checked="checked"' : '' ) . ' /> ' . $lang['Post_Normal'] . ' ' . $topic_type_toggle;
}
}
$hidden_form_fields = '<input type="hidden" name="mode" value="' . $mode . '" />';
Ниже добавляем
$hidden_form_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';