function mo_add_user($username, $password, $email, $nickname = '') { if (!filter_var($email, FILTER_VALIDATE_EMAIL) || strlen($username) > 32 || strlen($username) < 3 || strlen($password) < 6 || strlen($password) > 50) { return False; } global $db; $password = password_hash($password, PASSWORD_DEFAULT, ['cost' => CRYPT_COST]); $ip = mo_get_user_ip(); $sql = 'INSERT INTO `mo_user` (`username`, `password`, `email`, `nickname`, `reg_time`, `reg_ip`) VALUES ( ?, ?, ?, ?, CURRENT_TIMESTAMP, ?)'; $db->prepare($sql); $db->bind('ssssi', $username, $password, $email, $nickname, $ip); $db->execute(); $uid = $db->getInsID(); if ($uid == 0) { return False; } $sql = 'INSERT INTO `mo_user_info` (`uid`, `info`, `preference`) VALUES (\'' . $uid . '\', \'a:0:{}\', \'a:0:{}\')'; $db->prepare($sql); $db->execute(); $sql = 'INSERT INTO `mo_user_record` (`uid`) VALUES (\'' . $uid . '\')'; $db->prepare($sql); $db->execute(); mo_write_note("A new user (ID = {$uid}) has been added."); return $uid; }
function mo_log_user($detail, $uid = 0) { global $db; if (!$uid) { global $user; $uid = $user->getUID(); } $sql = 'INSERT INTO `mo_log_user` (`uid`, `ip`, `time`, `detail`) VALUES (?, ?, CURRENT_TIMESTAMP, ?)'; $db->prepare($sql); $db->bind('iis', $uid, mo_get_user_ip(), $detail); $db->execute(); }
function mo_add_new_discussion($category, $title, $content, $parent = 0, $uid = 0, $extra = array()) { global $user; if (!$uid) { $uid = $user->getUID(); } if (!($uid && ($parent || $title) && $content)) { return False; } global $db; $sql = 'INSERT INTO `mo_discussion` (`uid`, `parent`, `title`, `category`, `content`, `post_time`, `extra`, `ip`) VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP, ?, ?)'; $db->prepare($sql); $db->bind('iisissi', $uid, $parent, $title, $category, $content, serialize($extra), mo_get_user_ip()); $db->execute(); $did = $db->getInsID(); mo_write_note('A new discussion has been added.'); mo_log_user("User added a new discussion (DID = {$did})."); return $did; }