亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? helper.php

?? Joomla!是一套獲得過多個(gè)獎(jiǎng)項(xiàng)的內(nèi)容管理系統(tǒng)(Content Management System, CMS)。Joomla!采用PHP+MySQL數(shù)據(jù)庫開發(fā)
?? PHP
字號(hào):
<?php/*** @version		$Id:helper.php 6961 2007-03-15 16:06:53Z tcp $* @package		Joomla.Framework* @subpackage	User* @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.* @license		GNU/GPL, see LICENSE.php* Joomla! is free software. This version may have been modified pursuant* to the GNU General Public License, and as distributed it includes or* is derivative of works licensed under the GNU General Public License or* other free or open source software licenses.* See COPYRIGHT.php for copyright notices and details.*//** * Authorization helper class, provides static methods to perform various tasks relevant * to the Joomla user and authorization classes * * This class has influences and some method logic from the Horde Auth package * * @static * @package 	Joomla.Framework * @subpackage	User * @since		1.5 */class JUserHelper{	/**	 * Method to activate a user	 *	 * @param	string	$activation	Activation string	 * @return 	boolean 			True on success	 * @since	1.5	 */	function activateUser($activation)	{		//Initialize some variables		$db = & JFactory::getDBO();		// Lets get the id of the user we want to activate		$query = 'SELECT id'		. ' FROM #__users'		. ' WHERE activation = '.$db->Quote($activation)		. ' AND block = 1'		. ' AND lastvisitDate = '.$db->Quote('0000-00-00 00:00:00');		;		$db->setQuery( $query );		$id = intval( $db->loadResult() );		// Is it a valid user to activate?		if ($id)		{			$user =& JUser::getInstance( (int) $id );			$user->set('block', '0');			$user->set('activation', '');			// Time to take care of business.... store the user.			if (!$user->save())			{				JError::raiseWarning( "SOME_ERROR_CODE", $user->getError() );				return false;			}		}		else		{			JError::raiseWarning( "SOME_ERROR_CODE", JText::_('UNABLE TO FIND A USER WITH GIVEN ACTIVATION STRING') );			return false;		}		return true;	}	/**	 * Returns userid if a user exists	 *	 * @param string The username to search on	 * @return int The user id or 0 if not found	 */	function getUserId($username)	{		// Initialize some variables		$db = & JFactory::getDBO();		$query = 'SELECT id FROM #__users WHERE username = ' . $db->Quote( $username );		$db->setQuery($query, 0, 1);		return $db->loadResult();	}	/**	 * Formats a password using the current encryption.	 *	 * @access	public	 * @param	string	$plaintext	The plaintext password to encrypt.	 * @param	string	$salt		The salt to use to encrypt the password. []	 *								If not present, a new salt will be	 *								generated.	 * @param	string	$encryption	The kind of pasword encryption to use.	 *								Defaults to md5-hex.	 * @param	boolean	$show_encrypt  Some password systems prepend the kind of	 *								encryption to the crypted password ({SHA},	 *								etc). Defaults to false.	 *	 * @return string  The encrypted password.	 */	function getCryptedPassword($plaintext, $salt = '', $encryption = 'md5-hex', $show_encrypt = false)	{		// Get the salt to use.		$salt = JUserHelper::getSalt($encryption, $salt, $plaintext);		// Encrypt the password.		switch ($encryption)		{			case 'plain' :				return $plaintext;			case 'sha' :				$encrypted = base64_encode(mhash(MHASH_SHA1, $plaintext));				return ($show_encrypt) ? '{SHA}'.$encrypted : $encrypted;			case 'crypt' :			case 'crypt-des' :			case 'crypt-md5' :			case 'crypt-blowfish' :				return ($show_encrypt ? '{crypt}' : '').crypt($plaintext, $salt);			case 'md5-base64' :				$encrypted = base64_encode(mhash(MHASH_MD5, $plaintext));				return ($show_encrypt) ? '{MD5}'.$encrypted : $encrypted;			case 'ssha' :				$encrypted = base64_encode(mhash(MHASH_SHA1, $plaintext.$salt).$salt);				return ($show_encrypt) ? '{SSHA}'.$encrypted : $encrypted;			case 'smd5' :				$encrypted = base64_encode(mhash(MHASH_MD5, $plaintext.$salt).$salt);				return ($show_encrypt) ? '{SMD5}'.$encrypted : $encrypted;			case 'aprmd5' :				$length = strlen($plaintext);				$context = $plaintext.'$apr1$'.$salt;				$binary = JUserHelper::_bin(md5($plaintext.$salt.$plaintext));				for ($i = $length; $i > 0; $i -= 16) {					$context .= substr($binary, 0, ($i > 16 ? 16 : $i));				}				for ($i = $length; $i > 0; $i >>= 1) {					$context .= ($i & 1) ? chr(0) : $plaintext[0];				}				$binary = JUserHelper::_bin(md5($context));				for ($i = 0; $i < 1000; $i ++) {					$new = ($i & 1) ? $plaintext : substr($binary, 0, 16);					if ($i % 3) {						$new .= $salt;					}					if ($i % 7) {						$new .= $plaintext;					}					$new .= ($i & 1) ? substr($binary, 0, 16) : $plaintext;					$binary = JUserHelper::_bin(md5($new));				}				$p = array ();				for ($i = 0; $i < 5; $i ++) {					$k = $i +6;					$j = $i +12;					if ($j == 16) {						$j = 5;					}					$p[] = JUserHelper::_toAPRMD5((ord($binary[$i]) << 16) | (ord($binary[$k]) << 8) | (ord($binary[$j])), 5);				}				return '$apr1$'.$salt.'$'.implode('', $p).JUserHelper::_toAPRMD5(ord($binary[11]), 3);			case 'md5-hex' :			default :				$encrypted = ($salt) ? md5($plaintext.$salt) : md5($plaintext);				return ($show_encrypt) ? '{MD5}'.$encrypted : $encrypted;		}	}	/**	 * Returns a salt for the appropriate kind of password encryption.	 * Optionally takes a seed and a plaintext password, to extract the seed	 * of an existing password, or for encryption types that use the plaintext	 * in the generation of the salt.	 *	 * @access public	 * @param string $encryption  The kind of pasword encryption to use.	 *							Defaults to md5-hex.	 * @param string $seed		The seed to get the salt from (probably a	 *							previously generated password). Defaults to	 *							generating a new seed.	 * @param string $plaintext   The plaintext password that we're generating	 *							a salt for. Defaults to none.	 *	 * @return string  The generated or extracted salt.	 */	function getSalt($encryption = 'md5-hex', $seed = '', $plaintext = '')	{		// Encrypt the password.		switch ($encryption)		{			case 'crypt' :			case 'crypt-des' :				if ($seed) {					return substr(preg_replace('|^{crypt}|i', '', $seed), 0, 2);				} else {					return substr(md5(mt_rand()), 0, 2);				}				break;			case 'crypt-md5' :				if ($seed) {					return substr(preg_replace('|^{crypt}|i', '', $seed), 0, 12);				} else {					return '$1$'.substr(md5(mt_rand()), 0, 8).'$';				}				break;			case 'crypt-blowfish' :				if ($seed) {					return substr(preg_replace('|^{crypt}|i', '', $seed), 0, 16);				} else {					return '$2$'.substr(md5(mt_rand()), 0, 12).'$';				}				break;			case 'ssha' :				if ($seed) {					return substr(preg_replace('|^{SSHA}|', '', $seed), -20);				} else {					return mhash_keygen_s2k(MHASH_SHA1, $plaintext, substr(pack('h*', md5(mt_rand())), 0, 8), 4);				}				break;			case 'smd5' :				if ($seed) {					return substr(preg_replace('|^{SMD5}|', '', $seed), -16);				} else {					return mhash_keygen_s2k(MHASH_MD5, $plaintext, substr(pack('h*', md5(mt_rand())), 0, 8), 4);				}				break;			case 'aprmd5' :				/* 64 characters that are valid for APRMD5 passwords. */				$APRMD5 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';				if ($seed) {					return substr(preg_replace('/^\$apr1\$(.{8}).*/', '\\1', $seed), 0, 8);				} else {					$salt = '';					for ($i = 0; $i < 8; $i ++) {						$salt .= $APRMD5 {							rand(0, 63)							};					}					return $salt;				}				break;			default :				$salt = '';				if ($seed) {					$salt = $seed;				}				return $salt;				break;		}	}	/**	 * Generate a random password	 *	 * @static	 * @param	int		$length	Length of the password to generate	 * @return	string			Random Password	 * @since	1.5	 */	function genRandomPassword($length = 8)	{		$salt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";		$len = strlen($salt);		$makepass = '';		$stat = @stat(__FILE__);		if(empty($stat) || !is_array($stat)) $stat = array(php_uname());		mt_srand(crc32(microtime() . implode('|', $stat)));		for ($i = 0; $i < $length; $i ++) {			$makepass .= $salt[mt_rand(0, $len -1)];		}		return $makepass;	}	/**	 * Converts to allowed 64 characters for APRMD5 passwords.	 *	 * @access private	 * @param string  $value	 * @param integer $count	 * @return string  $value converted to the 64 MD5 characters.	 * @since 1.5	 */	function _toAPRMD5($value, $count)	{		/* 64 characters that are valid for APRMD5 passwords. */		$APRMD5 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';		$aprmd5 = '';		$count = abs($count);		while (-- $count) {			$aprmd5 .= $APRMD5[$value & 0x3f];			$value >>= 6;		}		return $aprmd5;	}	/**	 * Converts hexadecimal string to binary data.	 *	 * @access private	 * @param string $hex  Hex data.	 * @return string  Binary data.	 * @since 1.5	 */	function _bin($hex)	{		$bin = '';		$length = strlen($hex);		for ($i = 0; $i < $length; $i += 2) {			$tmp = sscanf(substr($hex, $i, 2), '%x');			$bin .= chr(array_shift($tmp));		}		return $bin;	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品自拍偷拍| 欧美一级日韩一级| 免费人成精品欧美精品| 欧美激情一区二区三区全黄| 欧美唯美清纯偷拍| 国产不卡高清在线观看视频| 亚洲成人中文在线| 国产精品国产三级国产专播品爱网 | 国内精品写真在线观看| 亚洲精品国产a久久久久久| 精品久久久久久久久久久久久久久| 色老头久久综合| 国产.欧美.日韩| 免费精品视频最新在线| 亚洲国产成人av网| 国产精品久久久久永久免费观看| 日韩视频免费观看高清完整版| 色一区在线观看| 成人在线视频一区| 国产在线视频一区二区| 蜜桃av一区二区三区| 亚洲在线视频网站| 1024成人网色www| 国产视频一区在线播放| 欧美电影免费观看高清完整版| 欧美手机在线视频| 欧美性生活久久| 91国在线观看| 91免费观看视频| 成人aa视频在线观看| 国产宾馆实践打屁股91| 国产一二精品视频| 国产曰批免费观看久久久| 美女被吸乳得到大胸91| 日韩二区三区四区| 日韩精品乱码av一区二区| 亚洲国产精品久久人人爱| 亚洲精品国产无天堂网2021| 综合欧美一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产亚洲精品资源在线26u| 久久伊人中文字幕| 欧美国产综合色视频| 国产亚洲欧美激情| 成人免费小视频| 最近中文字幕一区二区三区| 中文字幕一区二区三中文字幕| 自拍偷拍亚洲欧美日韩| 亚洲色图欧洲色图婷婷| 亚洲综合图片区| 亚洲福利视频导航| 免费久久99精品国产| 国产一区二区不卡| 高清国产一区二区三区| 99热99精品| 在线观看一区日韩| 51精品秘密在线观看| 日韩一区二区免费电影| 久久久久久久综合色一本| 国产精品女人毛片| 一区二区三区国产豹纹内裤在线| 亚洲已满18点击进入久久| 视频一区视频二区中文字幕| 美女尤物国产一区| 国产成人免费在线| 一本一道久久a久久精品| 欧美日韩一区在线| 精品区一区二区| 国产精品美女久久久久久| 一区二区视频在线| 日韩高清在线观看| 国产精品自拍三区| 在线免费观看日本欧美| 91精品国产欧美一区二区成人| 精品欧美一区二区在线观看| 国产日韩av一区| 亚洲国产精品自拍| 国产一区二区精品久久| 在线精品视频免费播放| 精品国产成人在线影院| 亚洲欧美综合网| 亚洲成人精品一区二区| 国产69精品一区二区亚洲孕妇| 91丝袜国产在线播放| 91精品国产免费| 国产精品毛片久久久久久久| 日韩 欧美一区二区三区| 成人v精品蜜桃久久一区| 欧美视频中文字幕| 欧美国产激情一区二区三区蜜月| 午夜成人免费视频| 风间由美性色一区二区三区| 欧美丰满美乳xxx高潮www| 亚洲欧洲一区二区在线播放| 日韩va欧美va亚洲va久久| www.成人网.com| 精品人伦一区二区色婷婷| 亚洲综合久久久| 顶级嫩模精品视频在线看| 日韩欧美中文一区| 亚洲午夜羞羞片| a美女胸又www黄视频久久| 欧美岛国在线观看| 一区二区三区在线观看视频| 国产毛片一区二区| 91精品久久久久久久99蜜桃| 亚洲女同女同女同女同女同69| 国产成人精品综合在线观看 | 欧美一级二级在线观看| 依依成人综合视频| av午夜精品一区二区三区| 精品国产一区二区三区久久久蜜月| 亚洲一区二区三区中文字幕| 成人h动漫精品一区二区| 欧美精品一区视频| 免费视频一区二区| 在线播放欧美女士性生活| 一区二区三区四区视频精品免费| 国产成人a级片| 精品成人免费观看| 蜜桃精品视频在线观看| 欧美日韩另类一区| 亚洲资源在线观看| 91麻豆精东视频| 成人免费视频在线观看| 成人av免费在线播放| 久久精品亚洲精品国产欧美kt∨| 老鸭窝一区二区久久精品| 4438x成人网最大色成网站| 亚洲国产日韩精品| 欧美日韩视频在线观看一区二区三区 | 免费成人av在线| 91精品国产91久久久久久最新毛片 | 亚洲人成亚洲人成在线观看图片| 国产91精品在线观看| 欧美国产日韩在线观看| 国产精品乡下勾搭老头1| 国产三级精品三级在线专区| 国产精品一区二区久久不卡| 精品福利二区三区| 国产美女视频一区| 国产精品污网站| 99在线精品视频| 亚洲精品免费在线| 欧美人成免费网站| 毛片av一区二区| 久久理论电影网| 成人免费毛片片v| 国产精品国产三级国产专播品爱网 | 成人免费看的视频| 欧美韩日一区二区三区| 成人性生交大片免费看中文| 精品国产一二三| 国产精品一区二区在线播放 | 亚洲欧美日韩系列| 色婷婷综合久久久| 亚洲激情校园春色| 在线视频一区二区免费| 亚洲妇女屁股眼交7| 91精品国产综合久久久久久 | 三级欧美在线一区| 欧美老女人第四色| 另类小说色综合网站| 久久日韩精品一区二区五区| 国产黄人亚洲片| 一区二区三区欧美日| 欧美人动与zoxxxx乱| 美女免费视频一区二区| 欧美一区二区精品久久911| 国内精品不卡在线| 中文字幕高清一区| 一本大道久久a久久精二百| 亚洲欧美日韩国产另类专区| 337p亚洲精品色噜噜噜| 捆绑紧缚一区二区三区视频| 久久久三级国产网站| 韩国精品主播一区二区在线观看| 国产精品久久久久天堂| 日本高清不卡在线观看| 日韩二区三区四区| 久久久五月婷婷| 欧美日韩在线直播| 国产一区 二区 三区一级| 中文字幕亚洲在| 日韩手机在线导航| 懂色av一区二区三区免费看| 亚洲精品少妇30p| 日韩精品一区二区三区视频在线观看| 国产成人av自拍| 亚洲一区二区三区三| 日韩欧美激情一区| 国产成人亚洲综合a∨婷婷 | 国产成人精品一区二区三区四区| 综合久久给合久久狠狠狠97色 | 日本一区二区三区四区在线视频| 91免费视频网址| 麻豆精品一区二区综合av| 欧美激情在线观看视频免费| 欧美一区二区女人| 色综合久久久久久久|