Posted June 24, 20168 yr comment_109076 Помогите пожалуйста переписать этот код под ipb <?php /** * * 2Moons auth plug-in for phpBB3 * * @package login * @version $Id$ * @copyright (c) 2012 Jan Krцpke * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** * @ignore */ if (!defined('IN_PHPBB')) { exit; } function init_2moons() { global $config, $user; if(!function_exists('mysql_connect')) { return 'MySQL Module required'; } $port = isset($config['moons_dbport']) ? (int) $config['moons_dbport'] : 3306; $link = @mysql_connect($config['moons_dbhost'].':'.$port, $config['moons_dbuser'], $config['moons_dbpassword']); if (!$link) { return 'MySQL Connection Error: '.mysql_error(); } if ((@mysql_select_db($config['moons_dbtable'], $link)) === false) { return 'Can\'t select database '.$config['moons_dbtable'].': '.mysql_error(); } $prefix = str_replace('_', '\_', mysql_real_escape_string($config['moons_dbprefix'], $link)); foreach(array('users', 'config', 'session') as $table) { $query = mysql_query("SHOW TABLES LIKE '".$prefix.$table."'", $link); if (!$query) { return 'MySQL Query Error: '.mysql_error().'<br>'."SHOW TABLES LIKE '".$prefix.$table."'"; } $tableExists = mysql_num_rows($query); if($tableExists !== 1) { return 'Table'.$config['moons_dbprefix'].$table.' not found!'; } } $query = mysql_query("SELECT COUNT(*) FROM ".mysql_real_escape_string($config['moons_dbprefix'], $link)."config WHERE uni = ".((int) $config['moons_universe']).";", $link); if (!$query) { return 'MySQL Query Error: '.mysql_error().'<br>'."SELECT COUNT(*) FROM ".mysql_real_escape_string($config['moons_dbprefix'], $link)."config WHERE uni = ".((int) $config['moons_universe']).";"; } $universeExists = mysql_num_rows($query); if($universeExists !== 1) { return 'Universe '.((int) $config['moons_universe']).' does not exists!'; } @mysql_close($link); return false; } /** * Login function */ function login_2moons(&$username, &$password) { global $db, $config, $user; // do not allow empty password if (!$password) { return array( 'status' => LOGIN_ERROR_PASSWORD, 'error_msg' => 'NO_PASSWORD_SUPPLIED', 'user_row' => array('user_id' => ANONYMOUS), ); } if (!$username) { return array( 'status' => LOGIN_ERROR_USERNAME, 'error_msg' => 'LOGIN_ERROR_USERNAME', 'user_row' => array('user_id' => ANONYMOUS), ); } $port = isset($config['moons_dbport']) ? (int) $config['moons_dbport'] : 3306; $link = @mysql_connect($config['moons_dbhost'].':'.$port, $config['moons_dbuser'], $config['moons_dbpassword']); $prefix = mysql_real_escape_string($config['moons_dbprefix'], $link); if (!$link) { return array( 'status' => LOGIN_ERROR_EXTERNAL_AUTH, 'error_msg' => 'CONNECTION_FAILED', 'user_row' => array('user_id' => ANONYMOUS), ); } mysql_select_db($config['moons_dbtable'], $link); mysql_set_charset('utf8', $link); $sql = "SELECT id, username, password, universe, email_2 FROM ".$prefix."users WHERE universe = ".((int) $config['moons_universe'])." AND username = '".mysql_real_escape_string($username, $link)."' AND password = '".cryptPassword2Moons($password)."';"; $query = mysql_query($sql, $link); if (!$query) { trigger_error('MySQL Query Error: '.mysql_error().'<br>'.$sql); } $userExists = mysql_num_rows($query); if ($userExists == 1) { $userData = mysql_fetch_array($query, MYSQL_ASSOC); @mysql_free_result($query); @mysql_close($link); $sql ='SELECT user_id, username, user_password, user_passchg, user_email, user_type FROM ' . USERS_TABLE . " WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if ($row) { unset($userExists); // User inactive... if ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE) { return array( 'status' => LOGIN_ERROR_ACTIVE, 'error_msg' => 'ACTIVE_ERROR', 'user_row' => $row, ); } setcookie('phpbb_2moonsautologin', implode('|', array($row['user_id'], md5(implode('::', $userData)))), time() + 60*60*24*30); // Successful login... set user_login_attempts to zero... return array( 'status' => LOGIN_SUCCESS, 'error_msg' => false, 'user_row' => $row, ); } else { // retrieve default group id $sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = '" . $db->sql_escape('REGISTERED') . "' AND group_type = " . GROUP_SPECIAL; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$row) { trigger_error('NO_GROUP'); } // generate user account data $moons_user_row = array( 'username' => $username, 'user_password' => phpbb_hash($password), 'user_email' => $userData['email_2'], 'group_id' => (int) $row['group_id'], 'user_type' => USER_NORMAL, 'user_ip' => $user->ip, 'user_new' => ($config['new_member_post_limit']) ? 1 : , ); setcookie('phpbb_2moonsautologin', implode('|', array($row['user_id'], md5(implode('::', $userData)))), time() + 60*60*24*30); // this is the user's first login so create an empty profile return array( 'status' => LOGIN_SUCCESS_CREATE_PROFILE, 'error_msg' => false, 'user_row' => $moons_user_row, ); } } unset($userExists); @mysql_close($link); return array( 'status' => LOGIN_ERROR_USERNAME, 'error_msg' => 'LOGIN_ERROR_USERNAME', 'user_row' => array('user_id' => ANONYMOUS), ); } function autologin_2moons() { global $db, $config, $user; if(!isset($_COOKIE['phpbb_2moonsautologin'])) { return array(); } $port = isset($config['moons_dbport']) ? (int) $config['moons_dbport'] : 3306; $link = @mysql_connect($config['moons_dbhost'].':'.$port, $config['moons_dbuser'], $config['moons_dbpassword']); $prefix = mysql_real_escape_string($config['moons_dbprefix'], $link); if (!$link) { return array( 'status' => LOGIN_ERROR_EXTERNAL_AUTH, 'error_msg' => 'CONNECTION_FAILED', 'user_row' => array('user_id' => ANONYMOUS), ); } mysql_select_db($config['moons_dbtable'], $link); mysql_set_charset('utf8', $link); list($userID, $hash) = explode('|', $_COOKIE['phpbb_2moonsautologin']); $sql = "SELECT id FROM ".$prefix."users WHERE MD5(CONCAT_WS('::', id, username, password, universe, email_2)) = '".mysql_real_escape_string($hash, $link)."';"; $query = mysql_query($sql, $link); if (!$query) { trigger_error('MySQL Query Error: '.mysql_error().'<br>'.$sql); } $userExists = mysql_num_rows($query); if ($userExists == 1) { @mysql_close($link); $sql ='SELECT user_id, username, user_password, user_passchg, user_email, user_type FROM ' . USERS_TABLE . " WHERE user_id = " . ((int) $userID) . ""; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if ($row) { setcookie('phpbb_2moonsautologin', $_COOKIE['phpbb_2moonsautologin'], 31536000); return ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE) ? array() : $row; } else { setcookie('phpbb_2moonsautologin', '', time() - 3600); } } else { @mysql_close($link); } unset($userExists); return array(); } /** * This function is used to output any required fields in the authentication * admin panel. It also defines any required configuration table fields. */ function acp_2moons(&$new) { global $user; $tpl = ' <dl> <dt><label for="moons_dbhost">2Moons-Database-Host:</label></dt> <dd><input type="text" id="moons_dbhost" size="40" name="config[moons_dbhost]" value="' . $new['moons_dbhost'] . '" /></dd> </dl> <dl> <dt><label for="moons_dbport">2Moons-Database-Port:</label></dt> <dd><input type="text" id="moons_dbport" size="40" name="config[moons_dbport]" value="' . $new['moons_dbport'] . '" /></dd> </dl> <dl> <dt><label for="moons_dbuser">2Moons-Database-User:</label></dt> <dd><input type="text" id="moons_dbuser" size="40" name="config[moons_dbuser]" value="' . $new['moons_dbuser'] . '" /></dd> </dl> <dl> <dt><label for="moons_dbpassword">2Moons-Database-Password:</label></dt> <dd><input type="password" id="moons_dbpassword" size="40" name="config[moons_dbpassword]" value="' . $new['moons_dbpassword'] . '" autocomplete="off" /></dd> </dl> <dl> <dt><label for="moons_dbtable">2Moons-Database-Table:</label></dt> <dd><input type="text" id="moons_dbtable" size="40" name="config[moons_dbtable]" value="' . $new['moons_dbtable'] . '" /></dd> </dl> <dl> <dt><label for="moons_dbprefix">2Moons-Database-Prefix:</label></dt> <dd><input type="text" id="moons_dbprefix" size="40" name="config[moons_dbprefix]" value="' . $new['moons_dbprefix'] . '" /></dd> </dl> <dl> <dt><label for="moons_salt">2Moons-Passwort-Salt:</label><br /><span>Definded at ./includes/config.php in $salt</span></dt> <dd><input type="text" id="moons_salt" size="40" name="config[moons_salt]" value="' . $new['moons_salt'] . '" /></dd> </dl> <dl> <dt><label for="moons_universe">2Moons Universe:</label><br /><span>MultiUniverse is currently unsupported.<br>Default: 1</span></dt> <dd><input type="text" id="moons_universe" size="40" name="config[moons_universe]" value="' . $new['moons_universe'] . '"/></dd> </dl> '; // These are fields required in the config table return array( 'tpl' => $tpl, 'config' => array('moons_dbhost', 'moons_dbport', 'moons_dbuser', 'moons_dbpassword', 'moons_dbtable', 'moons_dbprefix', 'moons_salt', 'moons_universe') ); } // 2Moons functions function cryptPassword2Moons($password) { // http://www.phpgangsta.de/schoener-hashen-mit-bcrypt global $config; if(!CRYPT_BLOWFISH || !isset($config['moons_salt'])) { return md5($password); } else { return crypt($password, '$2a$09$'.$config['moons_salt'].'$'); } } ?> Link to comment https://ipbmafia.ru/topic/14726-pomogite/ Share on other sites More sharing options...
June 24, 20168 yr comment_109078 под спойлер код бы запихнуть Link to comment https://ipbmafia.ru/topic/14726-pomogite/?&do=findComment&comment=109078 Share on other sites 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.
Note: Your post will require moderator approval before it will be visible.