Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
jacobcore

IPB чек логина

Recommended Posts

Доброго времени суток! У меня форум игровой т е от онлайн игры, создавая аккаунт на форуме он регистрируется в игре, автоматом, эту штуку я воткнул в 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

Share this post


Link to post
Share on other sites

$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;
		}
	}

  • Upvote 1

Share this post


Link to post
Share on other sites

Спасибо! Это работает) :rolleyes:

Share this post


Link to post
Share on other sites

$name = mb_strtoupper( $this->request['members_display_name'] );

А почему вы всех пользователей на сайте регистрируете в верхнем регистре?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...