Jump to content

Малко помощ относно e107 и phpBB


Препоръчан пост

Здравейте на всички.

И преди да си кажа болката искам да ви предупредя, че съм сравнително неопитен с php-то.

 

И така моднах няколко файла в е107 (по-нататък вместо е107 може да казвам портала) за да може като се регистрира някой в портала и да получава регистрация и за форума (демек phpBB-то). До тук добре успях да го направя по малко аматьорски начин, но важното е че работи. Обаче се появи другия проблем, който не можах да реша сам. Ако някой си смени паролата в e107 или phpBB-то, тя си сменя но само за дадената част от сайта, а аз искам да се сменя глобално.

Имам няколко идеи, които обаче не успях да реализирам затова искам мнението и помощта ви относно тях.

Идея 1:

В базата данни, в таблицата e107_user да създам допълнителни полета, които да съответстват на полетата от таблицата phpbb_users, като полетата user_id и user_password да са общи и за двете CMS-и, защото ги има и в двете таблици.....

След това във файла ../includes/constants.php на phpBB-то да променя:

define('USERS_TABLE', $table_prefix.'users');

на

define('USERS_TABLE', 'e107_user');

 

И така би трябвало според мен всичко да си работи и като някой си промени паролата от форума или портала тя да му се сменя глобално за целия сайт, защо се ползва общото поле user_password от таблицата e107_user .

Пробвах да си реализирам идеята, но нещо не стана номера.... Даже никой не можеше да се регистрира (регистрациите стават само през системата на е107), защото е възникнал проблем при вкарването на данните в базата данни или нещо такова........

Съмнявам се че съм сбъркал нещо при промяната на горепосочения код :?

И така какво е вашето мнение за тази идея и как според вас би могла да се реализира с минимални промени по кода?

 

 

Идея 2:

Почти същата като идея 1, само дето трябва да се промени кода на phpBB-то при смяна на паролата да променя и паролата на e107. Във файла .../profilcp/profilcp_sendpassword.php според мен следния код се грижи да вкарва промените по паролата в базата данни:

$sql = "SELECT user_id, username, user_email, user_active, user_lang 
            FROM " . USERS_TABLE . " 
            WHERE user_email = '" . str_replace("\'", "''", $email) . "' 
                  AND username = '" . str_replace("\'", "''", $username) . "'";
      if ( $result = $db->sql_query($sql) )
      {
            if ( $row = $db->sql_fetchrow($result) )
            {
                  if ( !$row['user_active'] )
                  {
                        message_die(GENERAL_MESSAGE, $lang['No_send_account_inactive']);
                  }

                  $username = $row['username'];
                  $user_id = $row['user_id'];

                  $user_actkey = pcp_gen_rand_string(true);
                  $key_len = 54 - strlen($server_url);
                  $key_len = ( $str_len > 6 ) ? $key_len : 6;
                  $user_actkey = substr($user_actkey, 0, $key_len);
                  $user_password = pcp_gen_rand_string(false);
                  
                  $sql = "UPDATE " . USERS_TABLE . " 
                        SET user_newpasswd = '" . md5($user_password) . "', user_actkey = '$user_actkey'  
                        WHERE user_id = " . $row['user_id'];
                  if ( !$db->sql_query($sql) )
                  {
                        message_die(GENERAL_ERROR, 'Could not update new password information', '', __LINE__, __FILE__, $sql);
                  }

 

Тази идея май се реализира по-бързо и лесно? Само дето не знам как трябва да променя, този код: :?

$sql = "UPDATE " . USERS_TABLE . " 
                        SET user_newpasswd = '" . md5($user_password) . "', user_actkey = '$user_actkey'  
                        WHERE user_id = " . $row['user_id'];
                  if ( !$db->sql_query($sql) )

за да вкарва данните не само в полето от базата данни, дефинирано с променливата $user_password а и в таблицата e107_user и тамошното поле user_password

 

 

Това са двете ми идеи. Ще съм ви много благодарен ако някой ми помогне при реализирането им или пък предложи някакъв друг начин. Приемам всякакви съвети, важното е всичко да си работи и по възможност да не се променя много код, защото все още съм начинаещ в php програмирането.

 

P.S. Извинявам се ако съм "разтягал локуми", но просто не съм много запознат и искам да ви дам всичката информация, която мога за да може да ме разберете.

Link to comment
Сподели другаде

За съжаление не можах да намеря много, само няколко проекта, които са били дискутирани и нищо повече по въпроса. Намерих също така една статия, която обяснява защо не може да стане, може да ти е интересна - http://e107faq.org/e107_plugins/content/co....php?content.20
Link to comment
Сподели другаде

Благодаря ти, но все пак съм навит да синхронизирам e107 и phpBB-то напълно, защото съм сигурен, че съм на крачка от успеха....

Някой може ли да ми каже как се вкарват едни данни едновременно в една база данни, но в две различни таблици от базата?

Ако си отговоря на този въпрос ще синхронизирам напълно e107 и phpBB-то за час два..

 

P.S. Ти не успя ли да интегрираш e107 и IPB-то и да опровергаеш горната статия?

Link to comment
Сподели другаде

P.S. Ти не успя ли да интегрираш e107 и IPB-то и да опровергаеш горната статия?

За съжаление не успях, защото на първо време нямам толкова дълбоки познания и на второ време нямах време да се науча как се прави.

Link to comment
Сподели другаде

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...