View file v4 2/include/functions_user.php

File size: 3.8Kb
<?php

function user_signup($vars)
{
	global $db;
	
	if (function_exists('mb_substr'))
	{
		$vars['user_name'] = mb_substr($vars['user_name'], 0, 15);
	}
	else
	{
		$vars['user_name'] = substr($vars['user_name'], 0, 15);
	}
	$clean_string = preg_replace('/[^[:alnum:]]/', '', $vars['user_name']);
	if (strlen($vars['user_name']) < 3||strlen($clean_string) < 3)
	{
		$error[] = 'Username is to short, it has to be longer than 3 chars, also avoid special chars. Allowed chars: A-Z, a-z, 0-9, - _ @';
	}
	$clean_string = preg_replace('/[^[:alnum:]]/', '', $vars['user_password']);
	if (strlen($vars['user_password']) < 3||strlen($clean_string) < 3)
	{
		$error[] = 'Password is to short, it has to be longer than 3 chars, also avoid special chars. Allowed chars: A-Z, a-z, 0-9, - _ @';
	}
	/*if(gumtcha_check($vars['code'])==false)
	{
		$error[] = 'Wrong security code.';
	}*/
	$r = $db->select("SELECT user_id FROM `v4_chat_users` WHERE user_user_name LIKE '".mysql_real_escape_string($vars['user_name'])."' LIMIT 1");
	$row = $db->get_row($r, 'MYSQL_ASSOC');
	if($row['user_id']>0) $error[] = 'Username '.$vars['user_name'].' is taken, try a different one.';

	if(!is_array($error))
	{
		$data = array(
			'user_user_name' => $vars['user_name'],
			'user_password' => md5($vars['user_password']),
			'user_login_key' => uuid(),
			'user_ip' => clean_real_ip(),
			'user_ua' => clean_real_ua(),
			'user_country' => $_SERVER["GEOIP_COUNTRY_CODE"],
			'user_registered' => time()
		);
		$user_id = $db->insert_array('v4_chat_users', $data);
		if($user_id>0)
			return(user_info($user_id));
		else
		{
			$error['error'] = 'yes';
			return $error;
		}
	}
	else
	{
		$error['error'] = 'yes';
		return $error;
	}
}

function user_login($vars)
{
	global $db;
	$r = $db->select("SELECT * FROM `v4_chat_users` WHERE user_user_name LIKE '".mysql_real_escape_string($vars['user_name'])."' AND user_password='".md5($vars['user_password'])."'");
	$row = $db->get_row($r, 'MYSQL_ASSOC');
	if(!is_array($row))
	{
		$error['error'] = 'yes';
		$error[] = 'Wrong username or password, try to login again.';
		return $error;
	}
	return $row;
}

function user_info($user_id)
{
	global $db;
			$r = $db->select("SELECT * FROM `v4_chat_users` WHERE user_id='".intval($user_id)."'");
			$row = $db->get_row($r, 'MYSQL_ASSOC');
	if($row['user_id']>0)
		return $row;
	else
	{
		$error['error'] = 'yes';
		$error[] = 'User not found.';
		return $error;
	}
}

function user_info_with_key($key='')
{
	global $db;
	if(!empty($key))
	{
				$r = $db->select("SELECT * FROM `v4_chat_users` WHERE user_login_key='".mysql_real_escape_string($key)."'");
				$row = $db->get_row($r, 'MYSQL_ASSOC');
				
		if($row['user_id']>0)
			return $row;
		else
		{
			$error['error'] = 'yes';
			$error[] = 'User not found.';
			return $error;
		}
	}
}

function user_location_update($user_id,$location)
{
	global $db;
	$data = array('user_location' => $location,'user_last_active'=>time());
	$rows = $db->update_array('v4_chat_users', $data, "user_id=".intval($user_id));
}

function user_change_password($user_id,$vars)
{
	global $db;
	
	if($vars['new_password1']!=$vars['new_password2']) $error[] = 'New passwords do not match, please retype.';
	$r = $db->select("SELECT user_password FROM `v4_chat_users` WHERE user_id='".intval($user_id)."'");
	$row = $db->get_row($r, 'MYSQL_ASSOC');
	if($row['user_password']!=md5($vars['old_password'])) $error[] = 'Wrong old password, please retype.';
	if(strlen($row['new_password'])<3) $error[] = 'New password is to short.';
	if(!is_array($error))
	{
		$data = array('user_password' => md5($vars['new_password1']));
		$rows = $db->update_array('v4_chat_users', $data, "user_id=".intval($user_id));
		$out['error'] = 'no';
		$out[] = 'Password changed to '.$vars['new_password1'].'.';
		return $out;
	}
	else
	{
		$error['error'] = 'yes';
		$error[] = 'User not found.';
		return $error;
	}
}

?>