Обновление 2.0.19 изменением кода

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Аватара пользователя
nikspb78
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 3 месяца

Обновление 2.0.19 изменением кода

Сообщение nikspb78 »

В php я не силен, поэтому очень прошу помочь разобраться...
Есть форум 2.0.19 с кучей модов, которые я бы не хотел терять. Поэтому обновлять заменой файлов я сразу отказался и решил обновлять потихоньку заменой кода, для начала до версии 2.0.20. Так вот. Когда дошел до файла login.php столкнулся с проблемой:

Код: Выделить всё

#-----[ OPEN ]--------------------------------------------- 
# 
login.php

#
#-----[ FIND ]---------------------------------------------
# Line 80
					$row['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'])

#
#-----[ REPLACE WITH ]---------------------------------------------
#
					$row['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'] && $userdata['user_level'] != ADMIN)
Не смог найти в своем файле ничего даже отдаленно похожего на

Код: Выделить всё

['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'])
Вот кусочек моего кода, строки 67-96:

Код: Выделить всё

		if( $row = $db->sql_fetchrow($result) )
		{
			if( $row['user_level'] != ADMIN && $board_config['board_disable'] )
			{
				redirect(append_sid("index.$phpEx", true));
			}
			else
			{
				if( md5($password) == $row['user_password'] && $row['user_active'] )
				{
					$autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;

					$admin = (isset($HTTP_POST_VARS['admin'])) ? 1 : 0;
					$session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin, $admin);

					if( $session_id )
					{
						$url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx";
						redirect(append_sid($url, true));
					}
					else
					{
						message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__);
					}
				}
				else
				{
					$redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : '';
					$redirect = str_replace('?', '&', $redirect);
Не стал цитировать код целиком. К сообщению прикрепил файл login.txt...
Возможно, код изменен каким-то модом.
А вопрос в следующем: мне не найти строку из-за того, что был установлен какой-то мод? Если да, то где эта искомая строка должна стоять?... Помогите, пожалуйста!...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 6 месяцев

Сообщение Kastaneda »

Да вроде код не изменён никаким модом. Возможно это следствие неправильного обновления когда-либо. Строго говоря, файл login.php затрагивают очень мало модов. Из наиболее известных по-моему только ezPortal что-то там меняет.
Аватара пользователя
Shock13666
phpBB 1.4.4
Сообщения: 176
Стаж: 17 лет 5 месяцев
Откуда: Киев

Сообщение Shock13666 »

Возможно какой то мод. Вот кусок из оригинального 2.0.22. Словами "Начало" и "Конец" я обрамил кусок, которого у тебя не хватает

Код: Выделить всё

		if( $row = $db->sql_fetchrow($result) )
		{
			if( $row['user_level'] != ADMIN && $board_config['board_disable'] )
			{
				redirect(append_sid("index.$phpEx", true));
			}
			else
			{
				// НАЧАЛО. If the last login is more than x minutes ago, then reset the login tries/time
				if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $row['user_last_login_try'] < (time() - ($board_config['login_reset_time'] * 60)))
				{
					$db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']);
					$row['user_last_login_try'] = $row['user_login_tries'] = 0;
				}
				
				// Check to see if user is allowed to login again... if his tries are exceeded
				if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $board_config['max_login_attempts'] && 
					$row['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'] && $userdata['user_level'] != ADMIN)
				{
					message_die(GENERAL_MESSAGE, sprintf($lang['Login_attempts_exceeded'], $board_config['max_login_attempts'], $board_config['login_reset_time']));
				}
				// КОНЕЦ
				if( md5($password) == $row['user_password'] && $row['user_active'] )
				{
Музыка - как вино. Некачественная попса, со временем, превращается в уксус.. Рок же только обретает свой истинный вкус..
Я не нацист. Но когда кто нибудь осмелится высказать криво о моей стране я прихожу в ярость.
Немножко знаю xHTML, CSS, слышал про JavaScript, PHP. Уже год использую и стараюсь понять, как устроен phpBB.
[ Mozilla Firefox User ] [ Web Dev panel for FF ] [ xHTML 1.0 Strict ] [ Valid CSS 2.1 ] [ Да, я маньяк! ] [ Я ВКонтакте! ]
Аватара пользователя
nikspb78
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 3 месяца

Сообщение nikspb78 »

Shock13666, не-не. У меня-то не 0.22, а 0.19..
То есть, я правильно понял, вы считаете, что если я просто залью оригинальный login.php из полного дистрибутива 2.0.20, то ничего критического не произойдет? Разумеется, предварительно обновив все остальные файлы?
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 6 месяцев

Сообщение Kastaneda »

nikspb78 писал(а):вы считаете, что если я просто залью оригинальный login.php из полного дистрибутива 2.0.20
Думаю ничего страшного не произойдёт.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

nikspb78
Вот оригинальный код 2.0.19

http://phpbb.cvs.sourceforge.net/phpbb/ ... ase_2_0_19

Сравнивайте, разберётесь.

Добавлено спустя 1 минуту 41 секунду:

Правда, строка не 80, а 85 :wink:
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Shock13666
phpBB 1.4.4
Сообщения: 176
Стаж: 17 лет 5 месяцев
Откуда: Киев

Сообщение Shock13666 »

Чет я не понимаю. Строки 80-85:

Код: Выделить всё

   80 	$redirect = (!empty($_SERVER['QUERY_STRING'])) ? preg_replace('#^sid=[a-z0-9]*?&?(redirect=.*?)$#', '\1', $_SERVER['QUERY_STRING']) : '';
   81 
   82 	$template->assign_vars(array(
   83 		'U_SEND_PASSWORD' 	=> "ucp.$phpEx$SID&mode=sendpassword",
   84 		'U_TERMS_USE'		=> "ucp.$phpEx$SID&mode=terms",
   85 		'U_PRIVACY'			=> "ucp.$phpEx$SID&mode=privacy",
Какое отношение они имеют к вышеуказанному?
Музыка - как вино. Некачественная попса, со временем, превращается в уксус.. Рок же только обретает свой истинный вкус..
Я не нацист. Но когда кто нибудь осмелится высказать криво о моей стране я прихожу в ярость.
Немножко знаю xHTML, CSS, слышал про JavaScript, PHP. Уже год использую и стараюсь понять, как устроен phpBB.
[ Mozilla Firefox User ] [ Web Dev panel for FF ] [ xHTML 1.0 Strict ] [ Valid CSS 2.1 ] [ Да, я маньяк! ] [ Я ВКонтакте! ]
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

Shock13666
А вы что смотрите то..? По-моему, вы нажали просмотр "головной" (изначальной) версии 8)

Версия 2.0.19

Код: Выделить всё

80 					$row['user_last_login_try'] = $row['user_login_tries'] = 0;
   81 				}
   82 
   83 				// Check to see if user is allowed to login again... if his tries are exceeded
   84 				if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $board_config['max_login_attempts'] &&
   85 					$row['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'])
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Shock13666
phpBB 1.4.4
Сообщения: 176
Стаж: 17 лет 5 месяцев
Откуда: Киев

Сообщение Shock13666 »

Дада. Теперь все так.
Последний раз редактировалось Shock13666 19.01.2008 2:08, всего редактировалось 1 раз.
Музыка - как вино. Некачественная попса, со временем, превращается в уксус.. Рок же только обретает свой истинный вкус..
Я не нацист. Но когда кто нибудь осмелится высказать криво о моей стране я прихожу в ярость.
Немножко знаю xHTML, CSS, слышал про JavaScript, PHP. Уже год использую и стараюсь понять, как устроен phpBB.
[ Mozilla Firefox User ] [ Web Dev panel for FF ] [ xHTML 1.0 Strict ] [ Valid CSS 2.1 ] [ Да, я маньяк! ] [ Я ВКонтакте! ]
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

Shock13666
Ну вот теперь грешить на отсутствие правки не стоит :wink:
Клава дребезжит? Или дабл-клик на мышке настроен?
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
nikspb78
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 3 месяца

Сообщение nikspb78 »

Kastaneda и Палыч, спасибо!!! Сейчас буду разбираться. Думаю, все получится :)
Аватара пользователя
Shock13666
phpBB 1.4.4
Сообщения: 176
Стаж: 17 лет 5 месяцев
Откуда: Киев

Сообщение Shock13666 »

Палыч
Извини, не посмотрел, как пост отправился. Кстати, повторное нажатие блокируется автоматом. Почему то оно плохо работает. И на остальных форумах даблклика не бывает. Браузер - Фокс
Музыка - как вино. Некачественная попса, со временем, превращается в уксус.. Рок же только обретает свой истинный вкус..
Я не нацист. Но когда кто нибудь осмелится высказать криво о моей стране я прихожу в ярость.
Немножко знаю xHTML, CSS, слышал про JavaScript, PHP. Уже год использую и стараюсь понять, как устроен phpBB.
[ Mozilla Firefox User ] [ Web Dev panel for FF ] [ xHTML 1.0 Strict ] [ Valid CSS 2.1 ] [ Да, я маньяк! ] [ Я ВКонтакте! ]

Вернуться в «Поддержка phpBB 2.0.x»