Вот такой ляп

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вот такой ляп

Сообщение Sheer »

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

$username = utf8_normalize_nfc(request_var('u', '', true));
Добавлено спустя 49 минут 41 секунду:
Борис Бердичевский писал(а):Ну и как собственно связаться?
./language/ru/common.php
Найти

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

	'ACTIVE_ERROR'					=> 'Указанное имя пользователя в настоящее время неактивно. Если вы испытываете трудности с активацией своей учётной записи, то свяжитесь с администратором конференции.',
Заменить на

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

	'ACTIVE_ERROR'					=> 'Указанное имя пользователя в настоящее время неактивно. Если вы испытываете трудности с активацией своей учётной записи, то свяжитесь с %sадминистратором конференции%s.',
./includes/functions.php
Найти

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

				if ($result['error_msg'] == 'LOGIN_ERROR_USERNAME' || $result['error_msg'] == 'LOGIN_ERROR_PASSWORD')

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

Заменить на
				if ($result['error_msg'] == 'LOGIN_ERROR_USERNAME' || $result['error_msg'] == 'LOGIN_ERROR_PASSWORD' || $result['error_msg'] == 'ACTIVE_ERROR')
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Вот такой ляп

Сообщение Борис Бердичевский »

Shredder писал(а):Борис Бердичевский
urldecode ?
Наверное, нужен urlencode() -- чтоб русские ники подставлять в вышеприведённый скрипт.
Очень полезный скрипт, прошу администрацию не стирать эту тему с таким скриптом (или поместить куда-нибуть в анналы форума!)
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вот такой ляп

Сообщение Sheer »

Борис Бердичевский писал(а):Наверное, нужен urlencode()
Нет. Я же показал

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

$username = utf8_normalize_nfc(request_var('u', '', true));
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Вот такой ляп

Сообщение Борис Бердичевский »

Вот чуть-чуть подправил скрипт. К сожалению вариант ?style=XXXX&u=UUUU у меня не получился, где-то я ошибся. Потому название стиля внутри скрипта...

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

<?php

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

$stylename = 'subsilver2';
//$stylename = 'prosilver';
$username = request_var('u', '', true);
$sql = 'SELECT user_id FROM '. USERS_TABLE .' WHERE username_clean = \''.$db->sql_escape(utf8_clean_string($username)).'\'';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$uid = $row['user_id'];

$sql = 'SELECT style_id FROM ' . STYLES_TABLE . ' WHERE style_name = \''.$stylename.'\'';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$styleid = $row['style_id'];
if ($uid)
{
	$sql = 'UPDATE '. USERS_TABLE .' SET user_style = ' . $styleid . ' WHERE user_id = '.$uid.'';
	$db->sql_query($sql);
	 trigger_error('Style for user <b>'.$username.'</b> is changed to '.($styleid+'0'));
}
else
{
	trigger_error('User <b>'.$username.'</b> not found');
}
?>
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вот такой ляп

Сообщение Sheer »

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

<?php

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

$username = utf8_normalize_nfc(request_var('u', '', true));
$style = request_var('s', '');

$sql = 'SELECT user_id FROM  '. USERS_TABLE .' WHERE  username_clean =  \''.$db->sql_escape(utf8_clean_string($username)).'\'';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$uid = $row['user_id'];

$sql = 'SELECT style_id FROM ' . STYLES_TABLE . ' WHERE style_name =  \''.$db->sql_escape($style).'\'';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$style_id = $row['style_id'];

if(!$style_id)
{
	trigger_error('Style <b>'.$style.'</b> not found');
}

if ($uid)
{
	$sql = 'UPDATE  '. USERS_TABLE .' SET  user_style = '.$style_id.' WHERE user_id =  '.$uid.'';
	$db->sql_query($sql);
	trigger_error('Style for user <b>'.$username.'</b> is changed<br />Now is <b>'.$style.'</b>');
}
else
{
	trigger_error('User <b>'.$username.'</b> not found');
}
?>
Все работает, проверено http://localhost/quick/upd_st.php?u=Борис Бердичевский&s=subsilver2
При копировании ссылки из адресной строки получается так
http://localhost/quick/upd_st.php?u=%D0%91%D0%BE%D1%80%D0%B8%D1%81%20%D0%91%D0%B5%D1%80%D0%B4%D0%B8%D1%87%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&s=subsilver2
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Вот такой ляп

Сообщение Борис Бердичевский »

Нет. Упорно не хочет принимать
/upd_st.php?u=Борис Бердичевский&s=prosilver
Только вариант с %%
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вот такой ляп

Сообщение Sheer »

С utf8_normalize_nfc() ?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Вот такой ляп

Сообщение Борис Бердичевский »

Да, вот скопировал в txt, чтоб было видно. (Т.е. есть одно и то же в upd_st.txt и upd_st.php)
http://www.borisba.com/forum-php/upd_st.txt
Можете поиграться с ним, изменяя стили. У меня только 2 стандартных стиля на форуме.
Сейчас в привате дам FTP
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вот такой ляп

Сообщение Sheer »

Дык работает
upd_st.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Вот такой ляп

Сообщение Борис Бердичевский »

Что ж не сказал, что %20 надо в середине вставлять? :mrgreen:

Добавлено спустя 2 минуты 31 секунду:
Дошло.
Это долбанный MS IE.
В Chrome всё хоккей, даже с пробелом!
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вот такой ляп

Сообщение Sheer »

Не надо. На скрине в адресной строке то, что получается уже после выполнения скрипта.
Обращение было такое http://www.borisba.com/forum-php/upd_st.php?u=Борис Бердичевский&s=prosilver

Добавлено спустя 2 минуты 5 секунд:
Борис Бердичевский писал(а):Это долбанный MS IE.
Ий-яяя! Вот интересно, а как с ним бороться?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Вот такой ляп

Сообщение Борис Бердичевский »

Если хотите наладить это и для MS IE -- можете повозиться!
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вот такой ляп

Сообщение Sheer »

А ну его к лешему!
ie.jpg
chrome.jpg
Обращения в адресной строке идентичны!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

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