Ejemplo n.º 1
0
/**
 * 書き込みデータの保存形式を変更する
 *
 * @param string $post_db_path
 * @return void
 */
function _100120_0700_convert_post_data_store($post_db_path)
{
    if (!file_exists($post_db_path)) {
        return;
    }
    $oldKvs = P2KeyValueStore::getStore($post_db_path, P2KeyValueStore::CODEC_SERIALIZING);
    $newKvs = PostDataStore::getKVS();
    foreach ($oldKvs as $key => $value) {
        $newKvs->set($key, $value);
    }
    if ($oldKvs->getTableName() != $newKvs->getTableName()) {
        $oldKvs->prepare('DROP TABLE $__table')->execute();
    }
    // プリペアードステートメントを破棄するために optimize()
    $newKvs->optimize();
}
Ejemplo n.º 2
0
// }}}
// {{{ 初期化
$post_param_keys = array('bbs', 'key', 'time', 'FROM', 'mail', 'MESSAGE', 'subject', 'submit');
$post_internal_keys = array('host', 'sub', 'popup', 'rescount', 'ttitle_en');
foreach ($post_param_keys as $pk) {
    ${$pk} = isset($_POST[$pk]) ? mb_convert_encoding($_POST[$pk], 'CP932', 'UTF-8') : '';
}
foreach ($post_internal_keys as $pk) {
    ${$pk} = isset($_POST[$pk]) ? $_POST[$pk] : '';
}
// したらばのlivedoor移転に対応。post先をlivedoorとする。
$host = P2Util::adjustHostJbbs($host);
// machibbs、JBBS@したらば なら
if (P2Util::isHostMachiBbs($host) or P2Util::isHostJbbsShitaraba($host)) {
    /* compact() と array_combine() でPOSTする値の配列を作るので、
       $post_param_keys と $post_send_keys の値の順序は揃える! */
    //$post_param_keys  = array('bbs', 'key', 'time', 'FROM', 'mail', 'MESSAGE', 'subject', 'submit');
    $post_send_keys = array('BBS', 'KEY', 'TIME', 'NAME', 'MAIL', 'MESSAGE', 'SUBJECT', 'submit');
    // 2ch
} else {
    $post_send_keys = $post_param_keys;
}
$post = array_combine($post_send_keys, compact($post_param_keys));
unset($post['submit']);
// }}}
// {{{ execute
$post_backup_key = PostDataStore::getKeyForBackup($host, $bbs, $key, !empty($_REQUEST['newthread']));
PostDataStore::set($post_backup_key, $post);
echo '1';
exit;
// }}}
Ejemplo n.º 3
0
    $hd['FROM'] = htmlspecialchars($line[7], ENT_QUOTES);
    $hd['mail'] = htmlspecialchars($line[8], ENT_QUOTES);
}
// }}}
// {{{ データベースから前回のPOST失敗データとberes/p2resの設定を読込み
$post_backup_key = PostDataStore::getKeyForBackup($host, $bbs, $key, !empty($_REQUEST['newthread']));
$post_config_key = PostDataStore::getKeyForConfig($host, $bbs);
// 前回のPOST失敗データ
if ($post_backup = PostDataStore::get($post_backup_key)) {
    $hd['FROM'] = htmlspecialchars($post_backup['FROM'], ENT_QUOTES, 'Shift_JIS');
    $hd['mail'] = htmlspecialchars($post_backup['mail'], ENT_QUOTES, 'Shift_JIS');
    $hd['MESSAGE'] = htmlspecialchars($post_backup['MESSAGE'], ENT_QUOTES, 'Shift_JIS');
    $hd['subject'] = htmlspecialchars($post_backup['subject'], ENT_QUOTES, 'Shift_JIS');
}
// beres/p2res
if ($post_config = PostDataStore::get($post_config_key)) {
    if ($post_config['beres']) {
        $hd['beres_checked'] = ' checked';
    }
    if ($post_config['p2res']) {
        $hd['p2res_checked'] = ' checked';
    }
}
// }}}
// {{{ 名前とメールの最終調整
// 空白はユーザ設定値に変換
if ($hd['FROM'] === '') {
    $hd['FROM'] = htmlspecialchars($_conf['my_FROM'], ENT_QUOTES, 'Shift_JIS');
}
if ($hd['mail'] === '') {
    $hd['mail'] = htmlspecialchars($_conf['my_mail'], ENT_QUOTES, 'Shift_JIS');
Ejemplo n.º 4
0
            CookieDataStore::delete($cookie_key);
            $p2cookies = null;
        }
    } else {
        $p2cookies = null;
    }
    // 直接書き込み
    $posted = postIt($host, $bbs, $key, $post);
    // cookie 保存
    if ($p2cookies) {
        CookieDataStore::set($cookie_key, $p2cookies);
    }
}
// 投稿失敗記録を削除
if ($posted) {
    PostDataStore::delete($post_backup_key);
}
//=============================================
// スレ立て成功なら、subjectからkeyを取得
//=============================================
if (!empty($_POST['newthread']) && $posted) {
    sleep(1);
    $key = getKeyInSubject();
}
//=============================================
// key.idx 保存
//=============================================
// <> を外す。。
$tag_rec['FROM'] = str_replace('<>', '', $FROM);
$tag_rec['mail'] = str_replace('<>', '', $mail);
// 名前とメール、空白時は P2NULL を記録