Exemple #1
0
    if ($errorValue) {
        Util::back("[{$errorValue}]값이 없습니다.");
        Goose::end();
    }
    if (!$_POST['dbPassword'] || $_POST['dbPassword'] != $_POST['dbPassword2']) {
        Util::back("DB 비밀번호와 확인값이 다릅니다.");
        return false;
    }
    if (!$_POST['password'] || $_POST['password'] != $_POST['password2']) {
        Util::back("관리자 비밀번호와 확인값이 다릅니다.");
        return false;
    }
    return true;
}
// check post data
if (checkPost() == true) {
    // create directories
    Util::createDirectory(__GOOSE_PWD__ . "data", 0755);
    // create config.php
    $tpl_config = $this->tpl_config(array('define' => array('url' => $_POST['goose_url'], 'root' => $_POST['goose_root']), 'db' => array('dbname' => $_POST['dbName'], 'name' => $_POST['dbId'], 'password' => $_POST['dbPassword'], 'host' => $_POST['dbHost'], 'prefix' => $_POST['dbPrefix']), 'level' => array('login' => $_POST['loginLevel'], 'admin' => $_POST['adminLevel']), 'apiKey' => $_POST['apiPrefix'], 'timezone' => $_POST['timezone'], 'basic_module' => 'intro'));
    if ($tpl_config != 'success') {
        Goose::error(999, 'Failed to create the file data/config.php');
        Goose::end();
    }
    // create modules.json
    if ($this->tpl_modules() != 'success') {
        Goose::error(999, 'Failed to create the file data/modules.json');
        Goose::end();
    }
} else {
    Goose::end();
Exemple #2
0
/** 댓글 수정
 * @class write
 * @param
		$data: 댓글 data, 이미 check와 가공이 끝난 데이터여야 함
		$board_data: 게시판 설정 data
		-id: 게시판 아이디. 게시판 설정 data가 없을 때 아이디를 토대로 설정을 로드한다.
		-no: 대상 댓글번호 지정. (댓글 번호를 지정할 수 있다. 없다면 data에 저장되어 있는 자료를 수정)
		-is_update: 회원정보 업데이트 여부
		-is_ex: 이전정보 로드 여부
		-is_check: 입력변수 체크 여부
  */
function editCmt(&$data, $board_data = '', $param = '')
{
    global $mini;
    $param = param($param);
    iss($param['id']);
    iss($param['no']);
    iss($data['no']);
    def($param['is_update'], 1);
    def($param['is_ex'], 1);
    def($param['is_check'], 1);
    $trackback = $trackback_excerpt = $trackback_charset = '';
    if (!empty($data['trackback'])) {
        $trackback = $data['trackback'];
    }
    if (!empty($data['trackback_excerpt'])) {
        $trackback_excerpt = $data['trackback_excerpt'];
    }
    if (!empty($data['trackback_charset'])) {
        $trackback_charset = $data['trackback_charset'];
    }
    $is_saveImage = !empty($data['saveImage']) ? 1 : 0;
    unset($data['pass']);
    unset($data['target_member']);
    unset($data['report']);
    unset($data['ip']);
    unset($data['vote']);
    unset($data['hate']);
    unset($data['download']);
    unset($data['date']);
    unset($data['date_last']);
    unset($data['parent']);
    unset($data['history_vote']);
    unset($data['point_count']);
    unset($data['point_sum']);
    if (empty($mini['member']['level_admin'])) {
        unset($data['is_del']);
        unset($data['trackback']);
        unset($data['ment_advice']);
        unset($data['is_lock']);
        unset($data['admit_file']);
        unset($data['admit_post']);
    }
    //// 게시판 설정
    if (!is_array($board_data)) {
        if ($param['id']) {
            $board_data = getBoard($param['id'], 1);
        } else {
            __error('게시판 설정이 없습니다');
        }
    }
    //// 게시물 번호
    $no = $param['no'] ? $param['no'] : $data['no'];
    unset($data['no']);
    check($no, "type:num, name:댓글번호");
    //// 데이터 로드
    if ($param['is_ex']) {
        $data_ex = sql("SELECT * FROM {$board_data['table_cmt']} WHERE no={$no}");
        if (!is_array($data_ex)) {
            __error('해당 댓글이 존재하지 않습니다');
        }
    }
    //// 잠긴댓글
    if (empty($mini['member']['level_admin']) && !empty($data_ex['is_lock'])) {
        __error('댓글이 잠겨 있어 수정, 삭제를 할 수 없습니다');
    }
    //// 회원정보 로드
    if (!empty($data_ex['target_member'])) {
        $mdata = sql("SELECT * FROM {$mini['name']['member']} WHERE no={$data_ex['target_member']}");
        // 회원정보 업데이트 여부
        if ($param['is_update'] && $param['is_ex'] && $data_ex['target_member']) {
            if (is_array($mdata)) {
                parseMember($mdata);
                $data['name'] = $mdata['name'];
            } else {
                $data_ex['target_member'] = $data['target_member'] = 0;
                $data['pass'] = md5();
            }
        }
    }
    //// 권한 체크
    if (empty($data_ex['trackback'])) {
        if (!empty($data_ex['target_member'])) {
            if (empty($mini['log'])) {
                __error('권한이 없습니다. [로그인이 필요합니다]');
            }
            if (empty($mini['member']['level_admin']) && $mdata['no'] != $mini['member']['no']) {
                __error('권한이 없습니다. [자신이 쓴 댓글만 수정할 수 있습니다]');
            }
            if (!empty($mini['member']['level_admin']) && $mdata['no'] != $mini['member']['no'] && $mdata['level_admin'] >= $mini['member']['level_admin']) {
                __error('권한이 없습니다. [자신보다 높거나 같은 권한의 관리자가 쓴 댓글 입니다]');
            }
        } else {
            if (empty($mini['member']['level_admin'])) {
                if (empty($data['pass_encode'])) {
                    __error('비밀번호가 없습니다');
                }
                if (!empty($mini['log']) && empty($mini['member']['level_admin'])) {
                    __error('권한이 없습니다. [비회원이 쓴댓글 입니다]');
                }
                if (empty($mini['member']['level_admin']) && $data['pass_encode'] != md5("{$data_ex['pass']}|{$mini['ip']}|" . session_id())) {
                    __error("권한이 없습니다. [비밀번호가 일치하지 않습니다]");
                }
            }
        }
    }
    //// 추가필드 권한 체크
    if (!empty($board_data['field'])) {
        foreach ($board_data['field'] as $key => $val) {
            if (!empty($data['field'][$key]) && !empty($val['is_admin']) && empty($mini['member']['level_admin'])) {
                __error("[{$val['name']}]은 관리자만 입력하실 수 있습니다");
            }
            if (empty($data['field'][$key]) && !empty($val['is_req'])) {
                __error("[{$val['name']}]을 입력해 주세요");
            }
        }
    }
    //// 수정 시간제한
    if (!empty($board_data['limit_edit_comment']) && empty($mini['member']['level_admin'])) {
        if (!empty($data_ex) && strtotime($data_ex['date']) + $board_data['limit_edit_comment'] * 60 < $mini['time']) {
            __error("작성 후 {$board_data['limit_edit_comment']}분이 지난 댓글을 수정할 수 없습니다");
        }
    }
    //// 대상 게시물 정보 로드
    check($data['target_post'], "type:num, name:대상게시물번호");
    $data_post = sql("SELECT * FROM {$board_data['table']} WHERE no={$data['target_post']}");
    //// 답변 댓글일 때 원본 댓글 정보 로드
    if (!empty($data_ex['parent'])) {
        $data_reply = sql("SELECT * FROM {$board_data['table_cmt']} WHERE no=" . end(getStr($data_ex['parent'])));
        if (is_array($data_reply)) {
            // 원본 댓글이 비밀일 때 답변들도 비밀 유지
            if (!empty($data_reply['secret'])) {
                $data['secret'] = 1;
            }
            // 공지댓글에 댓글 금지
            if (!empty($data_reply['notice'])) {
                __error('공지댓글에는 댓글을 달 수 없습니다');
            }
        }
    }
    //// 입력정보 체크
    if (isset($data['name'])) {
        check($data['name'], "min:1, max:16, name:이름");
    }
    if (isset($data['mail'])) {
        check($data['mail'], "type:mail, name:메일, is_not:1");
    }
    //// 입력변수 체크
    if ($param['is_check']) {
        // 입력변수 체크
        checkField($data, $board_data['table_cmt'], $param);
        // 글 가공
        checkPost($data, $board_data, 'cmt');
    }
    //// 직접 수정이 안되는 정보는 제외시킨다
    unset($data['no']);
    unset($data['reply']);
    unset($data['pass']);
    unset($data['vote']);
    unset($data['hate']);
    unset($data['ip']);
    unset($data['date']);
    unset($data['target_member']);
    //// trackback
    if (!empty($param['trackback'])) {
        $data['trackback'] = $param['trackback'];
    }
    //+ 권한별로 제외하는 필드를 지정한다. (이를테면 target_member 같은거 바꿀 수 없으니깐)
    //// 쿼리
    sql("UPDATE {$board_data['table_cmt']} SET " . query($data, 'update') . " WHERE no={$no}");
    $data['no'] = $data_ex['no'];
    //// 검색어 수정
    if ($param['is_ex']) {
        if (!empty($data['ment']) && $data_ex['ment'] != $data['ment']) {
            $data_ex['ment'] = $data['ment'];
        }
        if (!empty($data['name']) && $data_ex['name'] != $data['name']) {
            $data_ex['name'] = $data['name'];
        }
        if (!empty($data['tag']) && $data_ex['tag'] != $data['tag']) {
            $data_ex['tag'] = $data['tag'];
        }
        delIndex($data_post['num'], $data_ex['no']);
        addIndex($data_ex, "\n\t\t\t\tid: {$board_data['no']}\n\t\t\t\tnum: {$data_post['num']}\n\t\t\t\tcmt_no: {$data_ex['no']}\n\t\t\t\tdate: {$data_ex['date']}\n\t\t\t\tip: {$data_ex['ip']}\n\t\t\t");
    }
    //// 트랙백 댓글 주소 설정
    if (!empty($data_reply) && !empty($data_reply['trackback'])) {
        $tmp_data = getSocket("\n\t\t\t\turl: {$data_reply['trackback']}\n\t\t\t\tskip_header: 1\n\t\t\t");
        if (!empty($tmp_data) && strpos($tmp_data, "<rdf:RDF") !== false) {
            preg_match("/\\<rdf\\:Description.+trackback\\:ping\\=\"([^\"]+)\" \\/\\>/is", $tmp_data, $mat);
            if (!empty($mat[1])) {
                $trackback = $mat[1];
            }
        }
    }
    //// 트랙백 보내기
    if (!empty($trackback)) {
        $result = '';
        $result = sendTrackback($trackback, $trackback_excerpt, $trackback_charset, $data, $board_data, 'cmt');
        if ($result) {
            __error("댓글 수정에 성공했지만 트랙백을 보내지 못했습니다. ({$result})");
        }
    }
    //// 이미지 치환
    if (!empty($is_saveImage) && !empty($data['ment'])) {
        $data['ment'] = saveImage($data_ex['no'], $data['ment'], $board_data, 'cmt');
        sql("UPDATE {$board_data['table_cmt']} SET ment='{$data['ment']}' WHERE no={$data_ex['no']}");
    }
}
Exemple #3
0
 * Created by PhpStorm.
 * User: Mr.Jadyn
 * Date: 15/10/4
 * Time: 下午5:07
 */
/**
 * 错误码:
 *
 * 1:没有填题目
 * 2:没有填作者
 * 3:没有填内容
 * 100:存储成功
 */
include_once "connectDB.php";
if (isset($_POST)) {
    if (checkPost()) {
        $title = $_POST['title'];
        $author = $_POST['author'];
        $content = $_POST['content'];
        $conn = connect_database();
        $conn->query("set names utf8");
        $result = $conn->query("insert into article (title,author,content) values('{$title}','{$author}','{$content}')");
        if ($result) {
            echo 100;
        }
    }
}
function checkPost()
{
    if ($_POST['title'] == "") {
        echo 1;
Exemple #4
0
        return false;
    }
    // Verify User sanitize the input
    if ($Login->verifyUserByToken($args['username'], $args['tokenEmail'])) {
        // Renew the tokenCRFS. This token will be the same inside the session for multiple forms.
        $Security->generateToken();
        Redirect::page('admin', 'dashboard');
        return true;
    }
    // Bruteforce protection, add IP to blacklist.
    $Security->addLoginFail();
    return false;
}
// ============================================================================
// Main before POST
// ============================================================================
// ============================================================================
// GET Method
// ============================================================================
if (!empty($_GET['tokenEmail']) && !empty($_GET['username'])) {
    checkGet($_GET);
}
// ============================================================================
// POST Method
// ============================================================================
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    checkPost($_POST);
}
// ============================================================================
// Main after POST
// ============================================================================
$stripmetaaloud = checkPost($stripmetaaloud, $_frozen_flags['strip_meta']);
$striptitlealoud = checkPost($striptitlealoud, $_frozen_flags['strip_title']);
$sessioncookiesaloud = checkPost($sessioncookiesaloud, $_frozen_flags['session_cookies']);
$loging = checkPost($loging, $_config['log_mode']);
$title = checkPost($title, $sitetitle);
$footer = checkPost($footer, $sitefooter);
$ads22 = checkPost($ads22, $ads2);
$ads11 = checkPost($ads11, $ads1);
$notes1 = checkPost($notes, $notes1);
$defulturl = checkPost($defulturl, $_url);
$linkback2 = checkPost($linkback2, $linkback);
$Translate = checkPost($Translate, $googlea);
$analytics = checkPost($analytics, $googleap);
$analyticsp = checkPost($analyticsp, $googlet);
$homepagepost = checkPost($homepagepost, $homepage);
$homepageimagepost = checkPost($homepageimagepost, $homepageimage);
//What time did we save?
$savetime = date(DATE_RFC822);
//Make a new file to save
$settos = <<<OUT
<?php
/*
Original Author: Abdullah Arif
Fork Author: Jeffery Schefke
License : GNU General Public License
phproxyimproved.com
*/

//Edited to work for Admin Module
//Stock proxy settings
\$_config            = array