$msg = new PCPIN_Message($session); _pcpin_loadClass('pcpintpl'); $tpl = new PcpinTpl(); $tpl->setBasedir('./tpl'); $tpl->readTemplatesFromFile('./dummy.tpl'); if ($activation_code != '') { if (isset($activate_email)) { // New email address activation if ($user->_db_getList('email_new != ', 'email_new_activation_code = ' . md5($activation_code), 1)) { // Requested email address found and activation code is OK $user->_db_setObject($user->_db_list[0]); $user->email = $user->email_new; $user->email_new = ''; $user->email_new_date = ''; $user->email_new_activation_code = ''; $user->_db_updateObj($user->id); $message = $l->g('new_email_activated'); if ($session->_db_getList('_s_room_id', '_s_user_id = ' . $user->id, 1)) { // User is online $msg->addMessage(1010, 'n', 0, '', $session->_db_list[0]['_s_room_id'], 0, $user->id); } } else { // Invalid activation code $message = $l->g('invalid_activation_code'); } } elseif (isset($activate_account)) { // New account activation if ($user->_db_getList('id,language_id', 'activated = n', 'activation_code = ' . md5($activation_code), 1)) { // Load language if ($l->id != $user->_db_list[0]['language_id']) { $old_language_id = $l->id;
/** * Log the session out and deactivate it * @param boolean $skip_msg If TRUE, then system messages 105 and 115 will be NOT inserted */ function _s_logOut($skip_msg = false) { if ($this->_s_id != '') { if (!empty($this->_s_user_id)) { _pcpin_loadClass('message'); $msg = new PCPIN_Message($this); if (!empty($this->_s_room_id)) { // Session owner was in a room _pcpin_loadClass('room'); $room = new PCPIN_Room($this); $room->putUser($this->_s_user_id, 0, $skip_msg); } // Delete invitations _pcpin_loadClass('invitation'); $invitation = new PCPIN_Invitation($this); $invitation->deleteUserInvitations($this->_s_user_id); // Delete temporary data _pcpin_loadClass('tmpdata'); $tmpdata = new PCPIN_TmpData($this); $tmpdata->deleteUserRecords($this->_s_user_id); // Update session owner stats _pcpin_loadClass('user'); $user = new PCPIN_User($this); if ($user->_db_loadObj($this->_s_user_id)) { if ($user->is_guest == 'y') { // User was a guest. Delete record. $user->deleteUser($this->_s_user_id); } else { // Update registered user stats $user->time_online = $user->calculateOnlineTime($user->id); $user->last_message_id = $user->last_message_id < $this->_s_last_message_id ? $this->_s_last_message_id : $user->last_message_id; $user->_db_updateObj($user->id); } } if (true !== $skip_msg) { $msg->addMessage(105, 'n', 0, '', 0, 0, $this->_s_user_id); } } // Delete session from database $this->_db_deleteRow($this->_s_id, '_s_id'); } }
$xmlwriter->setHeaderMessage($l->g('email_invalid')); } else { if (!$current_user->checkEmailUnique($profile_user_id, $email)) { // Email address already taken $xmlwriter->setHeaderStatus(1); $xmlwriter->setHeaderMessage($l->g('email_already_taken')); } else { // Email address is free if ($current_user->is_admin !== 'y' && !empty($session->_conf_all['activate_new_emails'])) { // Email address needs to be activated $activation_required = 1; $email_new_activation_code = PCPIN_Common::randomString(18, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'); $profile_user->email_new = $email; $profile_user->email_new_date = date('Y-m-d H:i:s'); $profile_user->email_new_activation_code = md5($email_new_activation_code); $profile_user->_db_updateObj($profile_user->id); $email_body = $l->g('email_email_address_activation'); $email_body = str_replace('[HOURS]', $session->_conf_all['new_email_activation_timeout'], $email_body); $email_body = str_replace('[SENDER]', $session->_conf_all['chat_email_sender_name'], $email_body); $email_body = str_replace('[ACTIVATION_URL]', str_replace(' ', '%20', $session->_conf_all['base_url']) . '?activate_email&activation_code=' . urlencode($email_new_activation_code), $email_body); $email_body = str_replace('[CHAT_NAME]', $session->_conf_all['chat_name'], $email_body); PCPIN_Email::send('"' . $session->_conf_all['chat_email_sender_name'] . '"' . ' <' . $session->_conf_all['chat_email_sender_address'] . '>', $email, $l->g('email_address_activation'), null, null, $email_body); $xmlwriter->setHeaderStatus(0); $xmlwriter->setHeaderMessage(str_replace('[EMAIL]', $email, $l->g('email_address_activation_sent'))); } else { // Save new email address $activation_required = 0; $profile_user->email = $email; $profile_user->email_new = ''; $profile_user->email_new_date = ''; $profile_user->email_new_activation_code = '';
* * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ if (empty($set_language_id) || !is_scalar($set_language_id)) { $set_language_id = $session->_s_language_id; } if (empty($profile_user_id) || $profile_user_id != $current_user->id && $current_user->is_admin !== 'y') { $profile_user_id = $current_user->id; } if ($profile_user_id != $current_user->id) { $profile_user = new PCPIN_User($session); $profile_user->_db_loadObj($profile_user_id); } else { $profile_user =& $current_user; } if (is_object($session) && !empty($profile_user->id)) { $xmlwriter->setHeaderMessage('OK'); $xmlwriter->setHeaderStatus(0); if (!empty($session->_conf_all['allow_language_selection'])) { _pcpin_loadClass('language'); $profile_language = new PCPIN_Language($session); if ($set_language_id == $profile_language->checkLanguage($set_language_id)) { $profile_user->language_id = $set_language_id; $profile_user->_db_updateObj($profile_user->id, 'id'); if ($profile_user_id == $session->_s_user_id) { $session->_s_updateSession($session->_s_id, true, true, $set_language_id); } } } }