Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

systemwar007

Новичок
  • Регистрация

  • В сети

  1. Помогите пожалуйста переписать этот код под 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'].'$'); } } ?>

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.