Центр пользователя  |  Ваши сообщения  |  FAQ
Форум поддержки phpBB » phpBB 3.0.x » Интеграция и конвертирование

конвертирование кода

Взаимодействие phpBB 3.0.x с другими системами.
Пожалуйста, помните, что существуют: Поиск, Правила форума
Возможно, ответ на Ваш вопрос уже имеется: Документация, Статьи, Накопленный опыт
Полезные материалы по этой теме: Конвертеры

Сообщение 18 авг 2010, 08: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'] . ':&nbsp;<input type="text" name="username" id="username" size="10" title="' . $user->lang['USERNAME'] . '" /> ';
   echo $user->lang['PASSWORD'] . ':&nbsp;<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, 12:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 18 авг 2010, 09:12

Просто возьмите Notepad++, вставьте ваши строки на русском и выбирите пункт "Преобразовать в Windows 1251 и уже этот код вставляйте.
Аватар пользователя
Key
Локализатор
 
Сообщений: 187
Зарегистрирован:
02 июн 2009, 19:50
Откуда:
г. Саранск
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 18 авг 2010, 09:52

Key писал(а):Просто возьмите Notepad++, вставьте ваши строки на русском и выбирите пункт "Преобразовать в Windows 1251 и уже этот код вставляйте.

Вставляю в notepad++, строки изначально в ANSI? Чего дальше?
http://art-assorty.ru/
http://gogofiles.net/
nepeyvoda
Пользователь
 
Сообщений: 16
Зарегистрирован:
22 июл 2010, 12:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 18 авг 2010, 10: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
18.08.jpg (11.48 KiB) Просмотров: 1943
http://art-assorty.ru/
http://gogofiles.net/
nepeyvoda
Пользователь
 
Сообщений: 16
Зарегистрирован:
22 июл 2010, 12:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 18 авг 2010, 10:27

Вот ещё до чего я допетрил: не отображаются только русские имена, чего делать? Можно, конечно, всех заставлять региться английскими именами, но это чё-то не то.
http://art-assorty.ru/
http://gogofiles.net/
nepeyvoda
Пользователь
 
Сообщений: 16
Зарегистрирован:
22 июл 2010, 12:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 18 авг 2010, 13:15

ну чё, никто не поможет что ли?
http://art-assorty.ru/
http://gogofiles.net/
nepeyvoda
Пользователь
 
Сообщений: 16
Зарегистрирован:
22 июл 2010, 12:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 18 авг 2010, 15:36

Ну не расстраивайтесь так. Вам поможет это.
Аватар пользователя
Key
Локализатор
 
Сообщений: 187
Зарегистрирован:
02 июн 2009, 19:50
Откуда:
г. Саранск
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 18 авг 2010, 16:41

Key
ничего, что человеку надо совсем другое?
crash
Поддержка
 
Сообщений: 11348
Зарегистрирован:
27 янв 2009, 03:22
Благодарил (а): 1 раз.
Поблагодарили: 568 раз.

Сообщение 19 авг 2010, 07:51

вот-вот. Не помогут тут ни notepad++ ни другие программы. Нужен какой-то код, который бы перекодировал полученый результат, а именно имя пользователя онлайн
http://art-assorty.ru/
http://gogofiles.net/
nepeyvoda
Пользователь
 
Сообщений: 16
Зарегистрирован:
22 июл 2010, 12:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 19 авг 2010, 11: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
Поддержка
 
Сообщений: 11348
Зарегистрирован:
27 янв 2009, 03:22
Благодарил (а): 1 раз.
Поблагодарили: 568 раз.


Вернуться в Интеграция и конвертирование

 


  • Похожие темы
    Ответов
    Просмотров
    Последнее сообщение

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама