Abadon Публикувано Юни 27, 2006 Report Share Публикувано Юни 27, 2006 Здравейте на всички.И преди да си кажа болката искам да ви предупредя, че съм сравнително неопитен с 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 Сподели другаде More sharing options...
Tragedy Публикувано Юни 28, 2006 Report Share Публикувано Юни 28, 2006 За съжаление не можах да намеря много, само няколко проекта, които са били дискутирани и нищо повече по въпроса. Намерих също така една статия, която обяснява защо не може да стане, може да ти е интересна - http://e107faq.org/e107_plugins/content/co....php?content.20 Цитирай Link to comment Сподели другаде More sharing options...
Abadon Публикувано Юни 28, 2006 Author Report Share Публикувано Юни 28, 2006 Благодаря ти, но все пак съм навит да синхронизирам e107 и phpBB-то напълно, защото съм сигурен, че съм на крачка от успеха....Някой може ли да ми каже как се вкарват едни данни едновременно в една база данни, но в две различни таблици от базата?Ако си отговоря на този въпрос ще синхронизирам напълно e107 и phpBB-то за час два.. P.S. Ти не успя ли да интегрираш e107 и IPB-то и да опровергаеш горната статия? Цитирай Link to comment Сподели другаде More sharing options...
Tragedy Публикувано Юни 28, 2006 Report Share Публикувано Юни 28, 2006 P.S. Ти не успя ли да интегрираш e107 и IPB-то и да опровергаеш горната статия?За съжаление не успях, защото на първо време нямам толкова дълбоки познания и на второ време нямах време да се науча как се прави. Цитирай Link to comment Сподели другаде More sharing options...
Препоръчан пост
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.