jacobcore 0 09/03/15 17:54 Доброго времени суток! У меня форум игровой т е от онлайн игры, создавая аккаунт на форуме он регистрируется в игре, автоматом, эту штуку я воткнул в register.php рядом с $member = IPSMember::create( array( 'members' => $member, 'pfields_content' => $custom_fields->out_fields ), FALSE, FALSE, FALSE ); $link = mysql_connect(ipsRegistry::$settings['gamesql_host'], ipsRegistry::$settings['gamesql_user'], ipsRegistry::$settings['gamesql_pass']); $name = strtoupper($this->request['members_display_name']); $pass = sha1(strtoupper($name).":".strtoupper($in_password)); $db_selected = mysql_select_db(ipsRegistry::$settings['auth_db'], $link); $sql = "INSERT INTO `account` (`username`, `sha_pass_hash`,`email`) VALUES ('$name','$pass','$in_email')"; mysql_query($sql); Вопрос следующий. Регистрирует всё хорошо, но у меня в базе есть аккаунты уже до этой интеграции. Куда можно воткнуть проверку на чек логина при регистрации? К примеру если аккаунт существует в другой базе, то вывести, чтобы зарегистрировать другой аккаунтНашёл место вроде как с пометкой чек username но как произвести check самим запросом? Можно даже с запросом уже помочь, за любую помощь спасибо! p.s. форум 3.4.6 Поделиться сообщением Ссылка на сообщение
siv1987 2629 09/04/15 18:28 $member = IPSMember::create( array( 'members' => $member, 'pfields_content' => $custom_fields->out_fields ), FALSE, FALSE, FALSE ); $link = mysql_connect(ipsRegistry::$settings['gamesql_host'], ipsRegistry::$settings['gamesql_user'], ipsRegistry::$settings['gamesql_pass']); $name = strtoupper($this->request['members_display_name']); $pass = sha1(strtoupper($name).":".strtoupper($in_password)); $db_selected = mysql_select_db(ipsRegistry::$settings['auth_db'], $link); $sql = "INSERT INTO `account` (`username`, `sha_pass_hash`,`email`) VALUES ('$name','$pass','$in_email')"; mysql_query($sql);Заменит на if( ipsRegistry::$settings['auth_db'] ) { if( ! $this->registry->DB( ipsRegistry::$settings['auth_db'] ) ) { ips_DBRegistry::setDB('mysql', ipsRegistry::$settings['auth_db'], array('sql_database' => ipsRegistry::$settings['auth_db'], 'sql_user' => ipsRegistry::$settings['gamesql_user'], 'sql_pass' => ipsRegistry::$settings['gamesql_pass'], 'sql_host' => ipsRegistry::$settings['gamesql_host'], 'sql_charset' => ipsRegistry::$settings['gamesql_charset'], 'sql_tbl_prefix' => '' )); } $DB = $this->registry->DB( ipsRegistry::$settings['auth_db'] ); $name = mb_strtoupper( $this->request['members_display_name'] ); $pass = sha1( strtoupper( $name ). ":" .strtoupper( $_POST['PassWord'] ) ); $DB->insert( 'account', array( 'username' => $name, 'sha_pass_hash' => $pass, 'email' => $in_email ) ); } Открыть \admin\sources\classes\member\memberFunctions.phpНайти //----------------------------------------- // Check for existing name. //----------------------------------------- Ниже добавить if( ipsRegistry::$settings['auth_db'] ) { if( ! $this->registry->DB( ipsRegistry::$settings['auth_db'] ) ) { ips_DBRegistry::setDB('mysql', ipsRegistry::$settings['auth_db'], array('sql_database' => ipsRegistry::$settings['auth_db'], 'sql_user' => ipsRegistry::$settings['gamesql_user'], 'sql_pass' => ipsRegistry::$settings['gamesql_pass'], 'sql_host' => ipsRegistry::$settings['gamesql_host'], 'sql_charset' => ipsRegistry::$settings['gamesql_charset'], 'sql_tbl_prefix' => '' )); } $DB = $this->registry->DB( ipsRegistry::$settings['auth_db'] ); $DB->build( array( 'select' => 'username', 'from' => 'account', 'where' => 'username="'.$DB->addSlashes( $name ) .'"', 'limit' => array( 0, 1 ) ) ); $DB->execute(); if( $DB->getTotalRows() ) { return TRUE; } } 1 Поделиться сообщением Ссылка на сообщение
jacobcore 0 09/04/15 18:49 Спасибо! Это работает) :rolleyes: Поделиться сообщением Ссылка на сообщение
siv1987 2629 09/05/15 14:48 $name = mb_strtoupper( $this->request['members_display_name'] );А почему вы всех пользователей на сайте регистрируете в верхнем регистре? Поделиться сообщением Ссылка на сообщение