143 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| function cookie_setup() {
 | |
| 	global $fp_config;
 | |
| 
 | |
| 	// md5(BLOG_BASEURL);
 | |
| 
 | |
| 	if (!defined('COOKIEHASH'))
 | |
| 		define('COOKIEHASH', $fp_config ['general'] ['blogid']);
 | |
| 
 | |
| 	if (!defined('USER_COOKIE'))
 | |
| 		define('USER_COOKIE', 'fpuser_' . COOKIEHASH);
 | |
| 	if (!defined('PASS_COOKIE'))
 | |
| 		define('PASS_COOKIE', 'fppass_' . COOKIEHASH);
 | |
| 	if (!defined('SESS_COOKIE'))
 | |
| 		define('SESS_COOKIE', 'fpsess_' . COOKIEHASH);
 | |
| 
 | |
| 	if (!defined('COOKIEPATH'))
 | |
| 		define('COOKIEPATH', preg_replace('|https?://[^/]+|i', '', BLOG_BASEURL));
 | |
| 	if (!defined('SITECOOKIEPATH'))
 | |
| 		define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', BLOG_BASEURL));
 | |
| 	if (!defined('COOKIE_DOMAIN'))
 | |
| 		define('COOKIE_DOMAIN', false);
 | |
| 	if (!defined('COOKIE_SECURE'))
 | |
| 		define('COOKIE_SECURE', true);
 | |
| 	if (!defined('COOKIE_HTTPONLY'))
 | |
| 		define('COOKIE_HTTPONLY', true);
 | |
| }
 | |
| 
 | |
| if (!function_exists('wp_get_cookie_login')) :
 | |
| 
 | |
| 	function wp_get_cookie_login() {
 | |
| 		if (empty($_COOKIE [USER_COOKIE]) || empty($_COOKIE [PASS_COOKIE]))
 | |
| 			return false;
 | |
| 
 | |
| 		return array(
 | |
| 			'login' => $_COOKIE [USER_COOKIE],
 | |
| 			'password' => $_COOKIE [PASS_COOKIE]
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| endif;
 | |
| 
 | |
| 
 | |
| function cookie_set($username, $password, $already_md5 = false, $home = '', $siteurl = '', $remember = false) {
 | |
| 	if (!$already_md5)
 | |
| 		$password = md5(md5($password)); // Double hash the password in the cookie.
 | |
| 
 | |
| 	if (empty($home))
 | |
| 		$cookiepath = COOKIEPATH;
 | |
| 	else
 | |
| 		$cookiepath = preg_replace('|https?://[^/]+|i', '', $home . '/');
 | |
| 
 | |
| 	if (empty($siteurl)) {
 | |
| 		$sitecookiepath = SITECOOKIEPATH;
 | |
| 		$cookiehash = COOKIEHASH;
 | |
| 	} else {
 | |
| 		$sitecookiepath = preg_replace('|https?://[^/]+|i', '', $siteurl . '/');
 | |
| 		$cookiehash = md5($siteurl);
 | |
| 	}
 | |
| 
 | |
| 	if ($remember)
 | |
| 		$expire = time() + 31536000;
 | |
| 	else
 | |
| 		$expire = 0;
 | |
| 
 | |
| 	setcookie(USER_COOKIE, $username, $expire, $cookiepath, COOKIE_DOMAIN, COOKIE_SECURE, COOKIE_HTTPONLY);
 | |
| 	setcookie(PASS_COOKIE, $password, $expire, $cookiepath, COOKIE_DOMAIN, COOKIE_SECURE, COOKIE_HTTPONLY);
 | |
| 
 | |
| 	if ($cookiepath != $sitecookiepath) {
 | |
| 		setcookie(USER_COOKIE, $username, $expire, $sitecookiepath, COOKIE_DOMAIN, COOKIE_SECURE, COOKIE_HTTPONLY);
 | |
| 		setcookie(PASS_COOKIE, $password, $expire, $sitecookiepath, COOKIE_DOMAIN, COOKIE_SECURE, COOKIE_HTTPONLY);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function cookie_clear() {
 | |
| 	setcookie(USER_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN, COOKIE_SECURE, COOKIE_HTTPONLY);
 | |
| 	setcookie(PASS_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN, COOKIE_SECURE, COOKIE_HTTPONLY);
 | |
| 	setcookie(USER_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN, COOKIE_SECURE, COOKIE_HTTPONLY);
 | |
| 	setcookie(PASS_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN, COOKIE_SECURE, COOKIE_HTTPONLY);
 | |
| }
 | |
| 
 | |
| if (!function_exists('wp_login')) :
 | |
| 
 | |
| 	function wp_login($username, $password, $already_md5 = false) {
 | |
| 		global $wpdb, $error;
 | |
| 
 | |
| 		$username = sanitize_user($username);
 | |
| 
 | |
| 		if ('' == $username)
 | |
| 			return false;
 | |
| 
 | |
| 		if ('' == $password) {
 | |
| 			$error = __('<strong>ERROR</strong>: The password field is empty.');
 | |
| 			return false;
 | |
| 		}
 | |
| 
 | |
| 		$login = get_userdatabylogin($username);
 | |
| 		// $login = $wpdb->get_row("SELECT ID, user_login, user_pass FROM $wpdb->users WHERE user_login = '$username'");
 | |
| 
 | |
| 		if (!$login) {
 | |
| 			$error = __('<strong>ERROR</strong>: Invalid username.');
 | |
| 			return false;
 | |
| 		} else {
 | |
| 			// If the password is already_md5, it has been double hashed.
 | |
| 			// Otherwise, it is plain text.
 | |
| 			if (($already_md5 && md5($login->user_pass) == $password) || ($login->user_login == $username && $login->user_pass == md5($password))) {
 | |
| 				return true;
 | |
| 			} else {
 | |
| 				$error = __('<strong>ERROR</strong>: Incorrect password.');
 | |
| 				$pwd = '';
 | |
| 				return false;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| endif;
 | |
| 
 | |
| if (!function_exists('is_user_logged_in')) :
 | |
| 
 | |
| 	function is_user_logged_in() {
 | |
| 		$user = wp_get_current_user();
 | |
| 
 | |
| 		if ($user->id == 0)
 | |
| 			return false;
 | |
| 
 | |
| 		return true;
 | |
| 	}
 | |
| endif;
 | |
| 
 | |
| if (!function_exists('auth_redirect')) :
 | |
| 
 | |
| 	function auth_redirect() {
 | |
| 		// Checks if a user is logged in, if not redirects them to the login page
 | |
| 		if ((!empty($_COOKIE [USER_COOKIE]) && !wp_login($_COOKIE [USER_COOKIE], $_COOKIE [PASS_COOKIE], true)) || (empty($_COOKIE [USER_COOKIE]))) {
 | |
| 			nocache_headers();
 | |
| 
 | |
| 			wp_redirect(get_option('siteurl') . '/wp-login.php?redirect_to=' . urlencode($_SERVER ['REQUEST_URI']));
 | |
| 			exit();
 | |
| 		}
 | |
| 	}
 | |
| endif;
 | |
| 
 | |
| ?>
 | 
