예제 #1
0
 /**
  * (non-PHPdoc)
  * @see CommonAction::edit()
  * 配置文件新增
  */
 public function add()
 {
     $this->assign("md", $_REQUEST['md']);
     //查询 排序
     $model = D("Dynamicconf");
     if (file_exists($model->GetFile($_REQUEST['md']))) {
         $aryRule = (require $model->GetFile($_REQUEST['md']));
     }
     Krsort($aryRule);
     foreach ($aryRule as $k => $v) {
         $id = $k + 1;
         break;
     }
     //$id 为已有字段排序 最大序号
     $this->assign("id", $id + 1);
     $this->display();
 }
예제 #2
0
파일: fun.php 프로젝트: Ben749/racetrack
function kill($x = '')
{
    static $t, $db;
    if (e(',die,kill,r302,r301', 1) or $t) {
        die;
    }
    #évite toute recursion et la place en fonction de die final, notez que plusieurs fonctions de shutdown peuvent être définies l'appel à la fonction permet de stocker un context backtrace
    if (isset($GLOBALS['mysqlconnection'])) {
        mysqli_close($GLOBALS['mysqlconnection']);
        unset($GLOBALS['mysqlconnection']);
    }
    if (J10) {
        FB($_ENV);
    }
    if (isset($_ENV['dieecho'])) {
        echo implode('<li>', $_ENV['dieecho']);
    }
    #dernier echo
    if ($x) {
        echo $x;
    }
    Gt('kill');
    $t = 1;
    $_ENV['backtrace'] = debug_backtrace();
    #attribuer le dernier backtrace
    if (!isset($_ENV['backtrace'][0]['file'])) {
        $_ENV['backtrace'] = 'die;';
    } else {
        foreach ($_ENV['backtrace'] as $k => $v) {
            if (preg_match('~^(require|include)~i', $v['function'])) {
                continue;
            }
            $b[] = str_replace('/home/www/', '', $v['file']) . ':' . $v['line'] . ' ::: ' . $v['function'] . (count($v['args']) > 0 ? "(" . fixSer($v['args']) . ")" : '()');
        }
        Krsort($b);
        $_ENV['backtrace'] = $b;
    }
    $db = debug_backtrace();
    krsort($db);
    $bt = print_r($_ENV['backtrace'], 1);
    #if($bt!='die;'&&j9&&preg_match("#\.(html?|php)#",SU))fb('kill::'.$bt);
    if (count($db) > 1 && J9 && preg_match("#\\.(html?|php)#", SU)) {
        fb('kill::' . print_r($db, 1));
    }
    if (e('sqlon', 1)) {
        rep('#,sqlon:[^,]+#', '', $_ENV['args']);
    }
    if (session_id()) {
        session_write_close();
    }
    #fermer la session
    if (isset($_ENV['argswrite'])) {
        FPC(ERLOGS, "\n" . $_ENV['args'], 4);
    }
    #écrire arguments dans error log
    if (STARTER) {
        if (isset($_GET['r301'])) {
            FAP(IPF, 'lh', '!301');
        } else {
            FAP(IPF, 'lh', '!200');
        }
    }
    #écrire les ipf
    FAP(1);
    FPC(1);
    Gt('kill.2:fap');
    #écrire les fichiers en attente
    if (ini_get('apc.enabled')) {
        global $apc;
        #Si APC est présent avec des variables à enregistrer
        if (count($apc) > 1) {
            $size = $apc['size'];
            unset($apc['size']);
            foreach ($apc as $k => $v) {
                $s = count($v) - $size[$k];
                if ($s == 0) {
                    continue;
                }
                ApcP($k, $v, $s);
            }
        }
    }
    e(',kill,die');
    #no recursion
    if (isset($_POST['shut1']) || US == 'ben') {
        die;
    }
    #||$a['USER']=='ben'||$a['USER']=='root'
    #finalization shutdown av("//shut:".$_ENV['args'].':'.e(',exit,r301,dead1,timerror,timerror',1),-1);#dev|/
    if (isset($_ENV['eval1'])) {
        e('eval1');
        eval($_ENV['eval1']);
    }
    #pour pousser des fonctions : ex : système de cache par dessus joomla
    if (RS != 404 && (isset($_ENV['eval']) || isset($_ENV['vars'])) && !preg_match("~base64|(\\.|\\?)(css|js|rss|jpe?g|gif|ico|png)\$~", u) && filemtime($_SERVER['SCRIPT_FILENAME']) > $_ENV['mtime']['fmtpdata']) {
        #av($_ENV);#de toutes façons écrit le fichier des performances
        if (!is_array($x)) {
            $x = [];
        }
        $f = TMP . "perf/" . mu . ".db";
        $x['eval'] = $_ENV['eval'];
        $x['vars'] = $_ENV['vars'];
        FAP($f, $x);
        unset($_ENV['vars'], $_ENV['eval']);
    }
    #fpdata dans shutdown de append.php
    #if(strpos(SU,'x24.fr/?list='))die(pre(dbgt()).pre($a).pre($_ENV));
    if (Gt('kill') > 20) {
        null;
    }
    #$_ENV['args'].=',FAPDcount:'.FAPD(2);
    #Gt('shut1');#un temps phénoménal entre cacheon et kill à parvenir ici
    if (US == 'ben' || e(',exit,dead1,timerror,timerror', 1)) {
        return;
    }
    #encore une fois, mais ne stoppe rien
    #elseif(j9)av($_SESSION);#if(j9)echo'+'.__LINE__;#dev
    #elseif($_SESSION)FAP(ipf,'session',$_SESSION);//Si session mais sans support .. prend bcp de place d'ailleurs..
    #vérifier une fois sur die si,conf-loaded && $fmt['conf']>filemtime($a['SCRIPT_NAME']) || ,$conf..
    unset($x);
    if (e(',r404,r301', 1)) {
        die;
    }
    #ne rien calculer de plus ...
    $x = memory_get_peak_usage(1) / 1000000;
    if ($x > 15 && !isset($_ENV['noperf']) && !e('noperf', 1) && !preg_match('~earthlight|zsimu|2Test|intranet|internes|revuehommage|alarmemaison|z/sql/~i', SU)) {
        Db(SU . ">usage:{$x}>" . print_r($_ENV['Mem'], 1));
        if (J9) {
            echo "//peakus:{$x} Mo ram args:" . $_ENV['args'];
        }
    }
    #if(us=='ben'){xMail(adminemail,'shutdown',pre($_ENV['dbe']).DB2());die;}
    #av("//shut2:".$_ENV['args'],-1);#dev
    if (!e(',noperf', 1)) {
        GT('kill.4:aftermem');
        perf();
        Gt('kill.5:afterperf');
    }
    #if(!J9&&!preg_match("#(\.|\?)(js|css|xml)#i",U)&&!e(',noperf',1))die("<!--kill:gene:$_ENV[lasttime]ms-->");#Final
    die;
    # de toutes façons
}