/**
 * アクションプラグイン処理
 */
function plugin_log_guess_user_convert()
{
    global $_log_guess_user_msg;
    global $log;
    // ユーザを推測する
    // $user = log::guess_user( $data['user'], $data['ntlm'], $data['sig'] );
    $filename = log::set_filename('guess_user', '');
    // ログファイル名
    $src = array();
    $master = array();
    if (file_exists($filename)) {
        $src = @file($filename);
    }
    // ログの読み込み
    foreach ($src as $_src) {
        $data = log::table2array($_src);
        // 0:ua 1:host 2:user
        $master[$data[0]][$data[1]][$data[2]] = '';
    }
    // 更新ログから署名情報の収集
    // $guess[ USER-AGENT ][ ホスト名 ][ ユーザ名 ][任意欄] の配列を戻す
    $guess = log::summary_signature();
    $i = 0;
    foreach ($guess as $ua => $val1) {
        foreach ($val1 as $host => $val2) {
            foreach ($val2 as $user => $val3) {
                if (isset($master[$ua][$host][$user])) {
                    continue;
                }
                log_put($filename, '|' . $ua . '|' . $host . '|' . $user . '||');
                $i++;
            }
        }
    }
    $msg = sprintf($_log_guess_user_msg['msg_put'], $i);
    return $msg;
}
Exemplo n.º 2
0
     break 1;
 }
 if (isset($_GET["getdesc"])) {
     //asking for the description of a cell
     cell_desc();
     break 2;
 }
 if (isset($_POST["actupd"])) {
     //update an activity
     update_activity($_STATE);
     echo $_STATE->msgStatus;
     break 2;
 }
 if (isset($_POST["btnPut"])) {
     //asking for a download
     log_put();
     break 2;
 }
 if (!(isset($_GET["row"]) || isset($_POST["row"]))) {
     throw_the_bum_out(NULL, "Evicted(" . __LINE__ . "): GET/POST row not supplied");
 }
 $SCION = $_STATE->scion_pull();
 //use the child thread
 $HTML = "@";
 //tell server_call to do an eval
 while (1 == 1) {
     switch ($SCION->status) {
         case STATE::INIT:
             $SCION->row = $_GET["row"];
             //working on this displayed row
             if ($SCION->row == 0) {
Exemplo n.º 3
0
function log_put_guess($data)
{
    // ユーザを推測する
    $user = log::guess_user($data['user'], $data['ntlm'], $data['sig']);
    if (empty($user)) {
        return;
    }
    $filename = log::set_filename('guess_user', '');
    // ログファイル名
    if (file_exists($filename)) {
        $src = file($filename);
        // ログの読み込み
    } else {
        // 最初の1件目
        $data = log::array2table(array($data['ua'], $data['host'], $user, ""));
        log_put($filename, $data);
        return;
    }
    $sw = FALSE;
    foreach ($src as $_src) {
        $x = trim($_src);
        $field = log::table2array($x);
        // PukiWiki 表形式データを配列データに変換
        if (count($field) == 0) {
            continue;
        }
        if ($field[0] != $data['ua']) {
            continue;
        }
        if ($field[1] != $data['host']) {
            continue;
        }
        if ($field[2] != $user) {
            continue;
        }
        $sw = TRUE;
        break;
    }
    if ($sw) {
        return;
    }
    // 既に存在
    // データの更新
    $data = log::array2table(array($data['ua'], $data['host'], $user, ''));
    log_put($filename, $data);
}