<?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;
}
}
?>