You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
947 B
30 lines
947 B
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
require_once 'HTML/QuickForm/Rule.php';
|
|
/**
|
|
* QuickForm rule to check if a username is available
|
|
*/
|
|
class HTML_QuickForm_Rule_UsernameAvailable extends HTML_QuickForm_Rule
|
|
{
|
|
/**
|
|
* Function to check if a username is available
|
|
* @see HTML_QuickForm_Rule
|
|
* @param string $username Wanted username
|
|
* @param string $current_username
|
|
* @return boolean True if username is available
|
|
*/
|
|
function validate($username, $current_username = null) {
|
|
$user_table = Database::get_main_table(TABLE_MAIN_USER);
|
|
$username = Database::escape_string($username);
|
|
$current_username = Database::escape_string($current_username);
|
|
|
|
$sql = "SELECT * FROM $user_table WHERE username = '$username'";
|
|
if (!is_null($current_username)) {
|
|
$sql .= " AND username != '$current_username'";
|
|
}
|
|
$res = Database::query($sql);
|
|
$number = Database::num_rows($res);
|
|
return $number == 0;
|
|
}
|
|
} |