hjkhghopjkertteerterterterertertrtoirh
bnmbertsurhetertertertertertertertpdf'tdfg
/
srv
/
www
/
virtual
/
dev1.wccweb.jp.dac4.biz
/
web
/
biva.webapp
/
site
/
app
/
admin
/
Upload FileeE
HOME
<?php /** * admin/specialissue.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 specialissue extends core { private $form; public function __construct() { parent::__construct(); $this->form =& $_SESSION['bv']['adm']['form']['specialissue']; } public function pageIndex() { if ($this->biva->action == 'index') $this->form = array(); $this->checkPriv(BV_PRIV_SEL); $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/specialissue/'); } private function checkData() { $f_err = 0; $s =& $this->form; $s['raw'] = $s['sys'] = $_POST; $f =& $s['sys']; // 表示日 switch (true) { case !isset($f['date_fr']) || !$f['date_fr']: case !preg_match('/^\d{4}-\d{1,2}-\d{1,2}$/', $f['date_fr']): $err['date_fr'] = '不正な日付です。'; $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 = 'specialissue.' . 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']; if (isset($d['isModify']) && $d['isModify']) { $sql_base = "UPDATE p_specialissue_old SET img = '%s', msg = '%s', url = '%s', date_fr = '%s', status = %d WHERE id = %d"; $sql = sprintf($sql_base, $this->biva->Db->escape($d['img']), $this->biva->Db->escape($d['msg']), $this->biva->Db->escape($d['url']), $this->biva->Db->escape($d['date_fr']), $this->biva->Db->escape($d['status']), $this->biva->Db->escape($d['id'])); } else { $sql_base = "INSERT INTO p_specialissue_old (img, msg, url, date_fr, status, created) VALUES ('%s', '%s', '%s', '%s', %d, NOW())"; $sql = sprintf($sql_base, $this->biva->Db->escape($d['img']), $this->biva->Db->escape($d['msg']), $this->biva->Db->escape($d['url']), $this->biva->Db->escape($d['date_fr']), $this->biva->Db->escape($d['status'])); } //echo $sql; exit; $this->biva->Db->query($sql); $this->pageClear(); } private function getListData() { $sql = 'SELECT * FROM p_specialissue_old WHERE status & ~4 ORDER BY date_fr DESC, id DESC'; $r_sql = $this->biva->Db->query($sql); return $this->biva->Db->fetchAll($r_sql); } private function renameOldImage() { $d =& $this->form['sys']; if (!isset($d['isModify']) || !$d['isModify']) return; $sql_base = 'SELECT img FROM p_specialissue_old WHERE id = %d'; $sql = sprintf($sql_base, $this->biva->Db->escape($d['id'])); $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'); } } }