221 lines
4.8 KiB
HTML
221 lines
4.8 KiB
HTML
![]() |
function signup_user($array=NULL,$send_signup_email=true)
|
||
|
{
|
||
|
global $LANG,$db,$userquery;
|
||
|
echo "<pre>";
|
||
|
var_dump($array);
|
||
|
echo "</pre>";
|
||
|
|
||
|
//die();
|
||
|
|
||
|
|
||
|
if($array==NULL)
|
||
|
$array = $_POST;
|
||
|
|
||
|
if(is_array($_FILES))
|
||
|
$array = array_merge($array,$_FILES);
|
||
|
$this->validate_form_fields($array);
|
||
|
|
||
|
//checking terms and policy agreement
|
||
|
if($array['agree']!='yes' && !has_access('admin_access',true))
|
||
|
e(lang('usr_ament_err'));
|
||
|
|
||
|
// first checking if captha plugin is enabled
|
||
|
// do not depend on the form cb_captcha_enabled value
|
||
|
if(get_captcha() && !$userquery->admin_login_check()){
|
||
|
//var_dump(get_captcha());
|
||
|
//var_dump(!error());
|
||
|
//echo "<pre>";
|
||
|
//var_dump($array);
|
||
|
//echo "</pre>";
|
||
|
// now checking if the user posted captha value is not empty and cb_captcha_enabled == yes
|
||
|
if(!isset($array['cb_captcha_enabled']) || $array['cb_captcha_enabled'] == 'no'){
|
||
|
e(lang('usr_ccode_err'));
|
||
|
//echo "wrong captha input";
|
||
|
}
|
||
|
|
||
|
if(!verify_captcha()){
|
||
|
e(lang('usr_ccode_err'));
|
||
|
|
||
|
}
|
||
|
}
|
||
|
if(!error())
|
||
|
{
|
||
|
$signup_fields = $this->load_signup_fields($array);
|
||
|
|
||
|
//Adding Custom Signup Fields
|
||
|
if(count($this->custom_signup_fields)>0)
|
||
|
$signup_fields = array_merge($signup_fields,$this->custom_signup_fields);
|
||
|
|
||
|
foreach($signup_fields as $field)
|
||
|
{
|
||
|
$name = formObj::rmBrackets($field['name']);
|
||
|
$val = $array[$name];
|
||
|
|
||
|
if($field['use_func_val'])
|
||
|
$val = $field['validate_function']($val);
|
||
|
|
||
|
|
||
|
if(!empty($field['db_field']))
|
||
|
$query_field[] = $field['db_field'];
|
||
|
|
||
|
if(is_array($val))
|
||
|
{
|
||
|
$new_val = '';
|
||
|
foreach($val as $v)
|
||
|
{
|
||
|
$new_val .= "#".$v."# ";
|
||
|
}
|
||
|
$val = $new_val;
|
||
|
}
|
||
|
if(!$field['clean_func'] || (!function_exists($field['clean_func']) && !is_array($field['clean_func'])))
|
||
|
$val = mysql_clean($val);
|
||
|
else
|
||
|
$val = apply_func($field['clean_func'],sql_free('|no_mc|'.$val));
|
||
|
|
||
|
if(!empty($field['db_field']))
|
||
|
$query_val[] = $val;
|
||
|
|
||
|
}
|
||
|
|
||
|
// Setting Verification type
|
||
|
if(EMAIL_VERIFICATION == '1'){
|
||
|
$usr_status = 'ToActivate';
|
||
|
$welcome_email = 'no';
|
||
|
}else{
|
||
|
$usr_status = 'Ok';
|
||
|
$welcome_email = 'yes';
|
||
|
}
|
||
|
|
||
|
if(has_access('admin_access',true))
|
||
|
{
|
||
|
if($array['active']=='Ok')
|
||
|
{
|
||
|
$usr_status = 'Ok';
|
||
|
$welcome_email = 'yes';
|
||
|
}else{
|
||
|
$usr_status = 'ToActivate';
|
||
|
$welcome_email = 'no';
|
||
|
}
|
||
|
|
||
|
$query_field[] = "level";
|
||
|
$query_val[] = $array['level'];
|
||
|
}
|
||
|
|
||
|
$query_field[] = "usr_status";
|
||
|
$query_val[] = $usr_status;
|
||
|
|
||
|
$query_field[] = " welcome_email_sent";
|
||
|
$query_val[] = $welcome_email;
|
||
|
|
||
|
//Creating AV Code
|
||
|
$avcode = RandomString(10);
|
||
|
$query_field[] = "avcode";
|
||
|
$query_val[] = $avcode;
|
||
|
|
||
|
|
||
|
|
||
|
//Signup IP
|
||
|
$signup_ip = $_SERVER['REMOTE_ADDR'];
|
||
|
$query_field[] = "signup_ip";
|
||
|
$query_val[] = $signup_ip;
|
||
|
|
||
|
//Date Joined
|
||
|
$now = NOW();
|
||
|
$query_field[] = "doj";
|
||
|
$query_val[] = $now;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* A VERY IMPORTANT PART OF
|
||
|
* OUR SIGNUP SYSTEM IS
|
||
|
* SESSION KEY AND CODE
|
||
|
* WHEN A USER IS LOGGED IN
|
||
|
* IT IS ONLY VALIDATED BY
|
||
|
* ITS SIGNUP KEY AND CODE
|
||
|
*
|
||
|
*/
|
||
|
$sess_key = $this->create_session_key($_COOKIE['PHPSESSID'],$array['password']);
|
||
|
$sess_code = $this->create_session_code();
|
||
|
|
||
|
$query_field[] = "user_session_key";
|
||
|
$query_val[] = $sess_key;
|
||
|
|
||
|
$query_field[] = "user_session_code";
|
||
|
$query_val[] = $sess_code;
|
||
|
|
||
|
$query = "INSERT INTO ".tbl("users")." (";
|
||
|
$total_fields = count($query_field);
|
||
|
|
||
|
//Adding Fields to query
|
||
|
$i = 0;
|
||
|
foreach($query_field as $qfield)
|
||
|
{
|
||
|
$i++;
|
||
|
$query .= $qfield;
|
||
|
if($i<$total_fields)
|
||
|
$query .= ',';
|
||
|
}
|
||
|
|
||
|
$query .= ") VALUES (";
|
||
|
|
||
|
$i = 0;
|
||
|
//Adding Fields Values to query
|
||
|
foreach($query_val as $qval)
|
||
|
{
|
||
|
$i++;
|
||
|
$query .= "'$qval'";
|
||
|
if($i<$total_fields)
|
||
|
$query .= ',';
|
||
|
}
|
||
|
|
||
|
//Finalzing Query
|
||
|
$query .= ")";
|
||
|
|
||
|
$db->Execute($query);
|
||
|
$insert_id = $db->insert_id();
|
||
|
$db->insert(tbl($userquery->dbtbl['user_profile']),array("userid"),array($insert_id));
|
||
|
|
||
|
if(!has_access('admin_access',true) && EMAIL_VERIFICATION && $send_signup_email)
|
||
|
{
|
||
|
global $cbemail;
|
||
|
$tpl = $cbemail->get_template('email_verify_template');
|
||
|
$more_var = array
|
||
|
('{username}' => post('username'),
|
||
|
'{password}' => post('password'),
|
||
|
'{email}' => post('email'),
|
||
|
'{avcode}' => $avcode,
|
||
|
);
|
||
|
if(!is_array($var))
|
||
|
$var = array();
|
||
|
$var = array_merge($more_var,$var);
|
||
|
$subj = $cbemail->replace($tpl['email_template_subject'],$var);
|
||
|
$msg = nl2br($cbemail->replace($tpl['email_template'],$var));
|
||
|
|
||
|
//Now Finally Sending Email
|
||
|
cbmail(array('to'=>post('email'),'from'=>WEBSITE_EMAIL,'subject'=>$subj,'content'=>$msg));
|
||
|
}
|
||
|
elseif(!has_access('admin_access',true) && $send_signup_email)
|
||
|
{
|
||
|
$this->send_welcome_email($insert_id);
|
||
|
}
|
||
|
|
||
|
$log_array = array
|
||
|
('username' => $array['username'],
|
||
|
'userid' => $insert_id,
|
||
|
'userlevel'=> $array['level'],
|
||
|
'useremail'=> $array['email'],
|
||
|
'success'=>'yes',
|
||
|
'details'=> sprintf("%s signed up",$array['username']));
|
||
|
|
||
|
//Login Signup
|
||
|
insert_log('signup',$log_array);
|
||
|
|
||
|
|
||
|
//Adding User has Signup Feed
|
||
|
addFeed(array('action' => 'signup','object_id' => $insert_id,'object'=>'signup','uid'=>$insert_id));
|
||
|
|
||
|
return $insert_id;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|