本文整理汇总了PHP中Validation::addRule方法的典型用法代码示例。如果您正苦于以下问题:PHP Validation::addRule方法的具体用法?PHP Validation::addRule怎么用?PHP Validation::addRule使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Validation
的用法示例。
在下文中一共展示了Validation::addRule方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validate
/**
* Validates POSTed data
* @return array List of errors in the POSTed data
*/
public function validate()
{
$post = Http::getParameter('POST');
$errors = array();
// create payment ruleset
if (!array_key_exists('Payment', $post)) {
$errors[] = 'No payment submitted';
return $errors;
}
$v = new Validation();
$v->addRule('Payment.invoice_id', Validation::NOT_EMPTY, 'Invoice ID must not be empty');
$v->addRule('Payment.invoice_id', Validation::NUMERIC, 'Invoice ID must be numeric');
$v->addRule('Payment.billed', Validation::NOT_EMPTY, "Payment date must not be empty");
$v->addRule('Payment.billed', '~\\d{8}~', "Payment date must have a valid date");
$v->addRule('Payment.type', Validation::NOT_EMPTY, 'Payment type must not be empty');
$v->addRule('Payment.total', Validation::NOT_EMPTY, 'Payment total must not be empty');
$v->addRule('Payment.total', Validation::NUMERIC, 'Payment total must be numeric');
$errors = $v->validateList(Set::flatten($post));
// return
return $errors;
}
示例2: check
############################################################################################
case 'register':
$logs = check(strval($_POST['logs']));
$pars = check(strval($_POST['pars']));
$pars2 = check(strval($_POST['pars2']));
$provkod = check(strtolower($_POST['provkod']));
$invite = !empty($config['invite']) ? check(strval($_POST['invite'])) : '';
$meil = !empty($config['regmail']) ? strtolower(check(strval($_POST['meil']))) : '';
$domain = !empty($config['regmail']) ? utf_substr(strrchr($meil, '@'), 1) : '';
$gender = $_POST['gender'] == 1 ? 1 : 2;
$registration_key = '';
$_SESSION['reglogs'] = $logs;
$_SESSION['regmeil'] = $meil;
$_SESSION['gender'] = $gender;
$validation = new Validation();
$validation->addRule('equal', array($provkod, $_SESSION['protect']), 'Проверочное число не совпало с данными на картинке!')->addRule('regex', array($logs, '|^[a-z0-9\\-]+$|i'), 'Недопустимые символы в логине. Разрешены знаки латинского алфавита, цифры и дефис!', true)->addRule('regex', array($pars, '|^[a-z0-9\\-]+$|i'), 'Недопустимые символы в пароле. Разрешены знаки латинского алфавита, цифры и дефис!', true)->addRule('email', $meil, 'Вы ввели неверный адрес e-mail, необходим формат name@site.domen!', $config['regmail'])->addRule('string', $invite, 'Слишком длинный или короткий пригласительный ключ!', $config['invite'], 15, 20)->addRule('string', $logs, 'Слишком длинный или короткий логин!', true, 3, 20)->addRule('string', $pars, 'Слишком длинный или короткий пароль!', true, 6, 20)->addRule('equal', array($pars, $pars2), 'Ошибка! Введенные пароли отличаются друг от друга!')->addRule('not_equal', array($logs, $pars), 'Пароль и логин должны отличаться друг от друга!');
if (ctype_digit($pars)) {
$validation->addError('Запрещен пароль состоящий только из цифр, используйте буквы!');
}
if (substr_count($logs, '-') > 2) {
$validation->addError('Запрещено использовать в логине слишком много дефисов!');
}
if (!empty($logs)) {
// Проверка логина или ника на существование
$reglogin = DB::run()->querySingle("SELECT `users_id` FROM `users` WHERE LOWER(`users_login`)=? OR LOWER(`users_nickname`)=? LIMIT 1;", array(strtolower($logs), strtolower($logs)));
$validation->addRule('empty', $reglogin, 'Пользователь с данным логином или ником уже зарегистрирован!');
// Проверка логина в черном списке
$blacklogin = DB::run()->querySingle("SELECT `black_id` FROM `blacklist` WHERE `black_type`=? AND `black_value`=? LIMIT 1;", array(2, strtolower($logs)));
$validation->addRule('empty', $blacklogin, 'Выбранный вами логин занесен в черный список!');
}
if (!empty($config['regmail']) && !empty($meil)) {
示例3: check
## Действие при оплате ##
############################################################################################
############################################################################################
## Действие при оплате ##
############################################################################################
case 'add':
$config['newtitle'] = 'Оплата рекламы';
if (is_user()) {
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$site = isset($_POST['site']) ? check($_POST['site']) : '';
$name = isset($_POST['name']) ? check($_POST['name']) : '';
$color = isset($_POST['color']) ? check($_POST['color']) : '';
$bold = empty($_POST['bold']) ? 0 : 1;
$provkod = isset($_POST['provkod']) ? check(strtolower($_POST['provkod'])) : '';
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('max', array($udata['users_point'], 50), 'Для покупки рекламы вам необходимо набрать ' . points(50) . '!')->addRule('equal', array($provkod, $_SESSION['protect']), 'Проверочное число не совпало с данными на картинке!')->addRule('regex', array($site, '|^http://([а-яa-z0-9_\\-\\.])+(\\.([а-яa-z0-9\\/\\-?_=#])+)+$|iu'), 'Недопустимый адрес сайта!. Разрешены символы [а-яa-z0-9_-.?=#/]!', true)->addRule('string', $site, 'Слишком длинный или короткий адрес ссылки!', true, 5, 50)->addRule('string', $name, 'Слишком длинное или короткое название ссылки!', true, 5, 35)->addRule('regex', array($color, '|^#+[A-f0-9]{6}$|'), 'Недопустимый формат цвета ссылки! (пример #ff0000)', false);
if ($validation->run()) {
DBM::run()->delete('rekuser', array('rek_time' => array('<', SITETIME)));
$total = DBM::run()->count('rekuser', array('rek_time' => array('>', SITETIME)));
if ($total < $config['rekusertotal']) {
$rekuser = DBM::run()->selectFirst('rekuser', array('rek_user' => $log));
if (empty($rekuser)) {
$price = $config['rekuserprice'];
if (!empty($color)) {
$price = $price + $config['rekuseroptprice'];
}
if (!empty($bold)) {
$price = $price + $config['rekuseroptprice'];
}
if ($udata['users_money'] >= $price) {
$rek = DBM::run()->insert('rekuser', array('rek_site' => $site, 'rek_name' => $name, 'rek_color' => $color, 'rek_bold' => $bold, 'rek_user' => $log, 'rek_time' => SITETIME + $config['rekusertime'] * 3600));
示例4: check
}
echo '<img src="/images/img/back.gif" alt="image" /> <a href="account.php">Вернуться</a><br />';
break;
############################################################################################
## Изменение пароля ##
############################################################################################
############################################################################################
## Изменение пароля ##
############################################################################################
case 'editpass':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$newpass = isset($_POST['newpass']) ? check($_POST['newpass']) : '';
$newpass2 = isset($_POST['newpass2']) ? check($_POST['newpass2']) : '';
$oldpass = isset($_POST['oldpass']) ? check($_POST['oldpass']) : '';
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('equal', array(md5(md5($oldpass)), $udata['users_pass']), 'Введенный пароль не совпадает с данными в профиле!')->addRule('equal', array($newpass, $newpass2), 'Новые пароли не одинаковые!')->addRule('string', $newpass, 'Слишком длинный или короткий новый пароль!', true, 6, 20)->addRule('regex', array($newpass, '|^[a-z0-9\\-]+$|i'), 'Недопустимые символы в пароле, разрешены знаки латинского алфавита, цифры и дефис!', true)->addRule('not_equal', array($log, $newpass), 'Пароль и логин должны отличаться друг от друга!');
if (ctype_digit($newpass)) {
$validation->addError('Запрещен пароль состоящий только из цифр, используйте буквы!');
}
if ($validation->run()) {
DB::run()->query("UPDATE `users` SET `users_pass`=? WHERE `users_login`=? LIMIT 1;", array(md5(md5($newpass)), $log));
if (!empty($udata['users_email'])) {
sendMail($udata['users_email'], 'Изменение пароля на сайте ' . $config['title'], nl2br("Здравствуйте, " . nickname($log) . " \nВами была произведена операция по изменению пароля \n\nВаш новый пароль: " . $newpass . " \nСохраните его в надежном месте \n\nДанные инициализации: \nIP: " . $ip . " \nБраузер: " . $brow . " \nВремя: " . date('j.m.y / H:i', SITETIME)));
}
unset($_SESSION['log'], $_SESSION['par']);
notice('Пароль успешно изменен!');
redirect("login.php");
} else {
show_error($validation->getErrors());
}
echo '<img src="/images/img/back.gif" alt="image" /> <a href="account.php">Вернуться</a><br />';
示例5: redirect
redirect("index.php");
}
break;
############################################################################################
## Добавление сообщения ##
############################################################################################
############################################################################################
## Добавление сообщения ##
############################################################################################
case 'add':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$msg = isset($_POST['msg']) ? check($_POST['msg']) : '';
if (is_user()) {
$topics = DB::run()->queryFetch("SELECT `topics`.*, `forums`.`forums_parent` FROM `topics` LEFT JOIN `forums` ON `topics`.`topics_forums_id`=`forums`.`forums_id` WHERE `topics`.`topics_id`=? LIMIT 1;", array($tid));
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('not_empty', $topics, 'Выбранная вами тема не существует, возможно она была удалена!')->addRule('empty', $topics['topics_closed'], 'Запрещено писать в закрытую тему!')->addRule('equal', array(is_quarantine($log), true), 'Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!')->addRule('equal', array(is_flood($log), true), 'Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' сек!')->addRule('string', $msg, 'Слишком длинное или короткое сообщение!', true, 5, $config['forumtextlength']);
// Проверка сообщения на схожесть
$post = DB::run()->queryFetch("SELECT * FROM `posts` WHERE `posts_topics_id`=? ORDER BY `posts_id` DESC LIMIT 1;", array($tid));
$validation->addRule('not_equal', array($msg, $post['posts_text']), 'Ваше сообщение повторяет предыдущий пост!');
if ($validation->run()) {
$msg = antimat($msg);
if ($log == $post['posts_user'] && $post['posts_time'] + 600 > SITETIME && utf_strlen($msg) + utf_strlen($post['posts_text']) <= $config['forumtextlength']) {
$newpost = $post['posts_text'] . "\n\n" . '[i][size=1]Добавлено через ' . maketime(SITETIME - $post['posts_time']) . ' сек.[/size][/i]' . "\n" . $msg;
DB::run()->query("UPDATE `posts` SET `posts_text`=? WHERE `posts_id`=? LIMIT 1;", array($newpost, $post['posts_id']));
$lastid = $post['posts_id'];
} else {
DB::run()->query("INSERT INTO `posts` (`posts_topics_id`, `posts_forums_id`, `posts_user`, `posts_text`, `posts_time`, `posts_ip`, `posts_brow`) VALUES (?, ?, ?, ?, ?, ?, ?);", array($tid, $topics['topics_forums_id'], $log, $msg, SITETIME, $ip, $brow));
$lastid = DB::run()->lastInsertId();
DB::run()->query("UPDATE `users` SET `users_allforum`=`users_allforum`+1, `users_point`=`users_point`+1, `users_money`=`users_money`+5 WHERE `users_login`=? LIMIT 1;", array($log));
DB::run()->query("UPDATE `topics` SET `topics_posts`=`topics_posts`+1, `topics_last_user`=?, `topics_last_time`=? WHERE `topics_id`=?;", array($log, SITETIME, $tid));
DB::run()->query("UPDATE `forums` SET `forums_posts`=`forums_posts`+1, `forums_last_id`=?, `forums_last_themes`=?, `forums_last_user`=?, `forums_last_time`=? WHERE `forums_id`=?;", array($tid, $topics['topics_title'], $log, SITETIME, $topics['topics_forums_id']));
示例6: check
echo '<img src="/images/img/back.gif" alt="image" /> <a href="lostpassword.php">Вернуться</a><br />';
break;
############################################################################################
## Ответ на секретный вопрос ##
############################################################################################
############################################################################################
## Ответ на секретный вопрос ##
############################################################################################
case 'answer':
$uz = check(strval($_POST['uz']));
$answer = check(strval($_POST['answer']));
$provkod = check($_POST['provkod']);
$user = DB::run()->queryFetch("SELECT * FROM `users` WHERE `users_login`=? LIMIT 1;", array($uz));
if (!empty($user)) {
$validation = new Validation();
$validation->addRule('equal', array($provkod, $_SESSION['protect']), 'Проверочное число не совпало с данными на картинке!')->addRule('not_empty', $answer, 'Не введен ответ на секретный вопрос для восстановления!')->addRule('not_empty', $user['users_secquest'], 'У данного пользователя не установлен секретный вопрос!')->addRule('equal', array(md5(md5($answer)), $user['users_secanswer']), 'Ответ на секретный вопрос не совпадает с данными в профиле!');
if ($validation->run()) {
$newpass = generate_password();
$mdnewpas = md5(md5($newpass));
DB::run()->query("UPDATE `users` SET `users_pass`=?, `users_keypasswd`=?, `users_timepasswd`=? WHERE `users_login`=?;", array($mdnewpas, '', 0, $uz));
echo '<b>Пароль успешно восстановлен!</b><br />';
echo 'Ваши новые данные для входа на сайт<br /><br />';
echo 'Логин: <b>' . $user['users_login'] . '</b><br />';
echo 'Пароль: <b>' . $newpass . '</b><br /><br />';
echo '<img src="/images/img/open.gif" alt="image" /> ';
echo '<b><a href="/input.php?login=' . $user['users_login'] . '&pass=' . $newpass . '">Вход на сайт</a></b><br /><br />';
echo 'Запомните и постарайтесь больше не забывать данные, а лучше сделайте сразу закладку на наш сайт ' . $config['home'] . '/input.php?login=' . $user['users_login'] . '&pass=' . $newpass . '<br /><br />';
echo 'Пароль вы сможете поменять в своем профиле<br /><br />';
} else {
show_error($validation->getErrors());
}
示例7: check
############################################################################################
## Изменение ##
############################################################################################
case 'edit':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$name = isset($_POST['name']) ? check($_POST['name']) : '';
$country = isset($_POST['country']) ? check($_POST['country']) : '';
$city = isset($_POST['city']) ? check($_POST['city']) : '';
$icq = !empty($_POST['icq']) ? check(str_replace('-', '', $_POST['icq'])) : '';
$skype = isset($_POST['skype']) ? check(strtolower($_POST['skype'])) : '';
$site = isset($_POST['site']) ? check($_POST['site']) : '';
$birthday = isset($_POST['birthday']) ? check($_POST['birthday']) : '';
$gender = isset($_POST['gender']) ? intval($_POST['gender']) : 0;
$info = isset($_POST['info']) ? check($_POST['info']) : '';
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('regex', array($site, '#^http://([а-яa-z0-9_\\-\\.])+(\\.([а-яa-z0-9\\/])+)+$#u'), 'Недопустимый адрес сайта, необходим формата http://my_site.domen!', false)->addRule('regex', array($birthday, '#^[0-9]{2}+\\.[0-9]{2}+\\.[0-9]{4}$#'), 'Недопустимый формат даты рождения, необходим формат дд.мм.гггг!', false)->addRule('regex', array($icq, '#^[0-9]{5,10}$#'), 'Недопустимый формат ICQ, только цифры от 5 до 10 символов!', false)->addRule('regex', array($skype, '#^[a-z]{1}[0-9a-z\\_\\.\\-]{5,31}$#'), 'Недопустимый формат Skype, только латинские символы от 6 до 32!', false)->addRule('numeric', $gender, 'Вы не указали ваш пол!', true, 1, 2)->addRule('string', $info, 'Слишком большая информация о себе, не более 1000 символов!', true, 0, 1000);
if ($validation->run()) {
$name = utf_substr($name, 0, 20);
$country = utf_substr($country, 0, 30);
$city = utf_substr($city, 0, 50);
DB::run()->query("UPDATE `users` SET `users_name`=?, `users_country`=?, `users_city`=?, `users_icq`=?, `users_skype`=?, `users_site`=?, `users_birthday`=?, `users_gender`=?, `users_info`=? WHERE `users_login`=? LIMIT 1;", array($name, $country, $city, $icq, $skype, $site, $birthday, $gender, $info, $log));
notice('Ваш профиль успешно изменен!');
redirect("profile.php");
} else {
show_error($validation->getErrors());
}
echo '<img src="/images/img/back.gif" alt="image" /> <a href="profile.php">Вернуться</a><br />';
break;
default:
redirect("profile.php");
}
示例8: find_configuration_errors
/**
* Returns configuration errors
* @param array $config
* @return array
*/
function find_configuration_errors($config)
{
// create ruleset
$v = new Validation();
//$v->addRule('base_url', Validation::NOT_EMPTY, 'Base URL must not be empty');
//$v->addRule('base_url', Validation::URL, 'Base URL must be a valid URL');
$v->addRule('db.host', Validation::NOT_EMPTY, 'Database Host must not be empty');
$v->addRule('db.host', Validation::STRING, 'Database Host must be a string');
$v->addRule('db.name', Validation::NOT_EMPTY, 'Database Name must not be empty');
$v->addRule('db.name', Validation::STRING, 'Database Name must be a string');
$v->addRule('db.username', Validation::NOT_EMPTY, 'Database Username must not be empty');
$v->addRule('db.username', Validation::STRING, 'Database Username must be a string');
//$v->addRule('db.password', Validation::NOT_EMPTY, 'Database Password must not be empty');
$v->addRule('db.password', Validation::STRING, 'Database Password must be a string');
$v->addRule('user.name', Validation::NOT_EMPTY, 'User Name must not be empty');
$v->addRule('user.name', Validation::STRING, 'User Name must be a string');
$v->addRule('user.email', Validation::NOT_EMPTY, 'E-mail must not be empty');
$v->addRule('user.email', Validation::STRING, 'E-mail must be a string');
$v->addRule('user.email', Validation::EMAIL, 'E-mail must be a valid e-mail address');
$v->addRule('user.address1', Validation::STRING, 'Address 1 must be a string');
$v->addRule('user.address2', Validation::STRING, 'Address 2 must be a string');
$v->addRule('user.city', Validation::STRING, 'City must be a string');
$v->addRule('user.state', Validation::STRING, 'State/Province must be a string');
$v->addRule('user.zip', Validation::STRING, 'Postal Code must be a string');
$v->addRule('user.country', Validation::STRING, 'Country must be a string');
$v->addRule('default_invoice_theme', Validation::STRING, 'Default Invoice Theme must be a string');
$v->addRule('default_receipt_theme', Validation::STRING, 'Default Receipt Theme must be a string');
$v->addRule('default_wage', Validation::NUMERIC, 'Default Wage must be a decimal number');
// get errors
$errors = $v->validateList(Set::flatten($config));
// test database connnection
try {
get_database($config);
} catch (Exception $e) {
$errors[] = 'Could not connect to database with the given database information';
}
// return
return Set::flatten($errors);
}
示例9: check
echo '<img src="/images/img/back.gif" alt="image" /> <a href="news.php">Вернуться</a><br />';
break;
############################################################################################
## Добавление новости ##
############################################################################################
############################################################################################
## Добавление новости ##
############################################################################################
case 'addnews':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$msg = isset($_POST['msg']) ? check($_POST['msg']) : '';
$title = isset($_POST['title']) ? check($_POST['title']) : '';
$top = empty($_POST['top']) ? 0 : 1;
$closed = empty($_POST['closed']) ? 0 : 1;
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('string', $title, 'Слишком длинный или короткий заголовок события!', true, 5, 50)->addRule('string', $msg, 'Слишком длинный или короткий текст события!', true, 5, 10000);
if ($validation->run()) {
DB::run()->query("INSERT INTO `news` (`news_title`, `news_text`, `news_author`, `news_time`, `news_comments`, `news_closed`, `news_top`) VALUES (?, ?, ?, ?, ?, ?, ?);", array($title, $msg, $log, SITETIME, 0, $closed, $top));
$lastid = DB::run()->lastInsertId();
// Выводим на главную если там нет новостей
if (!empty($top) && empty($config['lastnews'])) {
DB::run()->query("UPDATE `setting` SET `setting_value`=? WHERE `setting_name`=?;", array(1, 'lastnews'));
save_setting();
}
// ---------------------------- Загрузка изображения -------------------------------//
if (is_uploaded_file($_FILES['image']['tmp_name'])) {
$handle = upload_image($_FILES['image'], $config['filesize'], $config['fileupfoto'], $lastid);
if ($handle) {
$handle->process(BASEDIR . '/upload/news/');
if ($handle->processed) {
DB::run()->query("UPDATE `news` SET `news_image`=? WHERE `news_id`=? LIMIT 1;", array($handle->file_dst_name, $lastid));
示例10: check
show_error('Ошибка! Данная страница доступна только администрации!');
}
echo '<img src="/images/img/back.gif" alt="Назад" /> <a href="user.php?uz=' . $uz . '">Вернуться</a><br />';
break;
############################################################################################
## Изменене заметки ##
############################################################################################
############################################################################################
## Изменене заметки ##
############################################################################################
case 'editnote':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$note = isset($_POST['note']) ? check($_POST['note']) : '';
if (is_admin()) {
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('not_empty', user($uz), 'Пользователя с данным логином не существует!')->addRule('string', $note, 'Слишком большая заметка, не более 1000 символов!', true, 0, 1000);
if ($validation->run()) {
DB::run()->query("INSERT INTO `note` (`note_user`, `note_text`, `note_edit`, `note_time`) VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE `note_text`=?, `note_edit`=?, `note_time`=?;", array($uz, $note, $log, SITETIME, $note, $log, SITETIME));
notice('Заметка успешно сохранена!');
redirect("user.php?uz={$uz}");
} else {
show_error($validation->getErrors());
}
} else {
show_error('Ошибка! Данная страница доступна только администрации!');
}
echo '<img src="/images/img/back.gif" alt="Назад" /> <a href="user.php?act=note&uz=' . $uz . '">Вернуться</a><br />';
break;
default:
redirect('user.php');
}
示例11: redirect
redirect("notice.php?act=edit&id={$id}");
} else {
show_error($validation->getErrors());
}
render('includes/back', array('link' => 'notice.php?act=edit&id=' . $id, 'title' => 'Вернуться'));
break;
/**
* Удаление шаблона
*/
/**
* Удаление шаблона
*/
case 'del':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$notice = DBM::run()->selectFirst('notice', array('notice_id' => $id));
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('not_empty', $notice, 'Не найден шаблон для удаления!')->addRule('empty', $notice['notice_protect'], 'Запрещено удалять защищенный шаблон!');
if ($validation->run()) {
$delete = DBM::run()->delete('notice', array('notice_id' => $id));
notice('Выбранный шаблон успешно удален!');
redirect("notice.php");
} else {
show_error($validation->getErrors());
}
render('includes/back', array('link' => 'notice.php', 'title' => 'Вернуться'));
break;
default:
redirect("notice.php");
}
render('includes/back', array('link' => '/admin/', 'title' => 'В админку', 'icon' => 'panel.gif'));
include_once '../themes/footer.php';
示例12: validate
/**
* Validates POSTed data
*/
public function validate()
{
$post = Http::getParameter('POST');
$errors = array();
// create invoice ruleset
if (!array_key_exists('Invoice', $post)) {
$errors[] = 'No invoice submitted';
return $errors;
}
$v = new Validation();
$v->addRule('Invoice.project', Validation::NOT_EMPTY, 'Project name must not be empty');
$v->addRule('Invoice.total', Validation::IS_NULL, 'Project total must be empty');
$errors = $v->validateList(Set::flatten($post));
// create entry ruleset
if (!array_key_exists('Entry', $post['Invoice'])) {
$errors[] = 'No billable entries submitted';
return $errors;
}
foreach ($post['Invoice']['Entry'] as $i => $entry) {
$v = new Validation();
// check name
$v->addRule('name', Validation::NOT_EMPTY, "Entry '{$i}' must have a name");
if (!array_key_exists('name', $entry)) {
$entry['name'] = '#' . $i;
}
// etc...
$v->addRule('billed', Validation::NOT_EMPTY, "Entry '{$entry['name']}' must not have an empty date");
$v->addRule('billed', '~\\d{8}~', "Entry '{$entry['name']}' must have a valid date");
$v->addRule('quantity', Validation::NUMERIC, "Entry '{$entry['name']}' must have a valid quantity");
$v->addRule('amount_per', Validation::NUMERIC, "Entry '{$entry['name']}' must have a valid price");
// validate
$errors = array_merge($errors, $v->validateList($entry));
}
// create discount ruleset
foreach ($post['Invoice']['Discount'] as $i => $discount) {
$v = new Validation();
// check type
$types = array('fixed', 'percent');
if (!array_key_exists('type', $discount) || !in_array($discount['type'], $types)) {
throw new Exception('Discount has no type', 500);
}
// check quantity
$v->addRule('quantity', Validation::NUMERIC, "Discount must have a valid quantity");
// validate
$errors = array_merge($errors, $v->validateList($entry));
}
// create payment ruleset
if (array_key_exists('Payment', $post['Invoice'])) {
foreach ($post['Invoice']['Payment'] as $i => $payment) {
// TODO
}
}
// return
return $errors;
}
示例13: check
break;
############################################################################################
## Cоздание темы ##
############################################################################################
############################################################################################
## Cоздание темы ##
############################################################################################
case 'add':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$fid = isset($_POST['fid']) ? abs(intval($_POST['fid'])) : 0;
$title = isset($_POST['title']) ? check($_POST['title']) : '';
$msg = isset($_POST['msg']) ? check($_POST['msg']) : '';
if (is_user()) {
$forums = DB::run()->queryFetch("SELECT * FROM `forums` WHERE `forums_id`=? LIMIT 1;", array($fid));
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('not_empty', $forums, 'Раздела для новой темы не существует!')->addRule('empty', $forums['forums_closed'], 'В данном разделе запрещено создавать темы!')->addRule('equal', array(is_quarantine($log), true), 'Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!')->addRule('equal', array(is_flood($log), true), 'Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' сек!')->addRule('string', $title, 'Слишком длинный или короткий заголовок темы!', true, 5, 50)->addRule('string', $msg, 'Слишком длинное или короткое сообщение!', true, 5, $config['forumtextlength']);
/* Сделать проверку поиска похожей темы */
if ($validation->run()) {
$title = antimat($title);
$msg = antimat($msg);
DB::run()->query("UPDATE `users` SET `users_allforum`=`users_allforum`+1, `users_point`=`users_point`+1, `users_money`=`users_money`+5 WHERE `users_login`=?", array($log));
DB::run()->query("INSERT INTO `topics` (`topics_forums_id`, `topics_title`, `topics_author`, `topics_posts`, `topics_last_user`, `topics_last_time`) VALUES (?, ?, ?, ?, ?, ?);", array($fid, $title, $log, 1, $log, SITETIME));
$lastid = DB::run()->lastInsertId();
DB::run()->query("INSERT INTO `posts` (`posts_topics_id`, `posts_forums_id`, `posts_user`, `posts_text`, `posts_time`, `posts_ip`, `posts_brow`) VALUES (?, ?, ?, ?, ?, ?, ?);", array($lastid, $fid, $log, $msg, SITETIME, $ip, $brow));
DB::run()->query("UPDATE `forums` SET `forums_topics`=`forums_topics`+1, `forums_posts`=`forums_posts`+1, `forums_last_id`=?, `forums_last_themes`=?, `forums_last_user`=?, `forums_last_time`=? WHERE `forums_id`=?", array($lastid, $title, $log, SITETIME, $fid));
// Обновление родительского форума
if ($forums['forums_parent'] > 0) {
DB::run()->query("UPDATE `forums` SET `forums_last_id`=?, `forums_last_themes`=?, `forums_last_user`=?, `forums_last_time`=? WHERE `forums_id`=?", array($lastid, $title, $log, SITETIME, $forums['forums_parent']));
}
notice('Новая тема успешно создана!');
redirect("topic.php?tid={$lastid}");
示例14: check
}
echo '<img src="/images/img/back.gif" alt="image" /> <a href="index.php">К новостям</a><br />';
break;
############################################################################################
## Добавление комментариев ##
############################################################################################
############################################################################################
## Добавление комментариев ##
############################################################################################
case 'add':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$msg = isset($_POST['msg']) ? check($_POST['msg']) : '';
if (is_user()) {
$data = DB::run()->queryFetch("SELECT * FROM `news` WHERE `news_id`=? LIMIT 1;", array($id));
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('equal', array(is_quarantine($log), true), 'Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!')->addRule('equal', array(is_flood($log), true), 'Антифлуд! Разрешается комментировать раз в ' . flood_period() . ' сек!')->addRule('not_empty', $data, 'Выбранной новости не существует, возможно она было удалена!')->addRule('string', $msg, 'Слишком длинный или короткий комментарий!', true, 5, 1000)->addRule('empty', $data['news_closed'], 'Комментирование данной новости запрещено!');
if ($validation->run()) {
$msg = antimat($msg);
DB::run()->query("INSERT INTO `commnews` (`commnews_news_id`, `commnews_text`, `commnews_author`, `commnews_time`, `commnews_ip`, `commnews_brow`) VALUES (?, ?, ?, ?, ?, ?);", array($id, $msg, $log, SITETIME, $ip, $brow));
DB::run()->query("DELETE FROM `commnews` WHERE `commnews_news_id`=? AND `commnews_time` < (SELECT MIN(`commnews_time`) FROM (SELECT `commnews_time` FROM `commnews` WHERE `commnews_news_id`=? ORDER BY `commnews_time` DESC LIMIT " . $config['maxkommnews'] . ") AS del);", array($id, $id));
DB::run()->query("UPDATE `news` SET `news_comments`=`news_comments`+1 WHERE `news_id`=?;", array($id));
DB::run()->query("UPDATE `users` SET `users_allcomments`=`users_allcomments`+1, `users_point`=`users_point`+1, `users_money`=`users_money`+5 WHERE `users_login`=?", array($log));
notice('Комментарий успешно добавлен!');
if (isset($_GET['read'])) {
redirect("index.php?act=read&id={$id}");
}
redirect("index.php?act=end&id={$id}");
} else {
show_error($validation->getErrors());
}
} else {
示例15: check
break;
############################################################################################
## Редактирование выбранного события ##
############################################################################################
############################################################################################
## Редактирование выбранного события ##
############################################################################################
case 'change':
$uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
$msg = isset($_POST['msg']) ? check($_POST['msg']) : '';
$title = isset($_POST['title']) ? check($_POST['title']) : '';
$closed = empty($_POST['closed']) ? 0 : 1;
$top = empty($_POST['top']) ? 0 : 1;
$dataevent = DB::run()->queryFetch("SELECT * FROM `events` WHERE `event_id`=? LIMIT 1;", array($id));
$validation = new Validation();
$validation->addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')->addRule('not_empty', $dataevent, 'Выбранного события не существует, возможно оно было удалено!')->addRule('string', $title, 'Слишком длинный или короткий заголовок события!', true, 5, 50)->addRule('string', $msg, 'Слишком длинный или короткий текст события!', true, 5, 10000);
if ($validation->run()) {
DB::run()->query("UPDATE `events` SET `event_title`=?, `event_text`=?, `event_closed`=?, `event_top`=? WHERE `event_id`=? LIMIT 1;", array($title, $msg, $closed, $top, $id));
// ---------------------------- Загрузка изображения -------------------------------//
if (is_uploaded_file($_FILES['image']['tmp_name'])) {
$handle = upload_image($_FILES['image'], $config['filesize'], $config['fileupfoto'], $id);
if ($handle) {
// Удаление старой картинки
if (!empty($dataevent['event_image'])) {
unlink_image('upload/events/', $dataevent['event_image']);
}
$handle->process(BASEDIR . '/upload/events/');
if ($handle->processed) {
DB::run()->query("UPDATE `events` SET `event_image`=? WHERE `event_id`=? LIMIT 1;", array($handle->file_dst_name, $id));
$handle->clean();
} else {