Zeile 1 | Zeile 1 |
---|
<?php /** * MyBB 1.4
|
<?php /** * MyBB 1.4
|
* Copyright � 2008 MyBB Group, All Rights Reserved
| * Copyright © 2008 MyBB Group, All Rights Reserved
|
* * Website: http://www.mybboard.net * License: http://www.mybboard.net/about/license *
|
* * Website: http://www.mybboard.net * License: http://www.mybboard.net/about/license *
|
* $Id: user.php 4338 2009-04-03 23:26:21Z Tikitiki $
| * $Id: user.php 4860 2010-04-09 06:31:50Z Huji $
|
*/
// Disallow direct access to this file for security reasons
| */
// Disallow direct access to this file for security reasons
|
Zeile 70 | Zeile 70 |
---|
// Fix bad characters $username = trim($username);
|
// Fix bad characters $username = trim($username);
|
$username = str_replace(array(unicode_chr(160), unicode_chr(173), unicode_chr(0xCA), dec_to_utf8(8238), dec_to_utf8(8237)), array(" ", "-", "", "", ""), $username);
| $username = str_replace(array(unicode_chr(160), unicode_chr(173), unicode_chr(0xCA), dec_to_utf8(8238), dec_to_utf8(8237), dec_to_utf8(8203)), array(" ", "-", "", "", "", ""), $username);
|
// Remove multiple spaces from the username $username = preg_replace("#\s{2,}#", " ", $username);
| // Remove multiple spaces from the username $username = preg_replace("#\s{2,}#", " ", $username);
|
Zeile 170 | Zeile 170 |
---|
$user = &$this->data;
// Always check for the length of the password.
|
$user = &$this->data;
// Always check for the length of the password.
|
if(my_strlen($user['password']) < $mybb->settings['minpasswordlength'])
| if(my_strlen($user['password']) < $mybb->settings['minpasswordlength'] || my_strlen($user['password']) > $mybb->settings['maxpasswordlength'])
|
{ $this->set_error('invalid_password_length', array($mybb->settings['minpasswordlength'], $mybb->settings['maxpasswordlength'])); return false;
| { $this->set_error('invalid_password_length', array($mybb->settings['minpasswordlength'], $mybb->settings['maxpasswordlength'])); return false;
|
Zeile 220 | Zeile 220 |
---|
$user = &$this->data; return true; }
|
$user = &$this->data; return true; }
|
|
|
/** * Verifies if an email address is valid or not. *
| /** * Verifies if an email address is valid or not. *
|
Zeile 229 | Zeile 230 |
---|
{ global $mybb;
|
{ global $mybb;
|
$user = &$this->data;
| $user = &$this->data;
|
// Check if an email address has actually been entered. if(trim($user['email']) == '') {
| // Check if an email address has actually been entered. if(trim($user['email']) == '') {
|
Zeile 247 | Zeile 248 |
---|
// Check banned emails if(is_banned_email($user['email'], true))
|
// Check banned emails if(is_banned_email($user['email'], true))
|
{
| {
|
$this->set_error('banned_email'); return false; }
| $this->set_error('banned_email'); return false; }
|
Zeile 269 | Zeile 270 |
---|
$this->set_error("emails_dont_match"); return false; }
|
$this->set_error("emails_dont_match"); return false; }
|
| return true;
|
}
/**
| }
/**
|
Zeile 291 | Zeile 294 |
---|
{ // Website does not start with http://, let's see if the user forgot. $website = "http://".$website;
|
{ // Website does not start with http://, let's see if the user forgot. $website = "http://".$website;
|
}
return true;
| }
return true;
|
}
/**
| }
/**
|
Zeile 302 | Zeile 305 |
---|
* @return boolean True when valid, false when invalid. */ function verify_icq()
|
* @return boolean True when valid, false when invalid. */ function verify_icq()
|
{
| {
|
$icq = &$this->data['icq'];
if($icq != '' && !is_numeric($icq))
| $icq = &$this->data['icq'];
if($icq != '' && !is_numeric($icq))
|
Zeile 311 | Zeile 314 |
---|
return false; } $icq = intval($icq);
|
return false; } $icq = intval($icq);
|
return true;
| return true;
|
}
/**
| }
/**
|
Zeile 320 | Zeile 323 |
---|
* @return boolean True when valid, false when invalid. */ function verify_msn()
|
* @return boolean True when valid, false when invalid. */ function verify_msn()
|
{
| {
|
$msn = &$this->data['msn'];
if($msn != '' && validate_email_format($msn) == false)
| $msn = &$this->data['msn'];
if($msn != '' && validate_email_format($msn) == false)
|
Zeile 346 | Zeile 349 |
---|
if(!is_array($birthday)) { return true;
|
if(!is_array($birthday)) { return true;
|
}
| }
|
// Sanitize any input we have $birthday['day'] = intval($birthday['day']); $birthday['month'] = intval($birthday['month']); $birthday['year'] = intval($birthday['year']);
// Error if a day and month exists, and the birthday day and range is not in range
|
// Sanitize any input we have $birthday['day'] = intval($birthday['day']); $birthday['month'] = intval($birthday['month']); $birthday['year'] = intval($birthday['year']);
// Error if a day and month exists, and the birthday day and range is not in range
|
if($birthday['day'] && $birthday['month'])
| if($birthday['day'] != 0 || $birthday['month'] != 0)
|
{ if($birthday['day'] < 1 || $birthday['day'] > 31 || $birthday['month'] < 1 || $birthday['month'] > 12 || ($birthday['month'] == 2 && $birthday['day'] > 29)) { $this->set_error("invalid_birthday"); return false; }
|
{ if($birthday['day'] < 1 || $birthday['day'] > 31 || $birthday['month'] < 1 || $birthday['month'] > 12 || ($birthday['month'] == 2 && $birthday['day'] > 29)) { $this->set_error("invalid_birthday"); return false; }
|
| }
|
|
|
// Check if the day actually exists. $months = get_bdays($birthday['year']); if($birthday['day'] > $months[$birthday['month']-1]) { $this->set_error("invalid_birthday"); return false; }
| // Check if the day actually exists. $months = get_bdays($birthday['year']); if($birthday['day'] > $months[$birthday['month']-1]) { $this->set_error("invalid_birthday"); return false;
|
}
// Error if a year exists and the year is out of range if($birthday['year'] != 0 && ($birthday['year'] < (date("Y")-100)) || $birthday['year'] > date("Y")) { $this->set_error("invalid_birthday");
|
}
// Error if a year exists and the year is out of range if($birthday['year'] != 0 && ($birthday['year'] < (date("Y")-100)) || $birthday['year'] > date("Y")) { $this->set_error("invalid_birthday");
|
| return false; } else if($birthday['year'] == date("Y")) { // Error if birth date is in future if($birthday['month'] > date("m") || ($birthday['month'] == date("m") && $bithday['day'] > date("d"))) { $this->set_error("invalid_birthday"); return false; } }
// Error if COPPA is on, and the user hasn't verified their age / under 13 if($mybb->settings['coppa'] == "enabled" && ($birthday['year'] == 0 || !$birthday['year'])) { $this->set_error("invalid_birthday_coppa"); return false; } elseif(($mybb->settings['coppa'] == "deny" || $mybb->settings['coppa'] == "enabled") && $birthday['year'] > (date("Y")-13)) { $this->set_error("invalid_birthday_coppa2");
|
return false; }
| return false; }
|
Zeile 385 | Zeile 409 |
---|
$user['bday'] = $birthday['day']."-".$birthday['month']."-".$birthday['year']; } elseif($birthday['day'] && $birthday['month'])
|
$user['bday'] = $birthday['day']."-".$birthday['month']."-".$birthday['year']; } elseif($birthday['day'] && $birthday['month'])
|
{
| {
|
// If only a day and month are specified, put together a d-m string $user['bday'] = $birthday['day']."-".$birthday['month']."-";
|
// If only a day and month are specified, put together a d-m string $user['bday'] = $birthday['day']."-".$birthday['month']."-";
|
}
| }
|
else
|
else
|
{
| {
|
// No field is specified, so return an empty string for an unknown birthday $user['bday'] = ''; }
|
// No field is specified, so return an empty string for an unknown birthday $user['bday'] = ''; }
|
| return true; } /** * Verifies if the post count field is filled in correctly. * * @return boolean True when valid, false when invalid. */ function verify_postnum() { $user = &$this->data; if($user['postnum'] < 0) { $this->set_error("invalid_postnum"); return false; }
|
return true; }
| return true; }
|
Zeile 434 | Zeile 476 |
---|
$field = "fid{$profilefield['fid']}";
// If the profile field is required, but not filled in, present error.
|
$field = "fid{$profilefield['fid']}";
// If the profile field is required, but not filled in, present error.
|
if(trim($profile_fields[$field]) == "" && $profilefield['required'] == 1 && !defined('IN_ADMINCP'))
| if($type != "multiselect" && $type != "checkbox") { if(trim($profile_fields[$field]) == "" && $profilefield['required'] == 1 && !defined('IN_ADMINCP')) { $this->set_error('missing_required_profile_field', array($profilefield['name'])); } } elseif(($type == "multiselect" || $type == "checkbox") && $profile_fields[$field] == "" && $profilefield['required'] == 1 && !defined('IN_ADMINCP'))
|
{ $this->set_error('missing_required_profile_field', array($profilefield['name'])); }
| { $this->set_error('missing_required_profile_field', array($profilefield['name'])); }
|
Zeile 446 | Zeile 495 |
---|
$expoptions = explode("\n", $thing[1]); $expoptions = array_map('trim', $expoptions); foreach($profile_fields[$field] as $value)
|
$expoptions = explode("\n", $thing[1]); $expoptions = array_map('trim', $expoptions); foreach($profile_fields[$field] as $value)
|
{
| {
|
if(!in_array($value, $expoptions)) { $this->set_error('bad_profile_field_values', array($profilefield['name']));
| if(!in_array($value, $expoptions)) { $this->set_error('bad_profile_field_values', array($profilefield['name']));
|
Zeile 456 | Zeile 505 |
---|
$options .= "\n"; } $options .= $db->escape_string($value);
|
$options .= "\n"; } $options .= $db->escape_string($value);
|
}
| }
|
} elseif($type == "select" || $type == "radio") { $expoptions = explode("\n", $thing[1]); $expoptions = array_map('trim', $expoptions); if(!in_array(htmlspecialchars_uni($profile_fields[$field]), $expoptions) && trim($profile_fields[$field]) != "")
|
} elseif($type == "select" || $type == "radio") { $expoptions = explode("\n", $thing[1]); $expoptions = array_map('trim', $expoptions); if(!in_array(htmlspecialchars_uni($profile_fields[$field]), $expoptions) && trim($profile_fields[$field]) != "")
|
{
| {
|
$this->set_error('bad_profile_field_values', array($profilefield['name'])); }
|
$this->set_error('bad_profile_field_values', array($profilefield['name'])); }
|
| $options = $db->escape_string($profile_fields[$field]); } elseif($type == "textarea") { if($profilefield['maxlength'] > 0 && my_strlen($profile_fields[$field]) > $profilefield['maxlength']) { $this->set_error('max_limit_reached', array($profilefield['name'], $profilefield['maxlength'])); }
|
$options = $db->escape_string($profile_fields[$field]); } else
| $options = $db->escape_string($profile_fields[$field]); } else
|
Zeile 718 | Zeile 776 |
---|
if(!$returnday || !$returnmonth || !$returnyear) { $this->set_error("missing_returndate");
|
if(!$returnday || !$returnmonth || !$returnyear) { $this->set_error("missing_returndate");
|
| return false;
|
}
|
}
|
} }
| // Validate the return date lengths $user['away']['returndate'] = substr($returnday, 0, 2).'-'.substr($returnmonth, 0, 2).'-'.substr($returnyear, 0, 4); } return true; }
|
/** * Verifies if a langage is valid for this user or not. *
| /** * Verifies if a langage is valid for this user or not. *
|
Zeile 730 | Zeile 793 |
---|
function verify_language() { global $lang;
|
function verify_language() { global $lang;
|
|
|
$language = &$this->data['language'];
// An invalid language has been specified?
| $language = &$this->data['language'];
// An invalid language has been specified?
|
Zeile 742 | Zeile 805 |
---|
return true; }
|
return true; }
|
/**
| /**
|
* Verifies if this is coming from a spam bot or not * * @return boolean True when valid, false when invalid.
| * Verifies if this is coming from a spam bot or not * * @return boolean True when valid, false when invalid.
|
Zeile 770 | Zeile 833 |
---|
global $mybb, $plugins;
$user = &$this->data;
|
global $mybb, $plugins;
$user = &$this->data;
|
|
|
// First, grab the old user details if this user exists if($user['uid']) {
| // First, grab the old user details if this user exists if($user['uid']) {
|
Zeile 789 | Zeile 852 |
---|
{ unset($user['username']); }
|
{ unset($user['username']); }
|
}
| }
|
if($this->method == "insert" || array_key_exists('usertitle', $user)) { $this->verify_usertitle();
| if($this->method == "insert" || array_key_exists('usertitle', $user)) { $this->verify_usertitle();
|
Zeile 807 | Zeile 870 |
---|
$this->verify_email(); } if($this->method == "insert" || array_key_exists('website', $user))
|
$this->verify_email(); } if($this->method == "insert" || array_key_exists('website', $user))
|
{
| {
|
$this->verify_website();
|
$this->verify_website();
|
}
| }
|
if($this->method == "insert" || array_key_exists('icq', $user))
|
if($this->method == "insert" || array_key_exists('icq', $user))
|
{
| {
|
$this->verify_icq();
|
$this->verify_icq();
|
}
| }
|
if($this->method == "insert" || array_key_exists('msn', $user))
|
if($this->method == "insert" || array_key_exists('msn', $user))
|
{
| {
|
$this->verify_msn();
|
$this->verify_msn();
|
| } if($this->method == "insert" || array_key_exists('postnum', $user)) { $this->verify_postnum();
|
} if($this->method == "insert" || is_array($user['birthday'])) {
| } if($this->method == "insert" || is_array($user['birthday'])) {
|
Zeile 1160 | Zeile 1227 |
---|
$old_user = get_user($user['uid']);
// If old user has new pmnotice and new user has = yes, keep old value
|
$old_user = get_user($user['uid']);
// If old user has new pmnotice and new user has = yes, keep old value
|
if($old_user['pmnotice'] == "new" && $this->user_update_data['pmnotice'] == 1)
| if($old_user['pmnotice'] == "2" && $this->user_update_data['pmnotice'] == 1)
|
{ unset($this->user_update_data['pmnotice']); }
| { unset($this->user_update_data['pmnotice']); }
|