|
|
Взаимодействие phpBB3 с другими системами.
18 авг 2010, 07:24
Помогите пожалуйста! Возникла такая проблема. Есть код, который выводит на сайте имя пользователя, аватару или форму авторизации если человек не вошёл, вообщем что бы была одна регистрация и у форума и у сайта. Проблема в том, что сайт на windows-1251 и естественно всё отображается кваказябрами. Посоветовали использовать: iconv("UTF-8", "WINDOWS-1251", $txt);. Пробовал, ничего не получается. Вероятно я всё не так делаю, никогда с этим не сталкивался. Вот код: - Код: выделить все
<? /** * * @package phpBB3 * @version $Id: login.php,v 1.0.5 2008/03/09 15:15:06 rxu Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * * Minimum Requirement: PHP 4.3.3 */
/* * This code is an example for board login integration on sites. */
/** */ define('IN_PHPBB', true);
// Set phpBB root folder properly. Change in according to the actual board folder define('PHPBB_ROOT_PATH', './Forum/'); $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1); include($phpbb_root_path . 'common.' . $phpEx); include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management $user->session_begin(); $auth->acl($user->data); $user->setup('ucp');
// Initialize login result array $login = array();
// Handle logouot button if pressed if(isset($_POST['logout']) && $user->data['user_id'] != ANONYMOUS) { $user->session_kill(); }
// Check if user has submitted login and password and try to log in if(isset($_POST['login']) && $user->data['user_id'] == ANONYMOUS) { $username = request_var('username', '', true); $password = request_var('password', '', true); $autologin = (!empty($_POST['autologin'])) ? true : false;
$login = $auth->login($username, $password, $autologin); }
// Send headers
// Check if user has tried to log in and greet him if login is successful if((!empty($login) && $login['status'] == LOGIN_SUCCESS) || $user->data['user_id'] != ANONYMOUS) { // Reset permissions data if user has just logged in if(!empty($login)) { $auth->acl($user->data); } echo 'Hello, ' . get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']); echo '<br />' . get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']); echo '<form method="post" action="login.php">'; echo ' <input type="submit" name="logout" value="LOGOUT" />'; echo '</form>'; } else { // Handle login errors if exist and display error message right above the login form if(isset($login['error_msg']) && $login['error_msg']) { $err = $user->lang[$login['error_msg']]; // Assign admin contact to some error messages if ($login['error_msg'] == 'LOGIN_ERROR_USERNAME' || $login['error_msg'] == 'LOGIN_ERROR_PASSWORD') { $err = (!$config['board_contact']) ? sprintf($user->lang[$login['error_msg']], '', '') : sprintf($user->lang[$login['error_msg']], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>'); } echo $err . '<br />'; } // Show login form echo '<form method="post" action="login.php">'; echo $user->lang['USERNAME'] . ': <input type="text" name="username" id="username" size="10" title="' . $user->lang['USERNAME'] . '" /> '; echo $user->lang['PASSWORD'] . ': <input type="password" name="password" id="password" size="10" title="' . $user->lang['PASSWORD'] . '" />'; echo ' <input type="submit" name="login" value="LOGIN" />'; if ($config['allow_autologin']) { echo ' <br /><input type="checkbox" name="autologin" /> ' . $user->lang['LOG_ME_IN']; } echo '</form>'; }
?>
Подскажите куда именно вставлять iconv("UTF-8", "WINDOWS-1251", $txt); или может есть другой способ в решении этой задачи?
http://art-assorty.ru/ http://gogofiles.net/
-
nepeyvoda
-
- Сообщений: 16
- Зарегистрирован:
22 июл 2010, 11:14
-
18 авг 2010, 08:12
Просто возьмите Notepad++, вставьте ваши строки на русском и выбирите пункт "Преобразовать в Windows 1251 и уже этот код вставляйте.
-

Key
- Локализатор
-
- Сообщений: 183
- Зарегистрирован:
02 июн 2009, 18:50 - Откуда:
г. Саранск
-
18 авг 2010, 08:52
Key писал(а):Просто возьмите Notepad++, вставьте ваши строки на русском и выбирите пункт "Преобразовать в Windows 1251 и уже этот код вставляйте.
Вставляю в notepad++, строки изначально в ANSI? Чего дальше?
http://art-assorty.ru/ http://gogofiles.net/
-
nepeyvoda
-
- Сообщений: 16
- Зарегистрирован:
22 июл 2010, 11:14
-
18 авг 2010, 09:10
Вот что у меня именно выходит Не отображается имя пользователя, это строки: echo 'Привет, ' . get_username_string ('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']); echo '<br />' . get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']); echo '<form method="post" action="login.php">'; echo ' <input type="submit" name="logout" value="Выйти" />'; echo '</form>'; Вопрос что нужно сделать с этими строками, что бы имя выводилось корректно?
- Вложения
-

- 18.08.jpg (11.48 KIB) Просмотров: 832
http://art-assorty.ru/ http://gogofiles.net/
-
nepeyvoda
-
- Сообщений: 16
- Зарегистрирован:
22 июл 2010, 11:14
-
18 авг 2010, 09:27
Вот ещё до чего я допетрил: не отображаются только русские имена, чего делать? Можно, конечно, всех заставлять региться английскими именами, но это чё-то не то.
http://art-assorty.ru/ http://gogofiles.net/
-
nepeyvoda
-
- Сообщений: 16
- Зарегистрирован:
22 июл 2010, 11:14
-
18 авг 2010, 12:15
ну чё, никто не поможет что ли?
http://art-assorty.ru/ http://gogofiles.net/
-
nepeyvoda
-
- Сообщений: 16
- Зарегистрирован:
22 июл 2010, 11:14
-
18 авг 2010, 14:36
Ну не расстраивайтесь так. Вам поможет это.
-

Key
- Локализатор
-
- Сообщений: 183
- Зарегистрирован:
02 июн 2009, 18:50 - Откуда:
г. Саранск
-
18 авг 2010, 15:41
Key ничего, что человеку надо совсем другое?
-
crash
- Поддержка
-
- Сообщений: 6645
- Зарегистрирован:
27 янв 2009, 02:22
19 авг 2010, 06:51
вот-вот. Не помогут тут ни notepad++ ни другие программы. Нужен какой-то код, который бы перекодировал полученый результат, а именно имя пользователя онлайн
http://art-assorty.ru/ http://gogofiles.net/
-
nepeyvoda
-
- Сообщений: 16
- Зарегистрирован:
22 июл 2010, 11:14
-
19 авг 2010, 10:04
так вы сами писали выше код, вот его надо использовать. Не проверял, но например что-то так из вашего примера бы сделал, хотя и не совсем правильно берется имя: вместо - Код: выделить все
echo 'Привет, ' . get_username_string ('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']);
заменить на - Код: выделить все
uname = get_username_string ('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']); echo 'Привет, ' iconv("UTF-8", "WINDOWS-1251", $uname);
-
crash
- Поддержка
-
- Сообщений: 6645
- Зарегистрирован:
27 янв 2009, 02:22
Вернуться в Интеграция и конвертирование
Кто сейчас на форуме
Зарегистрированные пользователи: Yandex [Bot]
|
|
|
|
|