- Регистрация
- 29 Фев 2008
- Сообщения
- 1.035
- Реакции
- 702
- Автор темы
- Заблокирован
- #1
Собственно вопрос по теме:
есть сайт на движке дле и форум vB версии 3.8.3,нужно обьеденить регу сайт+форум,сразу говорю интеграции калиостро есть,но доп домен не хочу брать.В принципе нарыл в одном сайте такой код реги,авторизации и редактирования юзера через админку и сайт:
который прописываеться в engine/modules/sitelogin.php это для входа и авторизации.
Код для регистрации engine/modules/register.php
Код для редактирования юзера в админ панели сайта engine/inc/editusers.php:
собственно как надо поправить переменные из этих трёх кусков чтобы авторизация+рега+редактирование пахало при условии что будет всё идти через сайт и работало без косяков,так как на форуме рега будет ссылаться на сайт и через него всё будет производиться .
ЗЫ.С php только начал дружить
есть сайт на движке дле и форум vB версии 3.8.3,нужно обьеденить регу сайт+форум,сразу говорю интеграции калиостро есть,но доп домен не хочу брать.В принципе нарыл в одном сайте такой код реги,авторизации и редактирования юзера через админку и сайт:
PHP:
/**
* Build a strings of keys and values to use in SQL insert
*
* @return Array [0] => keys string, [1] => values string
* @param $data Array
*/
function build_insert_string( $data )
{
global $db;
$keys = Array();
$values = Array();
foreach( $data as $key => $value )
{
$keys[] = $key;
$values[] = '"' . $db->safesql( $value ) . '"';
}
$keys = implode( ',', $keys );
$values = implode( ',', $values );
return Array( $keys, $values );
}
$dle_name = $db->safesql( $member_id['name'] );
$ipb_member = $db->super_query("SELECT id, name, mgroup,member_login_key FROM ibf_members WHERE name = '{$dle_name}'");
if ( !$ipb_member['id'] )
{
// Member logged into DLE but not found in IPB
// Lets create one !
$email = $db->safesql($member_id['email']);
$regpassword = $db->safesql($member_id['password']);
$add_time = $db->safesql($member_id['reg_date']);
$name = $db->safesql( $member_id['name'] );
$_IP = $db->safesql($_SERVER['REMOTE_ADDR']);
$salt = substr( str_shuffle( 'abcdefghijklmnopqrstuvwzyxABCDEFGHJIKLMNOPQRSTUXYZ1234567890!@#$%^&*()' ), 0, 5 ); // quick salt generator
$converge = Array
(
'converge_email' => $email,
'converge_joined' => $add_time,
'converge_pass_hash' => md5( $salt . $regpassword ),
'converge_pass_salt' => $salt
);
list( $keys, $values ) = build_insert_string( $converge );
$db->query( "INSERT INTO ibf_members_converge({$keys}) VALUES({$values});" );
$member_id = $db->insert_id();
$login_key = md5( microtime() );
$member = Array
(
'id' => $member_id,
'name' => $name,
'members_l_username' => strtolower( $name ),
'members_created_remote' => 1,
'email' => $email,
'member_login_key' => $login_key,
'member_login_key_expire' => time() + 3600 * 24 * 7 * 365,
'mgroup' => 3,
'posts' => 0,
'joined' => $add_time,
'ip_address' => $_IP,
'view_sigs' => 1,
'email_pm' => 1,
'view_img' => 1,
'view_avs' => 1,
'restrict_post' => 0,
'view_pop' => 1,
'msg_total' => 0,
'new_msg' => 0,
'coppa_user' => 0,
'language' => 'ru',
'subs_pkg_chosen' => 0,
'members_display_name' => $name,
'members_l_display_name' => strtolower( $name )
);
list( $keys, $values ) = build_insert_string( $member );
$db->query( "INSERT INTO ibf_members({$keys}) VALUES({$values});" );
$extra = Array
(
'id' => $member_id,
'vdirs' => "in:Входящие|sent:Отправленные"
);
list( $keys, $values ) = build_insert_string( $extra );
$db->query( "INSERT INTO ibf_member_extra({$keys}) VALUES({$values});" );
// XBTT user
$xbt_user = Array
(
'uid' => $member_id,
'name' => $name,
'email' => $email,
'added' => $add_time,
'peers_limit' => 1,
'torrent_pass' => md5( microtime() . time() )
);
list( $keys, $values ) = build_insert_string( $xbt_user );
$db->query( "INSERT INTO users({$keys}) VALUES({$values});" );
// Newly created member
$ipb_member = Array( 'id' => $member_id, 'name' => $name, 'mgroup' => 3, 'member_login_key' => $login_key );
}
// Login IPB member
$ipb_member['id'] = (int) $ipb_member['id'];
$db->query( "DELETE FROM ibf_sessions WHERE member_id = {$ipb_member['id']}" );
$session_id = md5( uniqid(microtime()) );
$session = Array
(
'id' => $session_id,
'member_name' => $ipb_member['name'],
'member_id' => $ipb_member['id'],
'member_group' => $ipb_member['mgroup'],
'login_type' => 0,
'running_time' => time(),
'ip_address' => $_IP,
'browser' => $_SERVER['HTTP_USER_AGENT'],
'location' => 'idx,0,',
'in_error' => 0,
'location_1_type' => '',
'location_1_id' => 0,
'location_2_type' => '',
'location_2_id' => 0,
'location_3_type' => '',
'location_3_id' => 0,
);
list( $keys, $values ) = build_insert_string( $session );
$db->query( "INSERT INTO ibf_sessions({$keys}) VALUES({$values});" );
set_cookie( 'member_id', $ipb_member['id'], 365 );
set_cookie( 'pass_hash', $ipb_member['member_login_key'], 365 );
set_cookie( 'session_id', $session_id, 365 );
}
Код для регистрации engine/modules/register.php
PHP:
/**
* Adding IPB member
*/
/**
* Build a strings of keys and values to use in SQL insert
*
* @return Array [0] => keys string, [1] => values string
* @param $data Array
*/
if ( !function_exists ( 'build_insert_string') )
{
function build_insert_string( $data )
{
global $db;
$keys = Array();
$values = Array();
foreach( $data as $key => $value )
{
$keys[] = $key;
$values[] = '"' . $db->safesql( $value ) . '"';
}
$keys = implode( ',', $keys );
$values = implode( ',', $values );
return Array( $keys, $values );
}
}
$salt = substr( str_shuffle( 'abcdefghijklmnopqrstuvwzyxABCDEFGHJIKLMNOPQRSTUXYZ1234567890!@#$%^&*()' ), 0, 5 ); // quick salt generator
$converge = Array
(
'converge_email' => $email,
'converge_joined' => $add_time,
'converge_pass_hash' => md5( $salt . $regpassword ),
'converge_pass_salt' => $salt
);
list( $keys, $values ) = build_insert_string( $converge );
$db->query( "INSERT INTO ibf_members_converge({$keys}) VALUES({$values});" );
$member_id = $db->insert_id();
$login_key = md5( microtime() );
$member = Array
(
'id' => $member_id,
'name' => $name,
'members_l_username' => strtolower( $name ),
'members_created_remote' => 1,
'email' => $email,
'member_login_key' => $login_key,
'member_login_key_expire' => time() + 3600 * 24 * 7 * 365,
'mgroup' => 3,
'posts' => 0,
'joined' => $add_time,
'ip_address' => $_IP,
'view_sigs' => 1,
'email_pm' => 1,
'view_img' => 1,
'view_avs' => 1,
'restrict_post' => 0,
'view_pop' => 1,
'msg_total' => 0,
'new_msg' => 0,
'coppa_user' => 0,
'language' => 'ru',
'subs_pkg_chosen' => 0,
'members_display_name' => $name,
'members_l_display_name' => strtolower( $name )
);
list( $keys, $values ) = build_insert_string( $member );
$db->query( "INSERT INTO ibf_members({$keys}) VALUES({$values});" );
$extra = Array
(
'id' => $member_id,
'vdirs' => "in:Входящие|sent:Отправленные"
);
list( $keys, $values ) = build_insert_string( $extra );
$db->query( "INSERT INTO ibf_member_extra({$keys}) VALUES({$values});" );
// XBTT user (auto created)
$xbt_user = Array
(
'uid' => $member_id,
'name' => $name,
'email' => $email,
'added' => $add_time,
'peers_limit' => 1,
'torrent_pass' => md5( microtime() . time() )
);
list( $keys, $values ) = build_insert_string( $xbt_user );
$db->query( "INSERT INTO users({$keys}) VALUES({$values});" );
/**
* Create IPB session
*/
$session_id = md5( uniqid(microtime()) );
$session = Array
(
'id' => $session_id,
'member_name' => $name,
'member_id' => $member_id,
'member_group' => 3,
'login_type' => 0,
'running_time' => time(),
'ip_address' => $_IP,
'browser' => $_SERVER['HTTP_USER_AGENT'],
'location' => 'idx,0,',
'in_error' => 0,
'location_1_type' => '',
'location_1_id' => 0,
'location_2_type' => '',
'location_2_id' => 0,
'location_3_type' => '',
'location_3_id' => 0,
);
list( $keys, $values ) = build_insert_string( $session );
$db->query( "INSERT INTO ibf_sessions({$keys}) VALUES({$values});" );
set_cookie ( 'member_id', $member_id, 365 );
set_cookie ( 'pass_hash', $login_key, 365 );
set_cookie ( 'session_id', $session_id, 365 );
}
}
}
PHP:
/**
* Adding IPB member
*/
/**
* Build a strings of keys and values to use in SQL insert
*
* @return Array [0] => keys string, [1] => values string
* @param $data Array
*/
if ( !function_exists ( 'build_insert_string') )
{
function build_insert_string( $data )
{
global $db;
$keys = Array();
$values = Array();
foreach( $data as $key => $value )
{
$keys[] = $key;
$values[] = '"' . $db->safesql( $value ) . '"';
}
$keys = implode( ',', $keys );
$values = implode( ',', $values );
return Array( $keys, $values );
}
}
$salt = substr( str_shuffle( 'abcdefghijklmnopqrstuvwzyxABCDEFGHJIKLMNOPQRSTUXYZ1234567890!@#$%^&*()' ), 0, 5 ); // quick salt generator
$converge = Array
(
'converge_email' => $email,
'converge_joined' => $add_time,
'converge_pass_hash' => md5( $salt . $regpassword ),
'converge_pass_salt' => $salt
);
list( $keys, $values ) = build_insert_string( $converge );
$db->query( "INSERT INTO ibf_members_converge({$keys}) VALUES({$values});" );
$member_id = $db->insert_id();
$login_key = md5( microtime() );
$member = Array
(
'id' => $member_id,
'name' => $name,
'members_l_username' => strtolower( $name ),
'members_created_remote' => 1,
'email' => $email,
'member_login_key' => $login_key,
'member_login_key_expire' => time() + 3600 * 24 * 7 * 365,
'mgroup' => 3,
'posts' => 0,
'joined' => $add_time,
'ip_address' => $_IP,
'view_sigs' => 1,
'email_pm' => 1,
'view_img' => 1,
'view_avs' => 1,
'restrict_post' => 0,
'view_pop' => 1,
'msg_total' => 0,
'new_msg' => 0,
'coppa_user' => 0,
'language' => 'ru',
'subs_pkg_chosen' => 0,
'members_display_name' => $name,
'members_l_display_name' => strtolower( $name )
);
list( $keys, $values ) = build_insert_string( $member );
$db->query( "INSERT INTO ibf_members({$keys}) VALUES({$values});" );
$extra = Array
(
'id' => $member_id,
'vdirs' => "in:Входящие|sent:Отправленные"
);
list( $keys, $values ) = build_insert_string( $extra );
$db->query( "INSERT INTO ibf_member_extra({$keys}) VALUES({$values});" );
// XBTT user (auto created)
$xbt_user = Array
(
'uid' => $member_id,
'name' => $name,
'email' => $email,
'added' => $add_time,
'peers_limit' => 1,
'torrent_pass' => md5( microtime() . time() )
);
list( $keys, $values ) = build_insert_string( $xbt_user );
$db->query( "INSERT INTO users({$keys}) VALUES({$values});" );
/**
* Create IPB session
*/
$session_id = md5( uniqid(microtime()) );
$session = Array
(
'id' => $session_id,
'member_name' => $name,
'member_id' => $member_id,
'member_group' => 3,
'login_type' => 0,
'running_time' => time(),
'ip_address' => $_IP,
'browser' => $_SERVER['HTTP_USER_AGENT'],
'location' => 'idx,0,',
'in_error' => 0,
'location_1_type' => '',
'location_1_id' => 0,
'location_2_type' => '',
'location_2_id' => 0,
'location_3_type' => '',
'location_3_id' => 0,
);
list( $keys, $values ) = build_insert_string( $session );
$db->query( "INSERT INTO ibf_sessions({$keys}) VALUES({$values});" );
set_cookie ( 'member_id', $member_id, 365 );
set_cookie ( 'pass_hash', $login_key, 365 );
set_cookie ( 'session_id', $session_id, 365 );
ЗЫ.С php только начал дружить