Багфикс — Кукис , для домена с www и без .

Наверное некоторые заметили , что при входе на сайт — www.site.ru и потом при переходе на site.ru надо было логиниться снова .
То есть система выставляла куки , для одного домена , через который вы логинитесь . Ваще не круто и пользователям приходилось объяснять что и как , бла бла бла …

Фиксим эту хрень следующим способом . Находим в файле include/functions.php функцию —

function logincookie($id, $passhash, $updatedb = 1, $expires = 0x7fffffff) {
 
	$subnet = explode('.', getip());
	$subnet[2] = $subnet[3] = 0;
	$subnet = implode('.', $subnet); // 255.255.0.0
 
	setcookie(COOKIE_UID, $id, $expires, '/');
	setcookie(COOKIE_PASSHASH, md5($passhash.COOKIE_SALT.$subnet), $expires, '/');
 
	if ($updatedb)
		sql_query('UPDATE users SET last_login = NOW() WHERE id = '.$id);
}

и функцию

function logoutcookie() {
//	setcookie(COOKIE_UID, '', 0x7fffffff, '/'); // Не стоит убирать комментирование т.к небудет работать система анти-двойной реги
	setcookie(COOKIE_PASSHASH, '', 0x7fffffff, '/');
}
?

заменяем их на —

function logincookie($id, $passhash, $updatedb = 1, $expires = 0x7fffffff) {
 
		$domain = $_SERVER['HTTP_HOST'];
		if ( strtolower( substr($domain, 0, 4) ) == 'www.' )
			$domain = substr($domain, 4);	// Fix the domain to accept domains with and without 'www.'. 
		if ( substr($domain, 0, 1) != '.' )
			$domain = '.'.$domain;	// Add the dot prefix to ensure compatibility with subdomains
 
	$subnet = explode('.', getip());
	$subnet[2] = $subnet[3] = 0;
	$subnet = implode('.', $subnet); // 255.255.0.0
 
	setcookie(COOKIE_UID, $id, $expires, '/',$domain);
	setcookie(COOKIE_PASSHASH, md5($passhash.COOKIE_SALT.$subnet), $expires, '/',$domain);
 
	if ($updatedb)
		sql_query('UPDATE users SET last_login = NOW() WHERE id = '.$id);
}

и функцию

function logoutcookie() {
 
		$domain = $_SERVER['HTTP_HOST'];
		if ( strtolower( substr($domain, 0, 4) ) == 'www.' )
			$domain = substr($domain, 4);	// Fix the domain to accept domains with and without 'www.'. 
		if ( substr($domain, 0, 1) != '.' )
			$domain = '.'.$domain;	// Add the dot prefix to ensure compatibility with subdomains
 
 
//	setcookie(COOKIE_UID, '', 0x7fffffff, '/',$domain); // Не стоит убирать комментирование т.к небудет работать система анти-двойной реги
	setcookie(COOKIE_PASSHASH, '', 0x7fffffff, '/',$domain);
}
?

Что добавилось —

		$domain = $_SERVER['HTTP_HOST'];
		if ( strtolower( substr($domain, 0, 4) ) == 'www.' )
			$domain = substr($domain, 4);	// Fix the domain to accept domains with and without 'www.'. 
		if ( substr($domain, 0, 1) != '.' )
			$domain = '.'.$domain;	// Add the dot prefix to ensure compatibility with subdomains

Функция , которая определяет домен с которого производиться попытка входа в систему , далее она обрезает www и выставляет домен в виде — .site.ru ! Имена с такой формой домена , кукис будут работать для доменов www.site.ru и site.ru .
Далее , полученный домен .site.ru присваиваем к кукам — $domain .

Могут быть проблемы с выходом с сайта для тех пользователей кто уже зологинлся по старой функции , так что просто попросите их удалить куки .

Мод — Фотографии пользователей

При помощи этого мода , Ваши пользователи смогут загружать свои фотки себе в профиль . Так же есть страница на которой выводяться все фотки пользователей разом .
При загрузке , если фото больше размеров 800х600 пикселей , оно автоматом уменьшается (Размер можно изменить) , максимальный вес фотки 500 кб (тоже можно изменить). Поддерживаемые форматы — JPG, JPEG, GIF, PNG .
Модераторы и выше , могу удалять фотки пользователей на странице Фоток или из профиля пользователя .
Вообщем мод простенький , ничего сложного и мутного .
Читать далее Мод — Фотографии пользователей