Ejemplo n.º 1
0
Archivo: post.php Proyecto: poppen/p2
/**
 * 書き込みログを記録する
 *
 * @param   string   $from     タグCVS記録のためにフォーマット済みであること
 * @param   string   $mail     同上
 * @param   string   $message  同上
 * @param   string   $ttitle   同上(元々フォーマットの必要なし)
 * @return  boolean
 */
function _recResLog($from, $mail, $message, $ttitle, $host, $bbs, $key, $rescount)
{
    global $_conf;
    // 後方互換措置。
    // データPHP形式(p2_res_hist.dat.php, タブ区切り)の書き込み履歴を、dat形式(p2_res_hist.dat, <>区切り)に変換する
    P2Util::transResHistLogPhpToDat();
    FileCtl::make_datafile($_conf['p2_res_hist_dat'], $_conf['res_write_perm']);
    $resnum = '';
    if (!empty($_POST['newthread'])) {
        $resnum = 1;
    } else {
        if ($rescount) {
            $resnum = $rescount + 1;
        }
    }
    $newdata_ar = array($from, $mail, date("y/m/d H:i"), $message, $ttitle, $host, $bbs, $key, $resnum);
    $newdata = implode('<>', $newdata_ar) . "\n";
    // まずタブを全て外して(2chの書き込みではタブは削除される 2004/12/13)
    $newdata = str_replace("\t", '', $newdata);
    // <>をタブに変換して
    //$newdata = str_replace('<>', "\t", $newdata);
    $done = false;
    if ($fp = fopen($_conf['p2_res_hist_dat'], 'ab+')) {
        flock($fp, LOCK_EX);
        if (false !== fwrite($fp, $newdata)) {
            $done = true;
        }
        flock($fp, LOCK_UN);
        fclose($fp);
    }
    if (!$done) {
        trigger_error('p2 error: 書き込みログの保存に失敗しました', E_USER_WARNING);
        return false;
    }
    return true;
}
Ejemplo n.º 2
0
//================================================================
// 特殊な前処理
//================================================================
// 削除
if (isset($_POST['submit']) and $_POST['submit'] == $deletemsg_st or isset($_GET['checked_hists'])) {
    $checked_hists = array();
    if (isset($_POST['checked_hists'])) {
        $checked_hists = $_POST['checked_hists'];
    } elseif (isset($_GET['checked_hists'])) {
        $checked_hists = $_GET['checked_hists'];
    }
    $checked_hists and deleMsg($checked_hists);
}
// 古いバージョンの形式であるデータPHP形式(p2_res_hist.dat.php, タブ区切り)の書き込み履歴を、
// dat形式(p2_res_hist.dat, <>区切り)に変換する
P2Util::transResHistLogPhpToDat();
//======================================================================
// メイン
//======================================================================
$karappoMsgHtml = 'p2 - 書き込み履歴内容は空っぽのようです。';
if (!$_conf['res_write_rec']) {
    $karappoMsgHtml .= sprintf('<p>現在、書き込み内容ログは記録しない設定になっています。<br>設定は、%sのページで変更可能\です。</p>', P2View::tagA(UriUtil::buildQueryUri('edit_conf_user.php', array(UA::getQueryKey() => UA::getQueryValue())), hs('設定編集'), array('target' => 'subject')));
}
// 特殊DAT読み
if (!file_exists($_conf['p2_res_hist_dat'])) {
    P2Util::printSimpleHtml($karappoMsgHtml);
    exit;
}
$res_hist_dat_size = filesize($_conf['p2_res_hist_dat']);
$logSizeSt = P2Util::getTranslatedUnitFileSize($res_hist_dat_size);
$maxLogSize = 0;
Ejemplo n.º 3
0
/**
 * 書き込みログを記録する
 *
 * @param   string   $from     タグCVS記録のためにフォーマット済みであること
 * @param   string   $mail     同上
 * @param   string   $message  同上
 * @param   string   $ttitle   同上(元々フォーマットの必要なし)
 * @return  boolean
 */
function recResLog($from, $mail, $message, $ttitle, $host, $bbs, $key, $rescount)
{
    global $_conf;
    // 旧互換措置。
    // データPHP形式(p2_res_hist.dat.php, タブ区切り)の書き込み履歴を、dat形式(p2_res_hist.dat, <>区切り)に変換する
    P2Util::transResHistLogPhpToDat();
    $date_and_id = date("y/m/d H:i");
    FileCtl::make_datafile($_conf['p2_res_hist_dat'], $_conf['res_write_perm']);
    $resnum = '';
    if (!empty($_POST['newthread'])) {
        $resnum = 1;
    } else {
        if ($rescount) {
            $resnum = $rescount + 1;
        }
    }
    $newdata = $from . '<>' . $mail . "<>{$date_and_id}<>{$message}<>{$ttitle}<>{$host}<>{$bbs}<>{$key}<>{$resnum}";
    // まずタブを全て外して(2chの書き込みではタブは削除される 2004/12/13)
    $newdata = str_replace("\t", '', $newdata);
    // <>をタブに変換して
    //$newdata = str_replace('<>', "\t", $newdata);
    $cont = $newdata . "\n";
    if (false === file_put_contents($_conf['p2_res_hist_dat'], $cont, FILE_APPEND | LOCK_EX)) {
        trigger_error('p2 error: 書き込みログの保存に失敗しました', E_USER_WARNING);
        return false;
    }
    return true;
}