if ($passwd != $passwd_confirm) { add_info('Ошибка подтверждеия пароля. Пароль не был обновлен.'); } else { $arr['password'] = '******' . addslashes(user_password_hash(user_login(), stripslashes($passwd))) . '")'; } } if (count($arr) > 0) { db_update('user', $arr, '`id`=' . user_id()); if (isset($arr['password'])) { user_authorize(user_login(), stripslashes($passwd)); } } } $u = user_get_by_id(user_id()); $f = new CVCForm(); $f->Init('', 'action=.?action\\=save' . ($redirect != '' ? '&redirect=' . prepare_arg($redirect) . ';backlink=' . prepare_arg($redirect) : '') . ';method=POST;add_check_func=check;'); $f->AppendLabelField('Имя пользователя', '', $u['name']); $f->AppendLabelField('Логин', '', $u['login']); if ($u['email'] != '') { $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">E-Mail</td><td><input id="email" name="email" type="text" class="txt block" value="' . htmlspecialchars($u['email']) . '"></td></tr></table>' . '<button class="block" type="button" onclick="check_frm_email ();" style="margin-top: 4px;">Проверить</button>' . '<div id="email_check_res" style="display: none;"></div>')); } $f->AppendCustomField(array('title' => '<input type="checkbox" class="cb pointer" value="1" onclick="fchpasswd (this);" id="chpasswd" name="chpasswd_val"><span class="pointer" onclick="var e=getElementById (\'chpasswd\'); e.checked=!e.checked; fchpasswd (e);">Сменить пароль</span>', 'src' => '<div id="passwd_block" class="invisible">' . '<table class="clear" width="100%"><tr><td width="85">Новый пароль</td><td style="padding-bottom: 2px;"><input type="password" class="txt block" id="passwd" name="passwd" onkeyup="check_passwd ();" onchange="check_passwd ();"></td></tr>' . '<tr><td>Подтверждение</td><td style="padding-top: 2px;"><input type="password" class="txt block" id="passwd_confirm" name="passwd_confirm" onkeyup="check_passwd ();" onchange="check_passwd ();"></td></tr>' . '</table><div id="passwd_msg"></div></div>')); ?> <script language="JavaScript" type="text/JavaScript"> var chp=false; function check_passwd () { var passwd = getElementById ('passwd').value; var confirm = getElementById ('passwd_confirm').value; var widget = getElementById ('passwd_msg');
function Problem_GenerateEditorForm($data = array(), $act = 'create', $backlink = '') { global $INFORMATICS_ProblemSettingsFields, $pageid, $id, $promtadd; $fields = $INFORMATICS_ProblemSettingsFields; $action = prepare_arg('.?page=prbmanager&action=' . $act . ($id != '' ? '&id=' . $id : '') . '&' . ($pageid != '' ? 'pageid=' . $pageid : '') . ($promtadd != '' ? '&promtadd=' . $promtadd : '') . ($backlink != '' ? '&redirect=' . urlencode($backlink) : '')); $desc = $data['desc']; if ($desc == '') { $tpl = manage_template_by_name('Олимпиады / Informatics / Заготовка условия задачи'); $desc = $tpl->GetText(); } $iframe = iframe_editor('desc', $desc, $backlink != '', 'ProblemSettings', $this->gateway->content_settings['iframe']); $tmp = handler_get_list('ProblemSettings'); $arr = $tmp['onsubmit']; $onsubmit = ''; for ($i = 0; $i < count($arr); $i++) { $onsubmit .= ' ' . handler_build_callback($arr[$i]); } $form = new CVCForm(); $form->Init('ProblemSettings', 'method=POST;enctype=multipart/form-data;action=' . $action . ';titlewidth=160;caption=' . ($act == 'create' ? 'Создать' : 'Сохранить') . ';onsubmit=' . prepare_arg($onsubmit) . ';backlink=' . prepare_arg($backlink) . ';'); for ($i = 0, $n = count($fields); $i < $n; $i++) { $f = $fields[$i]; if ($f['action'] != '' && $f['action'] != $act) { continue; } $v = $data[$f['name']]; if (strtolower($f['type']) == 'custom') { $v = array('src' => $f['src'], 'value' => $v, 'check_value' => $f['check_value']); } $form->AppendField($f['title'], $f['postname'], $f['type'], $v, array('important' => $f['important'])); } if ($act != 'create') { $form->AppendField('Состояние', '', 'CUSTOM', array('src' => $this->Template('problems.state', array('data' => $data)))); } if (isset($promtadd)) { $form->AppendCheckBoxField('Добавить на контест', 'addToContest', false); } $form->AppendCustomField(array('src' => '<center><b>Условие задачи</b>' . $iframe . '</center>')); return $form; }
?> ) { alert ('Пароль создаваемого пользователя может содержать не более <?php echo opt_get('max_user_passwd_len'); ?> символов.'); return false; } return true; } </script> <?php global $action; $f = new CVCForm(); $f->Init('', 'action=.?id\\=' . $id . '&hash\\=' . $hash . '&action\\=save;method=POST;add_check_func=check;caption=Сменить пароль;'); $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">Пароль</td><td style="padding: 2px;"><input type="password" class="txt block" id="passwd" name="passwd" onkeyup="check_passwd ();" onchange="check_passwd ();"></td></tr>' . '<tr><td>Подтверждение</td><td style="padding: 2px;"><input type="password" class="txt block" id="passwd_confirm" name="passwd_confirm" onkeyup="check_passwd ();" onchange="check_passwd ();"><div id="passwd_msg"></div></td></tr>' . '</table>')); $draw = true; if ($action == 'save') { global $passwd, $passwd_confirm; $passwd = stripslashes($passwd); $passwd_confirm = stripslashes($passwd_confirm); if ($passwd != $passwd_confirm) { add_info('Ошибка подьверждения пароля.'); } else { $draw = false; unset($s['restore_hash']); unset($s['restore_timestamp']); db_update('user', array('password' => 'MD5(' . db_string(user_password_hash($r['login'], $passwd)) . ')', 'settings' => db_string(serialize($s))), '`id`=' . $r['id']); add_info('Ваш пароль был успешно поменян.'); }
if ($_SESSION['CAPTCHA_Keystring'] == '' || strtolower($keystring) != $_SESSION['CAPTCHA_Keystring']) { add_info('Вы не прошли тест Тьюринга на подтверждение того, что вы не бот.'); return false; } if ($email == config_get('null-email')) { add_info('Недопустимый адрес электронной почты.'); return false; } if (!$agree) { add_info('Вы не согласны с правилами этого ресурса, так как же мы Вас здесь зарегестрируем?'); return false; } return user_create_received(false); } $f = new CVCForm(); $f->Init('', 'action=.?action\\=register' . ($redirect != '' ? '&redirect\\=' . prepare_arg($redirect) : '') . ';method=POST;add_check_func=check;caption=Зарегистрироваться;backlink=' . prepare_arg($redirect)); $rn = new CVCCaptcha(); $rn->Init(); // Fields $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">Код с картинки</td><td style="padding: 0 2px;"><div>' . $rn->OuterHTML() . '</div><input type="text" class="txt block" name="keystring" value=""></td></tr></table>')); $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">Ваше имя</td><td style="padding: 0 2px;"><input type="text" class="txt block" id="name" name="name" value="' . htmlspecialchars(stripslashes($name)) . '"></td></tr></table>')); $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">Логин</td><td style="padding: 0 2px;"><input type="text" class="txt block" id="login" name="login" value="' . htmlspecialchars(stripslashes($login)) . '"></td></tr>' . '</table>' . '<button class="block" type="button" onclick="check_login ();" style="margin-top: 4px;">Проверить</button>' . '<div id="login_check_res" style="display: none;"></div>')); $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">Пароль</td><td style="padding: 2px;"><input type="password" class="txt block" id="passwd" name="passwd" onkeyup="check_passwd ();" onchange="check_passwd ();"></td></tr>' . '<tr><td>Подтверждение</td><td style="padding: 2px;"><input type="password" class="txt block" id="passwd_confirm" name="passwd_confirm" onkeyup="check_passwd ();" onchange="check_passwd ();"><div id="passwd_msg"></div></td></tr>' . '</table>')); $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">E-Mail</td><td style="padding: 0 2px;"><input type="text" class="txt block" id="email" name="email" value="' . htmlspecialchars(stripslashes($email)) . '"></td></tr></table>' . '<button class="block" type="button" onclick="check_frm_email ();" style="margin-top: 4px;">Проверить</button>' . '<div id="email_check_res" style="display: none;"></div>')); $f->AppendCUstomField(array('src' => '<center><input type="checkbox" class="cb" value="1" name="agree" id="agree">Я согласен с <a href="' . config_get('document-root') . '/articles/rules" target="blank">правилами</a> этого ресурса</center>')); if ($action == 'register') { if (!register()) { formo('title=Форма регистрации пользователя'); $f->Draw(); formc(); } else {
return false; } $s = unserialize($r['settings']); if ($s['restore_timestamp'] && time() - $s['restore_timestamp'] < config_get('restore-timeout')) { add_info('Вы не можете просить восстановку пароля так часто'); return false; } $s['restore_hash'] = $hash; $s['restore_timestamp'] = time(); db_update('user', array('settings' => db_string(serialize($s))), '`id`=' . $r['id']); $link = config_get('http-document-root') . '/login/restore/confirm/?id=' . $r['id'] . '&hash=' . $hash; sendmail_tpl(stripslashes($email), 'Восстановление пароля в системе ' . config_get('site-name'), 'restore', array('login' => stripslashes($login), 'email' => stripslashes($email), 'link' => $link)); return true; } $f = new CVCForm(); $f->Init('', 'action=.?action\\=send' . ($redirect != '' ? '&redirect\\=' . prepare_arg($redirect) : '') . ';method=POST;add_check_func=check;caption=Послать заявку на восстановление;backlink=' . prepare_arg($redirect)); $rn = new CVCCaptcha(); $rn->Init(); $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">Код с картинки</td><td style="padding: 0 2px;"><div>' . $rn->OuterHTML() . '</div><input type="text" class="txt block" name="keystring" value=""></td></tr></table>')); $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">Логин</td><td style="padding: 0 2px;"><input type="text" class="txt block" id="login" name="login" value="' . htmlspecialchars(stripslashes($login)) . '"></td></tr></table>')); $f->AppendCustomField(array('src' => '<table class="clear" width="100%"><tr><td width="30%">E-Mail</td><td style="padding: 0 2px;"><input type="text" class="txt block" id="email" name="email" value="' . htmlspecialchars(stripslashes($email)) . '"></td></tr></table>')); if ($action == 'send') { if (!send()) { formo('title=Форма восстановления пароля'); $f->Draw(); formc(); } else { add_info('Письмо с подробной информации о дальнейших действиях для смены пароля было выслано по электронному адресу ' . $email . ($redirect != '' ? '<br><br><a href="' . htmlspecialchars($redirect) . '">Вернуться в предыдущий раздел</a>' : '')); } } else { formo('title=Форма восстановления пароля');