トップページphp
1001コメント311KB

【PHP】下らねぇ質問はID出して書き込みやがれ 114

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/01/02(月) 02:03:25.50ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 113
http://kohada.2ch.net/test/read.cgi/php/1322564127/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
03523492012/01/06(金) 20:19:50.10ID:ISncG55/
>>350
取得したソースをいじくってから表示させたいのです。
取得対象はxmlではなく(たぶんphpで吐き出した)htmlです。
03533492012/01/06(金) 20:21:02.60ID:???
>>351
curlを使っても無理ですか?
0354nobodyさん2012/01/06(金) 20:23:13.16ID:???
>>353
クライアントサイドスクリプトってなーにってところからググッて
0355nobodyさん2012/01/06(金) 20:26:02.47ID:???
ASP.NET最強
0356nobodyさん2012/01/06(金) 20:28:17.32ID:???
>>354
そうですよね、言われてみれば。
ブラウザに組み込まれていない生のjavascriptっていうもんがあれば行けそうですが。
現状、方法はないということで了解しました。
0357nobodyさん2012/01/06(金) 20:31:44.53ID:???
>>356
>現状、方法はないということで了解しました。
どういうことなの
方法は教えたし
03583492012/01/06(金) 20:36:54.90ID:???
>>357
裏でブラウザを立ち上げるっていう方法しかない、それはいやだな、ということです。
あんまりカリカリしないでください。
0359nobodyさん2012/01/06(金) 20:44:28.89ID:???
そか
じゃあ仕方ないな
どうせ人のフンドシでスモウを取るような事を考えてたんだろ
それ相応のスキルを身につけてから考えようぜ
0360nobodyさん2012/01/06(金) 20:58:58.95ID:???
>>351
理解してないのはオマエだ
0361nobodyさん2012/01/06(金) 21:01:28.18ID:???
自身で非同期通信をやってみれば原理がわかるんじゃない
0362nobodyさん2012/01/06(金) 21:57:09.55ID:???
>>360
お前だよ
0363nobodyさん2012/01/06(金) 22:14:44.34ID:???
>>362
javascriptを実行するのはクライアントのブラウザだってわかってる?
0364nobodyさん2012/01/06(金) 22:18:39.17ID:???
>>363
おまえ>>349の質問の意味わかってねーじゃん
バカなの?ハゲなの?
0365nobodyさん2012/01/06(金) 22:29:23.31ID:???
>>363
マジ痛すぎ
0366nobodyさん2012/01/06(金) 22:33:05.28ID:???
>>364
とりあえず 「AjaxでxmlかJSONを読み込み表示する」 までやってみよう 話はそれからだ
0367nobodyさん2012/01/06(金) 22:40:28.35ID:???
>>366
ほんと痛いなこいつ
0368nobodyさん2012/01/06(金) 22:42:16.99ID:???
いつものおっさんじゃねーのw
0369nobodyさん2012/01/06(金) 22:46:18.19ID:???
なるほど Ajax使ったことの無い人間がAjaxの質問に答えようとしたのか
0370nobodyさん2012/01/06(金) 22:51:49.81ID:???
こっちが恥ずかしくなってきたw
なにこのなんともいえないキブンwww
0371nobodyさん2012/01/06(金) 23:36:53.54ID:???
年末から変なの住み着いてこのスレも死んだな
0372nobodyさん2012/01/06(金) 23:37:50.28ID:???
>>368
いつものおっさんではない オレはまだ0x二十代だ
いつものおっさんほど詳しくないし FWとかぜんぜん興味ない
どちらかというと 乗り手を選ぶカリカリチューンド悪魔のZ的なスーパーハードコーデイングが大好きです

>>370
大丈夫か? 顔が真っ赤だぞ
先に言っておくが つり宣言は敗北宣言だ もうちょっとがんばれ
0373nobodyさん2012/01/06(金) 23:44:21.72ID:???
いや、トンチンカンで全く詳しくないからニートおっさんだと思われた訳で。
0374nobodyさん2012/01/06(金) 23:46:20.18ID:???
まちがいないだろうな
かわいそうに思えてきた
0375nobodyさん2012/01/06(金) 23:48:58.30ID:???
そもそも今の20代は悪魔のZなんてしらんしな
0376nobodyさん2012/01/06(金) 23:55:22.02ID:???
ちなみに 我々はこのデバック方を"フィッシャープリンティング"と呼んでいる が IDが出ないスレではあまり意味が無い
おまえら 0x二十代の意味ばらすなよ
0377nobodyさん2012/01/07(土) 00:00:22.48ID:CsZsKZfD
PHPでHadoopを作られた方いらっしゃいますか?
ちょっと難しくてお助けを・・・・。
0378nobodyさん2012/01/07(土) 00:05:54.48ID:???
おっさんが来たか
0379nobodyさん2012/01/07(土) 00:13:50.68ID:???
姉さん出番ですよ
0380nobodyさん2012/01/07(土) 00:14:47.22ID:???
ずっとはりついてるよおっさんは
0381nobodyさん2012/01/07(土) 00:41:56.83ID:CsZsKZfD
PHPでFacebookを作られた方いらっしゃいますか?
ちょっと難しくてお助けを・・・・。
0382nobodyさん2012/01/07(土) 04:09:12.62ID:???
超初心者なんですが、Amazonの商品情報を取得したくて、PHPの入門関連の本を見ながら勉強してます。

http://www.bnote.net/php/pear/01_cache.shtml
本や上記サイトをみながらAmazonの特定商品の情報は取得できるようになったのですが
現状ですとphpファイルに取得したい商品のasianをいちいち書き込んで保存して
http://xxxxxx/xxx.phpで表示しているので手間がかり使い勝手が悪いです。

http://xxxxxx/xxx.php?「商品のasian」'
のようにして、末尾のasianを変えるだけで、PHPファイルをいちいち弄らずAmazonの任意の商品情報取得したいんですが、
どのようにすればいいですか?

宜しくお願いします。
0383nobodyさん2012/01/07(土) 04:09:55.44ID:WBJb+YlP
すいません。あげ忘れました。
0384nobodyさん2012/01/07(土) 05:13:49.57ID:???
>>382
http://jp.php.net/manual/ja/reserved.variables.get.php
0385nobodyさん2012/01/07(土) 10:13:48.06ID:???
>>349
Prototype.js使ってさ、
001.html
<script type="text/javascript">
function sendRequest(){
new Ajax.Updater($('date'),'hello.php');}
window.onload=sendRequest;
</script>
<body>
<span id="date">・・・</span><br/>
</body>

hello.php
<?php
$contents = @file_get_contents("somefile.html");
echo $contents;
?>

somefile.html
<html><head></head><body>
範馬勇次郎
</body></html>

っで、001.htmlに範馬勇次郎って表示させる的なこと聞いてるの?
0386nobodyさん2012/01/07(土) 10:15:50.66ID:???
GETを理解してないのにAmazonのAPIが使えたところが謎だけど
その本とやらを窓から投げて1から学習したほうが身につきそうだな
0387nobodyさん2012/01/07(土) 10:19:13.10ID:???
>>385
質問よく読めよ
しかもなんでprototype限定なんだよキョウビprototypeなんか使ってるやつほとんどいねーよ

file_get_contents()でURL叩いてそのページにjavascriptの実行結果まで返して欲しいんだけどって質問だろうが
それに対して>>351がfile_get_contents()でjavascriptを実行できるわけないだろって返してるし
03883852012/01/07(土) 10:19:30.15ID:???
>>349
コンテンツ内容が空って、〜.phpがfile_get_contentsで〜.htmlを取得
するから、この〜.phpを非同期ができてないからエラーじゃないの?
つまり、php側でなく、Javascript側でエラーが出てるはず。
03893872012/01/07(土) 10:21:33.27ID:???
ミスった。388は385でなく387です。
0390nobodyさん2012/01/07(土) 10:22:57.30ID:???
>>389
おまえなに成りすまししてんだよ
しねよ
0391nobodyさん2012/01/07(土) 10:37:47.48ID:???
イ`
0392nobodyさん2012/01/07(土) 10:42:39.51ID:???
的確な回答でてるしね>>351
バックグラウンドでブラウザとPHPで連携するしかないでしょ
PHPでjavascriptをパースして実行結果を導き出すって方法もあるかもしれないけど出口の見えない途方も無い作業になるし
03933492012/01/07(土) 10:57:05.96ID:???
いろいろありがとうございます。
>>351さんに言われたとおりphpからjavascriptの非同期実行結果込みのページを取得しようとすること自体がそもそも間違っていたので
こちらもjavascriptで取得することにしました。
取得先URLを準備して、iframeのsrcへ突っ込み、見事javascript実行結果状態のページがフレーム内に表示されました(当たり前ですが)。
さてこのiframe内のソースをphpに投げれば余裕じゃんと思ったのですが、別ドメインのiframe内ソースって取れないんですね。
ぬおー、なんだよ、目の前に表示されてるのにソース読めないとか、まじですか、というところで止まっています。
php関係ないですね。できそうでできないです。
0394nobodyさん2012/01/07(土) 11:11:59.39ID:???
>>393
クロスドメインで簡単にゴニョゴニョできたらセキュリティ的にマズイでしょ
相当昔はできたけど今は簡単にはできないよ
0395nobodyさん2012/01/07(土) 11:20:47.88ID:???
>>393
「攻撃対象サイトのAjaxが取りに言ってるxmlをfile_get_contentsで取得してphpで加工して自分サイトに表示させたい」
ということ?
0396nobodyさん2012/01/07(土) 11:21:10.64ID:???
>>394
簡単にはできない、ということは、できるということですか?
iframeを入れ子にして孫から呼ぶみたいな説明も見かけたんですが理解できなかったです。
0397nobodyさん2012/01/07(土) 11:23:45.08ID:???
>>395
だからおまえはなんでxml限定なんだよ
おまえが一から学習してこい
レベルが低すぎておまえ会話になってねーんだよハゲ
03983492012/01/07(土) 11:24:00.96ID:???
>>395
いえ、違います。あと攻撃でもないです。
取得対象のサイトは、コンテンツ部分を非同期で持って来ているんです。
普通にブラウザでアクセスすれば、loadingてきなのがクルクルしてて、1秒後くらいにコンテンツが表示されるっていうサイトです。
そのloadingが終わった状態をこちらで取得したいということです。
0399nobodyさん2012/01/07(土) 11:29:03.85ID:???
>>398
ブラウザを操るか、ブラウザ動作を再現しろよ。確実にやるならJavaScriptが動作させられないと無理。
0400nobodyさん2012/01/07(土) 11:30:02.72ID:???
>>398
対象のURL貼ったほうが早い
04013492012/01/07(土) 11:32:16.37ID:???
>>399
やっぱりそうなりますか。
0402nobodyさん2012/01/07(土) 11:36:52.92ID:???
>>397
非同期で取得する対象って XMLとJSON以外で一般的なものってありますか?
0403nobodyさん2012/01/07(土) 11:39:32.36ID:???
>>402
馬鹿じゃないの
テキストでもHTMLでもなんでもあるだろが
おっさんもうおまえ人生詰んでるから吊ればいいと思うよ
0404nobodyさん2012/01/07(土) 11:42:04.39ID:???
>>403
マジか 名前空間使わない非同期って大変そうなんだけど
0405nobodyさん2012/01/07(土) 11:43:32.26ID:???
名前空間がなにに使われてると思ってんの
ほんと頭悪すぎ
0406nobodyさん2012/01/07(土) 11:45:38.12ID:???
第18章 PHPUnit と Selenium
http://www.phpunit.de/manual/3.2/ja/selenium.html



PHPUnit と Selenium を使用したテスト -- NetBeans IDE チュートリアル
http://netbeans.org/kb/docs/php/phpunit_ja.html
0407nobodyさん2012/01/07(土) 11:46:28.07ID:???
>>349
とりあえずクロスドメインをハックするのは諦めろ
もしその読み込み先がおまえの所有だったら読み込み先に親フレームにソース渡すとか方法はあるし
おまえが人のサイトをハックしようとしてるのはわかりきってるから方法があったとしても教えないよ
04083492012/01/07(土) 11:54:37.20ID:???
>>406
うお、これすげえ。
ブラウザ上の挙動を再現できそうですね、これはイケそうです。
敷居が高そうですがやってみます。

>>406
別に悪いことしようとなんて思ってないですよ。
そもそもfile_get_contentsという関数がphpに用意されているじゃないですか。
たまたま対象が非同期ページだっただけで。
04093492012/01/07(土) 11:56:54.91ID:???
下の方のレスは>>407さん宛でした
0410nobodyさん2012/01/07(土) 12:06:10.89ID:???
クロスサイトリクエストフォージェリだっけか 立派な攻撃だな
0411nobodyさん2012/01/07(土) 12:10:25.69ID:???
>>408
おまえ自分がどんだけアホなこと言ってるか理解しておいたほうがいいぞ
人を殺して「だって包丁が売ってるじゃないですか、たまたま刺したのが人だっただけで」って言ってるようなもん
しねよ
04123492012/01/07(土) 12:16:16.48ID:???
>>411
じゃあfile_get_contentsってどういう時に使うんですか?
自サイトから引っ張ってくるなら意味ないじゃないですか。
俺はその包丁で野菜を切ろうとしてるだけです。
0413nobodyさん2012/01/07(土) 12:16:44.23ID:???
さあ電波度が高まってまいりました
0414nobodyさん2012/01/07(土) 12:17:43.01ID:???
>>412
他人の畑の野菜をな
0415nobodyさん2012/01/07(土) 12:20:07.13ID:???
>>412
>>414
おまわりさんこっちです>>412こいつです!
0416nobodyさん2012/01/07(土) 12:23:26.07ID:???
file_get_contentsでデータ持ってきたら逮捕w
0417nobodyさん2012/01/07(土) 12:23:50.00ID:???
岡崎図書館事件もびっくりだな
0418nobodyさん2012/01/07(土) 12:26:09.14ID:???
おまえら中国人とかわらねぇ
0419nobodyさん2012/01/07(土) 12:29:52.34ID:???
>>417
あれは可愛そうだた 営業力のない技術者はただの道具になるしかないらしい
04203492012/01/07(土) 12:31:05.88ID:???
まじですか。
ブラウザでアクセスすれば普通に表示されるものをphpで取得することっておまわりさん呼ばれちゃうレベルなんですか?
ブラウザでも取得してますが。
ま、それを二次利用してこっちが儲けようとしてるんなら叩かれてもしょうがないですけど、
非公開localhost俺サイト用なんで前向きに質問しました。
スレ汚しごめんなさい。>>406さん、あんがとやんした。
0421nobodyさん2012/01/07(土) 12:41:07.87ID:???
いやおまわりさんはネタだろw
0422nobodyさん2012/01/07(土) 12:41:50.25ID:???
JavaScript使うサイトは、クライアント側の負荷が高くなる訳で、HTMLだけのクローラーよりアクセス増やしにくいが。
0423nobodyさん2012/01/07(土) 12:48:49.79ID:???
人の畑の野菜を勝手に刻んで包丁はそのためにあるんでしょ?と開き直る小僧
プログラマにもなれずプログラマのフリをしてトンチンカンな事を垂れ流し続ける人生詰んだおっさん
このスレレベル高すぎだろ
0424nobodyさん2012/01/07(土) 12:50:56.45ID:???
どれがどれに対するツッコミかよくわからんから
誰か一連まとめてくれ
0425nobodyさん2012/01/07(土) 13:01:24.02ID:???
>>424
荒らしVS暇人で遊んでただけだ 気にしなくていいと思う
0426nobodyさん2012/01/07(土) 13:17:09.06ID:4WAxjW+f
質問させてください

PHP + MySQLで初心者らしくWEB投票を作っています
しかしながらF5とか投票ボタンを連打するといくつもカウントされてしまいます
どうしたらF5攻撃を避けられるでしょうか?よろしくお願いします
0427nobodyさん2012/01/07(土) 13:27:40.64ID:???
それだけきっちりカウントされてるならよくできてる証拠だ
0428nobodyさん2012/01/07(土) 13:30:43.65ID:???
>>426
PHP + MySQLってことなんでその範囲で
とりあえずMySQLは目的に関係ない
PHPでCookieを使うかSESSIONを使え
1回目の投稿で投稿日時を保存
2回目の投稿の時に前の投稿から一定時間が経過していない場合はエラーを返すかDBに登録しない

教えてやったからコーラ買ってこいよ
0429nobodyさん2012/01/07(土) 13:32:01.36ID:???
IPやクッキーや携帯固有番号とかつかえ
0430nobodyさん2012/01/07(土) 13:39:14.31ID:???
>>384
ありがとうございます。
0431nobodyさん2012/01/07(土) 13:44:51.23ID:???
このPHPソースで情報とれたぞ。
このサイトで実験した。

http://gogomo.site90.net/

<?php
$ip = getenv("REMOTE_ADDR");
$host = getenv("REMOTE_HOST");
if ($host == null || $host == $ip) $host = gethostbyaddr($ip);
echo "IP = $ip</br>\n";
echo "HOST = $host</br>\n";
?>
0432nobodyさん2012/01/07(土) 13:53:19.27ID:???
またおっさん頓珍漢なこと書いてるし
マジで頭おかしいんじゃねーの
0433nobodyさん2012/01/07(土) 14:06:41.50ID:4WAxjW+f
>>428-429
ありがとうございます
しかしながら投稿時間とIPアドレスを保存して一定時間経過してない場合はエラーを返して終了する処理をしても多重投票されてしまいます。
国内サーバーの場合は問題ないのですが海外サーバーの場合レスポンスが遅いのでそれが原因でしょうか?
0434nobodyさん2012/01/07(土) 14:13:32.73ID:???
ソース晒したら問題に答えるよ
0435nobodyさん2012/01/07(土) 14:20:46.31ID:???
ただのPC向けサイトだったら

session_start();

$delay = 120; // 120秒制限

if($_SERVER['REQUEST_TIME'] - $_SESSION['posttime'] < $delay) {
echo '120秒の間隔をあけてくださいね';
exit;
}

// 初回もしくは120秒以上経過している
$_SESSION['posttime'] = $_SERVER['REQUEST_TIME'];
# ここでDBに投入
echo '投票しました';

こんだけ
コーラ買ってこいよ
0436nobodyさん2012/01/07(土) 14:33:49.61ID:???
sessionだとブラウザ再起動で再投票できてしまうかもな
ボット避けにimgタグでcookie食わせるのもいいかもね
あと 焼きそばパン買って来い
0437nobodyさん2012/01/07(土) 14:37:49.94ID:???
sessionを拒否してる場合は連投できるけど、初心者の習作だと思ってそこは説明しなかった
ややこしくなるだけだし
0438nobodyさん2012/01/07(土) 14:40:19.64ID:???
ソース無い時点で丸投げか釣り
まともに答える必要はない
0439nobodyさん2012/01/07(土) 15:25:05.07ID:4WAxjW+f
>>435
ありがとう。しかしながら

>>436-437
なるほど、sessionは使ってはいけないのですね
DBに投票時間とIPアドレス保存してそれをチェックが普通ですよね?

>>438
恥ずかしながらソース晒します笑わないでください
0440nobodyさん2012/01/07(土) 15:27:18.81ID:4WAxjW+f
ソースです

$regtime = time();
$ip = GETENV("REMOTE_ADDR");

# テーブルロック
$sql = "LOCK TABLES touhyou WRITE";
$rst = mysql_query($sql,$con);

# 多重投票チェック
$delay = time() - 10;
$sql = "SELECT * FROM touhyou WHERE (regtime > '$delay') AND (ip = '$ip')";
$rst = mysql_query($sql,$con);
$rec = mysql_num_rows($rst);
if($rec){ errorpage("多重投票禁止"); exit(); }

# 投票
$sql = "UPDATE touhyou SET count = ifnull(count,0) + 1,regtime = '$regtime',ip = '$ip' WHERE (code = '$code')";
$rst = mysql_query($sql,$con);

# テーブルロック解除
$sql = "UNLOCK TABLES";
$rst = mysql_query($sql,$con);
0441nobodyさん2012/01/07(土) 15:34:21.95ID:???
>>440
438じゃないけど
regtimeと$delayの比較が逆じゃない?

あとそのロジックだと1codeにregtimeとIPが1つずつしかないから
違うIPの人が交互に投票すれば制限なくなりそうだけど
0442nobodyさん2012/01/07(土) 15:36:45.34ID:???
あごめん、引っかかったらエラーだからいいのか。
0443nobodyさん2012/01/07(土) 15:47:58.06ID:4WAxjW+f
>>441
ありがとうございます
IPアドレスと投票時間だけのテーブルを別途作りました
これで多重投票はできない?

# 多重投票チェック
$delay = time() - 10;
$sql = "SELECT * FROM ipaddress WHERE (regtime > '$delay') AND (ip = '$ip')";
$rst = mysql_query($sql,$con);
$rec = mysql_num_rows($rst);
if($rec){ errorpage("多重投票禁止"); exit(); }

# テーブルロック
$sql = "LOCK TABLES touhyou WRITE";
$rst = mysql_query($sql,$con);

# IPアドレス追加
$sql = "INSERT INTO ipaddress (regtime,ip) values ('$regtime','$ip')";
$rst = mysql_query($sql,$con);

# 投票
$sql = "UPDATE touhyou SET count = ifnull(count,0) + 1 WHERE (code = '$code')";
$rst = mysql_query($sql,$con);

# テーブルロック解除
$sql = "UNLOCK TABLES";
$rst = mysql_query($sql,$con);
0444nobodyさん2012/01/07(土) 15:54:48.70ID:???
>>443
440のソースでやってみたらF5連打しても多重投票されなかったけど
0445nobodyさん2012/01/07(土) 15:56:38.23ID:???
ipだけ記録して24時間毎にデータベースを初期化すれば良い。
0446nobodyさん2012/01/07(土) 15:57:13.89ID:???
>>445
それだと初期化する1分前に投票して初期化後にまた投票できるぞ
0447nobodyさん2012/01/07(土) 16:00:43.57ID:???
いつ初期化されるのか確認するやつもいないだろ。
サーバーの処理が少ない方がいいんだ。
1分後に投票できたとしても次にできるまで24時間かかる。大した不正にならない。
0448nobodyさん2012/01/07(土) 16:33:03.74ID:4WAxjW+f
>>444
はい自宅の環境でも問題なかったです
しかしながら海外のレスポンス遅いサーバーでやると多重投票されてしまうのです

>>445-447も上と同じだと思います

テーブルロックするタイミングとか問題なのかな?と思っているのですがよくわかりません
0449nobodyさん2012/01/07(土) 16:54:16.52ID:???
>>448
そういうことなんで先に言わないの?
0450nobodyさん2012/01/07(土) 17:18:09.00ID:???
センスないなー

テーブルを
ip(IP入れる) post(投票IDを入れる)
ipがプライマリーキー

# 投票
INSERT IGNORE INTO tableName (ip,post) VALUES ($ip, $postid);

# 投票結果集計
SELECT COUNT(ip) AS n FROM tableName WHERE post=?;

これだけでいいじゃん
0451nobodyさん2012/01/07(土) 17:28:01.88ID:???
ちなみに>>450だとそのテーブルは投票イベントごとのテーブルね
1つのテーブルで何回も投票イベントを管理する場合はプライマリキーを組み合わせたり工夫すること

さっさとコーラ買ってこいよ
さっきから待ってんだけど
■ このスレッドは過去ログ倉庫に格納されています