hjkhghopjkertteerterterterertertrtoirh
bnmbertsurhetertertertertertertertpdf'tdfg
/
srv
/
www
/
virtual
/
wccweb.jp
/
web
/
biva.webapp
/
site
/
app
/
admin
/
Upload FileeE
HOME
<?php /** * admin/eyecatch.php * * @author Mitsutoshi Nakamura <mitsutoshi.nakamura.jp@gmail.com> * @since 2011/02/01 * @version PHP version 5 * @package BIVA */ require(BV_APPROOT . 'site/app/admin/_core.php'); class eyecatch extends core { private $form; public function __construct() { parent::__construct(); $this->form =& $_SESSION['bv']['adm']['form']['eyecatch']; } public function pageIndex() { if ($this->biva->action == 'index') $this->form = array(); $this->checkPriv(BV_PRIV_SEL); // 表示順の未登録選択肢を設定 $this->tplvar['form']['idx'] = range(1, 5); $r_sql = $this->biva->Db->query('SELECT idx FROM p_eyecatch_old'); while ($rv = mysqli_fetch_assoc($r_sql)) { unset($this->tplvar['form']['idx'][$rv['idx'] - 1]); } //bvPr($this->tplvar['form']['idx']); exit; $this->tplvar['list'] = $this->getListData(); $this->biva->view('index'); } public function pageUpdate() { //bvPr($_POST); exit; $this->checkPriv(BV_PRIV_INS); $this->checkData() ? $this->update() : $this->pageIndex(); } public function pageModify() { $this->checkPriv(BV_PRIV_UPD); $this->form['raw'] = $_POST; $this->pageIndex(); } public function pageClear() { $this->form = array(); header('Location: ' . bvUriScheme() . bvUriDomain() . BV_DOCPATH . 'admin/eyecatch/'); } private function checkData() { $f_err = 0; $s =& $this->form; $s['raw'] = $s['sys'] = $_POST; $f =& $s['sys']; // 表示順 switch (true) { case !isset($f['idx']) || !$f['idx']: case !preg_match('/^[1-5]$/', $f['idx']): $err['idx'] = '不正な値です。'; $f_err++; break; } // キャプション switch (true) { case !isset($f['msg']): $err['msg'] = '不正なリクエストです。'; $f_err++; break; case mb_strlen($f['msg']) > 64: $err['msg'] = '60文字以内で入力して下さい。'; $f_err++; break; } // リンクURL switch (true) { case $f['url'] && !preg_match('/^https?:\/\/[^\.]+\.[^\.]+/', $f['url']): $err['url'] = '不正なURLです。'; $f_err++; break; } // 画像 switch (true) { case isset($f['useOldImg']) && $f['useOldImg']: $f['img'] = $f['oldImg']; break; case $_FILES['img']['error'] != UPLOAD_ERR_OK: case !$this->prepareFile(): $err['img'] = '画像が正常にアップロードされませんでした。'; $f_err++; break; case $f_err: $err['img'] = '画像を再度選択して下さい。'; break; } if ($f_err) { $div = '<div style="font: bold 16px Verdana; color: #f00;">[Error] '; foreach ($err as $k => $v) { $this->tplvar['err'][$k] = $div . $v . '</div>'; } } return $f_err ? false : true; } private function prepareFile() { $dir = BV_DOCROOT . 'biva.webroot/material/img/' . $this->biva->Smarty->tplset . '/upload/'; $file_ori = basename($_FILES['img']['name']); $file_new = 'eyecatch.' . md5(time() . $file_ori) . '_' . $file_ori; $path = $dir . $file_new; //echo $path; exit; if (move_uploaded_file($_FILES['img']['tmp_name'], $path)) { $this->form['sys']['img'] = $file_new; $this->renameOldImage(); return true; } else { return false; } } private function update() { $d =& $this->form['sys']; $sql_base = "INSERT INTO p_eyecatch_old (idx, img, msg, url, status, created) VALUES (%d, '%s', '%s', '%s', %d, NOW()) " . "ON DUPLICATE KEY UPDATE img = '%s', msg = '%s', url = '%s', status = %d"; $sql = sprintf($sql_base, $this->biva->Db->escape($d['idx']), $this->biva->Db->escape($d['img']), $this->biva->Db->escape($d['msg']), $this->biva->Db->escape($d['url']), $this->biva->Db->escape($d['status']), $this->biva->Db->escape($d['img']), $this->biva->Db->escape($d['msg']), $this->biva->Db->escape($d['url']), $this->biva->Db->escape($d['status'])); //echo $sql; exit; $this->biva->Db->query($sql); $this->pageClear(); } private function getListData() { $sql = 'SELECT * FROM p_eyecatch_old WHERE status & ~4 ORDER BY idx'; $r_sql = $this->biva->Db->query($sql); return $this->biva->Db->fetchAll($r_sql); } private function renameOldImage() { $d =& $this->form['sys']; $sql_base = 'SELECT img FROM p_eyecatch_old WHERE idx = %d'; $sql = sprintf($sql_base, $this->biva->Db->escape($d['idx'])); $r_sql = $this->biva->Db->query($sql); if (mysqli_num_rows($r_sql)) { list($img) = mysqli_fetch_row($r_sql); $path = BV_DOCROOT . 'biva.webroot/material/img/' . $this->biva->Smarty->tplset . '/upload/' . $img; @rename($path, $path . '.NotInUse'); } } }