예제 #1
0
 protected function configureDatabase()
 {
     $db = new DBM();
     $db->addConnection(['driver' => 'sqlite', 'database' => ':memory:', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '']);
     $db->bootEloquent();
     $db->setAsGlobal();
 }
예제 #2
0
파일: DBM.php 프로젝트: visavi/rotorcms4
 /**
  * method instance.
  * 	- static, for singleton, for creating a global instance of this object
  *
  * @return - DBM Object
  */
 public static function run()
 {
     if (!isset(self::$instance)) {
         self::$instance = new DBM();
     }
     return self::$instance;
 }
예제 #3
0
 /**
  * Initialize Config class: read config file and define global variables
  *
  * @param	string	$config_file
  * @param	string	$root_path
  * @return	void
  */
 public function init($config_file, $root_path)
 {
     // read ini file
     $cfg = parse_ini_file($config_file, true);
     // ==== Global definitions ====
     define('M_ROOT_PATH', $root_path);
     // path from web root directory
     if (!empty($cfg['globals']['PHP_LOG_PATH'])) {
         ini_set("log_errors", 'On');
         ini_set("error_log", self::isAbsolutePath($cfg['globals']['PHP_LOG_PATH']) ? $cfg['globals']['PHP_LOG_PATH'] : M_ROOT_PATH . $cfg['globals']['PHP_LOG_PATH']);
     }
     ini_set('display_errors', empty($cfg['globals']['ERROR_DISPLAY']) ? 'Off' : strval($cfg['globals']['ERROR_DISPLAY']));
     define('M_ERR_PATH', !isset($cfg['globals']['ERROR_LOG_PATH']) || empty($cfg['globals']['ERROR_LOG_PATH']) ? null : (self::isAbsolutePath($cfg['globals']['ERROR_LOG_PATH']) ? $cfg['globals']['ERROR_LOG_PATH'] : M_ROOT_PATH . $cfg['globals']['ERROR_LOG_PATH']));
     define('M_APP_PATH', empty($cfg['globals']['M_APP_PATH']) ? M_ROOT_PATH . 'app/' : M_ROOT_PATH . $cfg['globals']['APP_PATH']);
     define('M_SITE_NAME', empty($cfg['globals']['SITE_NAME']) ? 'Mantella Site' : $cfg['globals']['SITE_NAME']);
     define('M_ADMIN_EMAIL', empty($cfg['globals']['ADMIN_EMAIL']) ? null : $cfg['globals']['ADMIN_EMAIL']);
     define('M_URL_PREFIX', empty($cfg['globals']['URL_PREFIX']) ? null : $cfg['globals']['URL_PREFIX']);
     if (!$cfg['globals']['BASE_URL']) {
         $_path = str_replace('\\', '/', M_ROOT_PATH);
         $_proto = $_SERVER['SERVER_PORT'] != 443 ? 'http://' : 'https://';
         $_port = $_SERVER['SERVER_PORT'] != 443 && $_SERVER['SERVER_PORT'] != 80 ? ':' . $_SERVER['SERVER_PORT'] : '';
         $cfg['globals']['BASE_URL'] = strtolower($_proto . $_SERVER['SERVER_NAME'] . $_port . preg_replace('/^[\\w:\\/]*' . str_replace('/', '\\/', $_SERVER["DOCUMENT_ROOT"]) . '/i', '', $_path));
     }
     define('M_BASE_URL', $cfg['globals']['BASE_URL']);
     // ==== Custom definitions ====
     foreach ($cfg['definitions'] as $name => $value) {
         define($name, $value);
     }
     // ==== Read databases and init DBManager ====
     $databases = array();
     foreach ($cfg['databases'] as $name => $value) {
         $db = explode(".", $name);
         if (!isset($databases[$db[0]])) {
             $databases[$db[0]] = array('driver' => "unknown", 'host' => "localhost", 'port' => null, 'database' => "base", 'username' => null, 'password' => null, 'charset' => null, 'prefix' => null);
         }
         $databases[$db[0]][$db[1]] = $value;
     }
     if (class_exists('DBM')) {
         DBM::init($databases);
     }
     // ==== Vendors ====
     foreach ($cfg['vendors'] as $name => $params) {
         self::set("vendor_" . $name, $params);
         $init_path = realpath(M_ROOT_PATH . "vendors/" . $name . "/init.php");
         if (file_exists($init_path)) {
             include_once $init_path;
         }
     }
 }
예제 #4
0
 /**
  * Initialize MantellaSession class: init database authorization, renew session
  *
  * @param	void
  * @return	void
  */
 public static function init($preset)
 {
     self::$settings['dblink'] = DBM::get(trim($preset['connection']));
     self::$settings['table'] = trim($preset['table']);
     $tmp = explode(",", trim($preset['fields']));
     for ($i = 0; $i < count($tmp); $i++) {
         self::$settings['fields'][] = trim($tmp[$i]);
     }
     self::$settings['login'] = explode("|", trim($preset['login']));
     self::$settings['secret'] = trim($preset['password']);
     self::$settings['encode'] = empty($preset['encoding']) ? null : trim($preset['encoding']);
     if (isset($_SESSION[self::SESSION_NAME])) {
         self::$session = $_SESSION[self::SESSION_NAME];
     }
     self::$initialized = TRUE;
 }
 public static function getOption($name)
 {
     $dbm = DBM::instance();
     if (is_array($name)) {
         $que = "SELECT * FROM {options} WHERE name IN ('" . implode("','", $name) . "')";
     } else {
         $que = "SELECT * FROM {options} WHERE name = '" . $name . "'";
     }
     if (is_array($name)) {
         while ($row = $dbm->getFetchArray($que)) {
             $options[$row['name']] = self::fetchOption($row['vlaue']);
         }
         return $options;
     } else {
         $row = $dbm->getFetchArray($que);
         return self::fetchOption($row['value']);
     }
 }
예제 #6
0
파일: smiles.php 프로젝트: visavi/rotorcms4
require_once '../includes/start.php';
require_once '../includes/functions.php';
require_once '../includes/header.php';
include_once '../themes/header.php';
$act = isset($_GET['act']) ? check($_GET['act']) : 'index';
$start = isset($_GET['start']) ? abs(intval($_GET['start'])) : 0;
show_title('Список смайлов');
switch ($act) {
    /**
     * Главная страница
     */
    case "index":
        $total = DBM::run()->count('smiles');
        if ($total > 0) {
            if ($start >= $total) {
                $start = 0;
            }
            $smiles = DBM::run()->query("SELECT * FROM `smiles` ORDER BY CHAR_LENGTH(`smiles_code`) ASC LIMIT :start, :limit;", array('start' => intval($start), 'limit' => intval($config['smilelist'])));
            foreach ($smiles as $smile) {
                echo '<img src="/images/smiles/' . $smile['smiles_name'] . '" alt="" /> — <b>' . $smile['smiles_code'] . '</b><br />';
            }
            page_strnavigation('smiles.php?', $config['smilelist'], $start, $total);
            echo 'Всего cмайлов: <b>' . $total . '</b><br /><br />';
        } else {
            show_error('Смайлы не найдены!');
        }
        break;
    default:
        redirect("smiles.php");
}
include_once '../themes/footer.php';
예제 #7
0
     $uztotal = DB::run()->querySingle("SELECT count(*) FROM `inbox` WHERE `inbox_user`=?;", array($uz));
     if ($uztotal < $config['limitmail']) {
         // ----------------------------- Проверка на игнор ----------------------------//
         $ignorstr = DB::run()->querySingle("SELECT `ignore_id` FROM `ignore` WHERE `ignore_user`=? AND `ignore_name`=? LIMIT 1;", array($uz, $log));
         if (empty($ignorstr)) {
             if (is_flood($log)) {
                 $msg = antimat($msg);
                 DB::run()->query("UPDATE `users` SET `users_newprivat`=`users_newprivat`+1 WHERE `users_login`=? LIMIT 1;", array($uz));
                 DB::run()->query("INSERT INTO `inbox` (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) VALUES (?, ?, ?, ?);", array($uz, $log, $msg, SITETIME));
                 DB::run()->query("INSERT INTO `outbox` (`outbox_user`, `outbox_author`, `outbox_text`, `outbox_time`) VALUES (?, ?, ?, ?);", array($uz, $log, $msg, SITETIME));
                 DB::run()->query("DELETE FROM `outbox` WHERE `outbox_author`=? AND `outbox_time` < (SELECT MIN(`outbox_time`) FROM (SELECT `outbox_time` FROM `outbox` WHERE `outbox_author`=? ORDER BY `outbox_time` DESC LIMIT " . $config['limitoutmail'] . ") AS del);", array($log, $log));
                 save_usermail(60);
                 $deliveryUsers = DBM::run()->select('users', array('users_newprivat' => array('>', 0), 'users_sendprivatmail' => 0, 'users_timelastlogin' => array('<', SITETIME - 86400 * $config['sendprivatmailday']), 'users_subscribe' => array('<>', ''), 'users_email' => array('<>', ''), 'users_confirmreg' => 0), $config['sendmailpacket'], null, array('users_timelastlogin' => 'ASC'));
                 foreach ($deliveryUsers as $user) {
                     sendMail($user['users_email'], $user['users_newprivat'] . ' непрочитанных сообщений (' . $config['title'] . ')', nl2br("Здравствуйте " . nickname($user['users_login']) . "! \nУ вас имеются непрочитанные сообщения (" . $user['users_newprivat'] . " шт.) на сайте " . $config['title'] . " \nПрочитать свои сообщения вы можете по адресу " . $config['home'] . "/pages/private.php"), array('unsubkey' => $user['users_subscribe']));
                     $user = DBM::run()->update('users', array('users_sendprivatmail' => 1), array('users_login' => $user['users_login']));
                 }
                 notice('Ваше письмо успешно отправлено!');
                 redirect("private.php");
             } else {
                 show_error('Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' секунд!');
             }
         } else {
             show_error('Ошибка! Вы внесены в игнор-лист получателя!');
         }
     } else {
         show_error('Ошибка! Ящик получателя переполнен!');
     }
 } else {
     show_error('Ошибка! Данного адресата не существует!');
 }
예제 #8
0
파일: start.php 프로젝트: visavi/rotorcms4
define('DATADIR', BASEDIR . '/local');
define('SITETIME', time());
define('PCLZIP_TEMPORARY_DIR', BASEDIR . '/local/temp/');
session_name('SID');
session_start();
if (file_exists(BASEDIR . '/includes/connect.php')) {
    include_once BASEDIR . '/includes/connect.php';
} else {
    die('Переименуйте файл connect.example.php в connect.php в директории include!');
}
if (file_exists(BASEDIR . '/includes/vendor/autoload.php')) {
    include_once BASEDIR . '/includes/vendor/autoload.php';
}
// -------- Автозагрузка классов ---------- //
function autoloader($class)
{
    $class = str_replace('\\', '/', $class);
    if (file_exists(BASEDIR . '/includes/classes/' . $class . '.php')) {
        include_once BASEDIR . '/includes/classes/' . $class . '.php';
    }
    include_once BASEDIR . '/includes/classes/swiftmailer/swift_required.php';
}
spl_autoload_register('autoloader');
DBM::run()->config(DBHOST, DBNAME, DBUSER, DBPASS, DBPORT);
if (!file_exists(DATADIR . '/temp/setting.dat')) {
    $queryset = DB::run()->query("SELECT `setting_name`, `setting_value` FROM `setting`;");
    $config = $queryset->fetchAssoc();
    file_put_contents(DATADIR . '/temp/setting.dat', serialize($config), LOCK_EX);
}
$config = unserialize(file_get_contents(DATADIR . '/temp/setting.dat'));
date_default_timezone_set($config['timezone']);
예제 #9
0
 $regmessage = "Добро пожаловать, " . $logs . " \nТеперь вы зарегистрированный пользователь сайта " . $config['home'] . " , сохраните ваш пароль и логин в надежном месте, они вам еще пригодятся. \nВаши данные для входа на сайт \nЛогин: " . $logs . " \nПароль: " . $pars . " \n\nСсылка для автоматического входа на сайт: \n" . $config['home'] . "/input.php?login="******"&pass="******" \nНадеемся вам понравится на нашем портале! \nС уважением администрация сайта \nЕсли это письмо попало к вам по ошибке, то просто проигнорируйте его \n\n";
 if ($config['regkeys'] == 1) {
     $registration_key = generate_password();
     echo '<b><span style="color:#ff0000">Внимание! После входа на сайт, вам будет необходимо ввести мастер-ключ для подтверждения регистрации<br />';
     echo 'Мастер-ключ был выслан вам на почтовый ящик: ' . $meil . '</span></b><br /><br />';
     $regmessage .= "Внимание! \nДля подтверждения регистрации необходимо в течении 24 часов ввести мастер-ключ! \nВаш мастер-ключ: " . $registration_key . " \nВведите его после авторизации на сайте \nИли перейдите по прямой ссылке: \n\n" . $config['home'] . "/pages/key.php?act=inkey&key=" . $registration_key . " \n\nЕсли в течении 24 часов вы не подтвердите регистрацию, ваш профиль будет автоматически удален";
 }
 if ($config['regkeys'] == 2) {
     echo '<b><span style="color:#ff0000">Внимание! Ваш аккаунт будет активирован только после проверки администрацией!</span></b><br /><br />';
     $regmessage .= "Внимание! \nВаш аккаунт будет активирован только после проверки администрацией! \nПроверить статус активации вы сможете после авторизации на сайте";
 }
 // Активация пригласительного ключа
 if (!empty($config['invite'])) {
     DB::run()->query("UPDATE `invite` SET `used`=?, `invited`=? WHERE `key`=? LIMIT 1;", array(1, $logs, $invite));
 }
 $registration = DBM::run()->insert('users', array('users_login' => $logs, 'users_pass' => md5(md5($pars)), 'users_email' => $meil, 'users_joined' => SITETIME, 'users_level' => 107, 'users_gender' => $gender, 'users_themes' => 0, 'users_postguest' => $config['bookpost'], 'users_postnews' => $config['postnews'], 'users_postprivat' => $config['privatpost'], 'users_postforum' => $config['forumpost'], 'users_themesforum' => $config['forumtem'], 'users_postboard' => $config['boardspost'], 'users_point' => 0, 'users_money' => $config['registermoney'], 'users_timelastlogin' => SITETIME, 'users_confirmreg' => $config['regkeys'], 'users_confirmregkey' => $registration_key, 'users_navigation' => $config['navigation'], 'users_subscribe' => generate_password(32)));
 // ------------------------------ Уведомление в приват ----------------------------------//
 $textpriv = text_private(1, array('%USERNAME%' => $logs, '%SITENAME%' => $config['home']));
 send_private($logs, $config['nickname'], $textpriv);
 if (!empty($config['regmail'])) {
     sendMail($meil, 'Регистрация на сайте ' . $config['title'], nl2br($regmessage));
 }
 // ----------------------------------------------------------------------------------------//
 $_SESSION['reguser'] = 1;
 echo 'Вы удачно зарегистрированы!<br /><br />';
 echo 'Логин: <b>' . $logs . '</b><br />';
 echo 'Пароль: <b>' . $pars . '</b><br /><br />';
 echo 'Теперь вы можете войти<br />';
 echo '<br /><img src="/images/img/open.gif" alt="image" /> ';
 echo '<b><a href="/input.php?login='******'&amp;pass='******'">Вход на сайт</a></b><br /><br />';
 echo 'Вы можете сделать закладку для быстрого входа:<br />';
예제 #10
0
 /**
  * Create a new model instance.
  *
  * @param  void
  * @return void
  */
 public function __construct()
 {
     if ($this->DATABASE) {
         $this->_DBLINK = DBM::get($this->DATABASE);
     }
     if (is_string($this->VALIDATORS_ERRORS)) {
         $this->VALIDATORS_ERRORS = LNG::get($this->VALIDATORS_ERRORS);
     }
 }
예제 #11
0
파일: notice.php 프로젝트: visavi/rotorcms4
            redirect("notice.php?act=edit&id={$id}");
        } else {
            show_error($validation->getErrors());
        }
        render('includes/back', array('link' => 'notice.php?act=edit&amp;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
0
파일: index.php 프로젝트: visavi/rotorcms4
      */
 /**
  * Редактирование сообщения
  */
 case 'editpost':
     $uid = check($_GET['uid']);
     $id = abs(intval($_GET['id']));
     $msg = check($_POST['msg']);
     if (is_user()) {
         if ($uid == $_SESSION['token']) {
             if (utf_strlen($msg) >= 5 && utf_strlen($msg) < $config['guesttextlength']) {
                 $post = DBM::run()->selectFirst('guest', array('guest_id' => $id, 'guest_user' => $log));
                 if (!empty($post)) {
                     if ($post['guest_time'] + 600 > SITETIME) {
                         $msg = antimat($msg);
                         $guest = DBM::run()->update('guest', array('guest_text' => $msg, 'guest_edit' => $log, 'guest_edit_time' => SITETIME), array('guest_id' => $id));
                         notice('Сообщение успешно отредактировано!');
                         redirect("index.php?start={$start}");
                     } else {
                         show_error('Ошибка! Редактирование невозможно, прошло более 10 минут!!');
                     }
                 } else {
                     show_error('Ошибка! Сообщение удалено или вы не автор этого сообщения!');
                 }
             } else {
                 show_error('Ошибка! Слишком длинное или короткое сообщение!');
             }
         } else {
             show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
         }
     } else {
예제 #13
0
<?php 
require_once 'config.php';
require_once 'functions.php';
//動画No取得
if (preg_match('/^[1-9][0-9]*$/', $_GET['movie_num'])) {
    $movie_num = (int) $_GET['movie_num'];
} else {
    $movie_num = 0;
}
// 人気タグ20個読み込み
$popTags = getPopTags();
$dbm = new DBM();
$dbm->setMovieDataFromMovieId($movie_num);
$dbm->getMovieData($movieData);
// movie_urlを実際に表示させる形に変換する
$pattern = '/^http/';
if (preg_match($pattern, $movieData['movie_url'])) {
    // xvideos形式だった場合
    $movieData['movie_url'] = "<iframe width=\"480\" height=\"400\" src=\"{$movieData['movie_url']}\" title=\"xhamster\" scrolling=\"no\">iframeが無効です。</iframe>";
}
// おすすめ動画取得
// おすすめ動画
$recomMovies = [];
$dbm->setRecomMovieData(30);
$dbm->getMovieData($recomMovies);
// おすすめ動画のtext修正
foreach ($recomMovies as &$movie) {
    $movie['text'] = mb_substr($movie['text'], 30, mb_strlen($movie['text']) - 30);
}
/*
$recomMovies = [];
예제 #14
0
<?php

require_once './DataGet/config.php';
require_once './DataGet/functions.php';
// 必要なデータ
$dbm = new DBM();
// 新着動画
$newMovies = [];
$dbm->setMovieData(12, "");
$dbm->getMovieData($newMovies);
// おすすめ動画
$recomMovies = [];
$dbm->setRecomMovieData(30);
$dbm->getMovieData($recomMovies);
// おすすめ動画のtext修正
foreach ($recomMovies as &$movie) {
    $movie['text'] = mb_substr($movie['text'], 30, mb_strlen($movie['text']) - 30);
}
// 人気タグ一覧
$popTags = getPopTags();
// 総動画数取得
$numberOfMovie = getNumberOfMovie();
// Debug
/*
var_dump(count($newMovies));
echo '<br>';
foreach($newMovies as $movie) {
    var_dump($movie['title']);
    echo '<br>';
}
*/
예제 #15
0
 /**
  * Обработка смайлов
  * @param  string $text Необработанный текст
  * @return string       Обработанный текст
  */
 public function parseSmiles($source)
 {
     static $list_smiles;
     if (empty($list_smiles)) {
         if (!file_exists(DATADIR . '/temp/smiles.dat')) {
             $smiles = DBM::run()->query("SELECT `smiles_name`, `smiles_code` FROM `smiles` ORDER BY CHAR_LENGTH(`smiles_code`) DESC;");
             file_put_contents(DATADIR . '/temp/smiles.dat', serialize($smiles));
         }
         $list_smiles = unserialize(file_get_contents(DATADIR . "/temp/smiles.dat"));
     }
     $count = 0;
     foreach ($list_smiles as $smile) {
         $source = preg_replace('|' . preg_quote($smile['smiles_code']) . '|', '<img src="/images/smiles/' . $smile['smiles_name'] . '" alt="' . $smile['smiles_name'] . '" /> ', $source, $this->setting['resmiles'] - $count, $cnt);
         $count += $cnt;
         if ($count >= $this->setting['resmiles']) {
             break;
         }
     }
     return $source;
 }
예제 #16
0
     echo '<img src="/images/img/back.gif" alt="image" /> <a href="reklama.php">Вернуться</a><br />';
     break;
     ############################################################################################
     ##                                   Просмотр всех ссылок                                 ##
     ############################################################################################
 ############################################################################################
 ##                                   Просмотр всех ссылок                                 ##
 ############################################################################################
 case 'all':
     $config['newtitle'] = 'Список всех ссылок';
     $total = DBM::run()->count('rekuser', array('rek_time' => array('>', SITETIME)));
     if ($total > 0) {
         if ($start >= $total) {
             $start = 0;
         }
         $reklama = DBM::run()->select('rekuser', array('rek_time' => array('>', SITETIME)), $config['rekuserpost'], $start, array('rek_time' => 'DESC'));
         foreach ($reklama as $data) {
             echo '<div class="b">';
             echo '<img src="/images/img/online.gif" alt="image" /> ';
             echo '<b><a href="' . $data['rek_site'] . '">' . $data['rek_name'] . '</a></b> (' . profile($data['rek_user']) . ')</div>';
             echo 'Истекает: ' . date_fixed($data['rek_time']) . '<br />';
             if (!empty($data['rek_color'])) {
                 echo 'Цвет: <span style="color:' . $data['rek_color'] . '">' . $data['rek_color'] . '</span>, ';
             } else {
                 echo 'Цвет: нет, ';
             }
             if (!empty($data['rek_bold'])) {
                 echo 'Жирность: есть<br />';
             } else {
                 echo 'Жирность: нет<br />';
             }
예제 #17
0
<?php

#---------------------------------------------#
#      ********* RotorCMS *********           #
#           Author  :  Vantuz                 #
#            Email  :  visavi.net@mail.ru     #
#             Site  :  http://visavi.net      #
#              ICQ  :  36-44-66               #
#            Skype  :  vantuzilla             #
#---------------------------------------------#
require_once '../includes/start.php';
require_once '../includes/functions.php';
require_once '../includes/header.php';
include_once '../themes/header.php';
$key = isset($_GET['key']) ? check($_GET['key']) : '';
show_title('Отписка от рассылки');
############################################################################################
##                                    Главная страница                                    ##
############################################################################################
if (!empty($key)) {
    $user = DBM::run()->queryFirst("SELECT * FROM `users` WHERE BINARY `users_subscribe`=:key LIMIT 1;", compact('key'));
    if ($user) {
        $user = DBM::run()->update('users', array('users_subscribe' => ''), array('users_login' => $user['users_login']));
        echo '<img src="/images/img/open.gif" alt="image" /> <b>Вы успешно отписались от рассылки!</b><br />';
    } else {
        show_error('Ошибка! Ключ для отписки от рассылки устарел!');
    }
} else {
    show_error('Ошибка! Отсутствует ключ для отписки от рассылки!');
}
include_once '../themes/footer.php';
예제 #18
0
파일: load.php 프로젝트: visavi/rotorcms4
 case 'addfile':
     $config['newtitle'] = 'Публикация нового файла';
     $uid = check($_GET['uid']);
     $cid = abs(intval($_POST['cid']));
     $title = check($_POST['title']);
     $text = check($_POST['text']);
     $author = !empty($_POST['author']) ? check($_POST['author']) : '';
     $site = $_POST['site'] != 'http://' ? check($_POST['site']) : '';
     if ($uid == $_SESSION['token']) {
         if (!empty($cid)) {
             if (utf_strlen($title) >= 5 && utf_strlen($title) < 50) {
                 if (utf_strlen($text) >= 10 && utf_strlen($text) < 5000) {
                     if (utf_strlen($author) <= 50) {
                         if (utf_strlen($site) <= 50) {
                             if (empty($site) || preg_match('#^http://([а-яa-z0-9_\\-\\.])+(\\.([а-яa-z0-9\\/])+)+$#u', $site)) {
                                 $downs = DBM::run()->selectFirst('cats', array('cats_id' => $cid));
                                 if (!empty($downs)) {
                                     if (empty($downs['closed'])) {
                                         $downtitle = DB::run()->querySingle("SELECT `downs_title` FROM `downs` WHERE `downs_title`=? LIMIT 1;", array($title));
                                         if (empty($downtitle)) {
                                             DB::run()->query("UPDATE `cats` SET `cats_count`=`cats_count`+1 WHERE `cats_id`=?", array($cid));
                                             DB::run()->query("INSERT INTO `downs` (`downs_cats_id`, `downs_title`, `downs_text`, `downs_link`, `downs_user`, `downs_author`, `downs_site`, `downs_screen`, `downs_time`, `downs_active`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", array($cid, $title, $text, '', $log, $author, $site, '', SITETIME, 1));
                                             $lastid = DB::run()->lastInsertId();
                                             notice('Данные успешно добавлены!');
                                             redirect("load.php?act=editdown&id={$lastid}");
                                         } else {
                                             show_error('Ошибка! Название ' . $title . ' уже имеется в файлах!');
                                         }
                                     } else {
                                         show_error('Ошибка! В данный раздел запрещена загрузка файлов!');
                                     }
예제 #19
0
// 表示ページGET
if (preg_match('/^[1-9][0-9]*$/', $_GET['page'])) {
    $page = (int) $_GET['page'];
} else {
    $page = 1;
}
// 検索ワードGET
$keyword = $_GET['keyword'];
$keyword_converted = mb_convert_kana($keyword, 's', 'UTF-8');
$ary_keyword = preg_split('/[\\s]+/', $keyword_converted, -1, PREG_SPLIT_NO_EMPTY);
// キーワード成形
foreach ($ary_keyword as $row) {
    $sql_input_keyword .= $row . '%';
}
$popTags = getPopTags();
$dbm = new DBM();
$movieDataRow = array();
$dbm->setMovieData(1000, "{$keyword}");
$dbm->getMovieData($movieDataRow);
if ($page < 1) {
    $offset = 0;
} else {
    $offset = $page - 1;
}
$movieData = array_slice($movieDataRow, $offset * FILES_PER_PAGE, FILES_PER_PAGE);
// page_nav用
$totalMovies = count($movieDataRow);
$totalPages = $totalMovies / FILES_PER_PAGE;
/*
if($totalPages < 1) {
    $totalPages = 1;
예제 #20
0
 /**
  * Return database connection, or FALSE if database connection not assigned/connected
  *
  * @param  void
  * @return MantellaDB|boolean
  */
 private function getDB()
 {
     $db = DBM::get($this->DATABASE);
     return $db && $db->isConnected() ? $db : false;
 }
예제 #21
0
파일: smiles.php 프로젝트: visavi/rotorcms4
 case 'del':
     $uid = !empty($_GET['uid']) ? check($_GET['uid']) : 0;
     $del = isset($_POST['del']) ? intar($_POST['del']) : 0;
     if ($uid == $_SESSION['token']) {
         if (!empty($del)) {
             if (is_writeable(BASEDIR . '/images/smiles')) {
                 $del = implode(',', $del);
                 $arr_smiles = DBM::run()->query("SELECT `smiles_name` FROM `smiles` WHERE `smiles_id` IN(" . $del . ");");
                 if (count($arr_smiles) > 0) {
                     foreach ($arr_smiles as $delfile) {
                         if (file_exists(BASEDIR . '/images/smiles/' . $delfile['smiles_name'])) {
                             unlink(BASEDIR . '/images/smiles/' . $delfile['smiles_name']);
                         }
                     }
                 }
                 DBM::run()->execute("DELETE FROM `smiles` WHERE `smiles_id` IN (" . $del . ");");
                 clearCache();
                 notice('Выбранные смайлы успешно удалены!');
                 redirect("smiles.php?start={$start}");
             } else {
                 show_error('Ошибка! Не установлены атрибуты доступа на дирекоторию со смайлами!');
             }
         } else {
             show_error('Ошибка! Отсутствуют выбранные смайлы!');
         }
     } else {
         show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
     }
     render('includes/back', array('link' => 'smiles.php?start=' . $start, 'title' => 'Вернуться'));
     break;
 default: