トップページ⇒php
564コメント74KB

【テスト】PHPで2chにHello Worldを書き込む 2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2013/03/09(土) 09:48:56.93ID:???
PHPを使って2ちゃんねるにHello Worldを書き込むスレです。

!ninjaテストやトリップテスト等もこちらでどうぞ。

※忍者ID確認は名前欄に !ninja



■初代スレ
PHPを使って2ちゃんねるにHello Worldを書き込む
http://toro.2ch.net/test/read.cgi/tech/1232331701/
*スレ削除済み。閲覧は過去ログ保存サイトでどうぞ

■関連スレ
Perlを使って2ちゃんねるにHello Worldを書き込む
http://toro.2ch.net/test/read.cgi/tech/1184483810/
0152>>62再掲2013/07/07(日) NY:AN:NY.ANID:???
>>52を蘇らせてみた。
下記の「*ここに FOXdayo〜から始まる文字列を記入*」 の部分を自分のHAPに置き換えれば
>>61のように書き込めるよ

<?php
$body = "submit=%8F%91%82%AB%8D%9E%82%DE&FROM=%21ninja&mail=sage&MESSAGE=Hello+world&bbs=php&key=1362790136&time=1";
$length = strlen($body);
$head = "POST /test/bbs.cgi HTTP/1.1\r\nHost: kohada.2ch.net\r\nUser-Agent: Monazilla/1.00\r\n".
"Referer: http://kohada.2ch.net/test/read.cgi/php/1362790136/l50\r\nContent-Type: application/x-www-form-urlencoded\r\n";
$out = $head."Content-Length: ".$length."\r\n\r\n".$body;
$fp = fsockopen("kohada.2ch.net", 80, $errno, $errstr, 30);
if (!$fp) {echo "$errstr ($errno)<br>\n";exit;}
fwrite($fp, $out);
$cookie = "Cookie: ";
while (!feof($fp)) {
$str = fgets($fp, 128);
if (strpos($str, "Set-Cookie: ") === 0) {
$str = str_replace("Set-Cookie: ", "", $str);
list($cook, ) = explode(";", $str);
$cookie .= $cook."; ";
}
}
fclose($fp);
$cookie .= "NAME=\"\"; MAIL=\"\"; yuki=akari; HAP=*ここに FOXdayo〜から始まる文字列を記入*;\r\n";
$out = $head.$cookie."Content-Length: ".$length."\r\n\r\n".$body;
$fp = fsockopen("kohada.2ch.net", 80, $errno, $errstr, 30);
if (!$fp) {echo "$errstr ($errno)<br>\n";exit;}
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
0153>>63再掲2013/07/07(日) NY:AN:NY.ANID:???
HAPというのはいわゆる忍法帖のIDのことです。


【HAPの確認方法:JaneStyleを使っている人の場合】

 Jane2ch.exe の入ってるフォルダの中にある Jane2ch.ini をテキストエディタで開く。
 そうすると349行目あたりに HAP=FOXdayo******** という文字列があります。
 それがHAPです。
0154>>78再掲2013/07/07(日) NY:AN:NY.ANID:???
「*ここに FOXdayo〜から始まる文字列を記入*」 の部分を自分のHAPに置き換えるわけだから

 $cookie .= "NAME=\"\"; MAIL=\"\"; yuki=akari; HAP=*ここに FOXdayo〜から始まる文字列を記入*;\r\n";
  ↓
 $cookie .= "NAME=\"\"; MAIL=\"\"; yuki=akari; HAP=FOXdayofffae8934aa99usohap68a0638cc34867123c2usohap2a0766fa274fdfee88f0c34f4ff331043d9e43f4b35265ce9e9c75a9a0b24ba522bfa70ce7b7dab04f8;\r\n"

こんな感じなる。上のHAPはテキトーな文字列だから書き込めないけどな。
で、実行させると普通に投稿できる。クッキーを触る必要一切なし。
0155nobodyさん2013/07/08(月) NY:AN:NY.ANID:???
<?php
print ("HelloWorld");
?>
0156nobodyさん2013/07/08(月) NY:AN:NY.ANID:???
<?php
print "HelloWorld";
?>
01571402013/07/09(火) NY:AN:NY.ANID:???
お、文字化け直った!
01581402013/07/12(金) NY:AN:NY.ANID:???
お、文字化け直った!
01591402013/07/13(土) NY:AN:NY.ANID:???
お、文字化け直った!
01601402013/07/14(日) NY:AN:NY.ANID:???
お、文字化け直った!
01611402013/07/14(日) NY:AN:NY.ANID:???
お、文字化け直った!
01621402013/07/15(月) NY:AN:NY.ANID:???
お、文字化け直った!
01631402013/07/16(火) NY:AN:NY.ANID:???
お、文字化け直った!
01641402013/07/17(水) NY:AN:NY.ANID:???
お、文字化け直った!
0165nobodyさん2013/07/17(水) NY:AN:NY.ANID:???
てすてす
01661402013/07/18(木) NY:AN:NY.ANID:???
お、文字化け直った!
01671402013/07/18(木) NY:AN:NY.ANID:???
お、文字化け直った!
01681402013/07/18(木) NY:AN:NY.ANID:???
お、文字化け直った!
0169 忍法帖【Lv=15,xxxPT】(1+0:8) 2013/07/18(木) NY:AN:NY.ANID:???
Hello world
0170 忍法帖【Lv=15,xxxPT】(2+0:8) 2013/07/18(木) NY:AN:NY.ANID:???
Hello world
01711402013/07/20(土) NY:AN:NY.ANID:???
お、文字化け直った!
0172nobodyさん2013/07/21(日) NY:AN:NY.ANID:???
てす
01731402013/07/21(日) NY:AN:NY.ANID:???
お、文字化け直った!
01741402013/07/21(日) NY:AN:NY.ANID:???
お、文字化け直った!
01752ch初心者2013/07/22(月) NY:AN:NY.ANID:1veVFrFm
テスト
01762ch初心者2013/07/22(月) NY:AN:NY.ANID:1veVFrFm
すごー
初投稿!
01771402013/07/22(月) NY:AN:NY.ANID:???
お、文字化け直った!
0178 忍法帖【Lv=40,xxxPT】(1+0:8) 2013/07/23(火) NY:AN:NY.ANID:???
テスト
01791402013/07/23(火) NY:AN:NY.ANID:???
お、文字化け直った!
01801402013/07/23(火) NY:AN:NY.ANID:???
お、文字化け直った!
01811402013/07/23(火) NY:AN:NY.ANID:???
お、文字化け直った!
01821402013/07/24(水) NY:AN:NY.ANID:???
お、文字化け直った!
01831402013/07/25(木) NY:AN:NY.ANID:???
お、文字化け直った!
01841402013/07/25(木) NY:AN:NY.ANID:???
お、文字化け直った!
01851402013/07/26(金) NY:AN:NY.ANID:???
お、文字化け直った!
01861402013/07/27(土) NY:AN:NY.ANID:???
お、文字化け直った!
01871402013/07/27(土) NY:AN:NY.ANID:???
お、文字化け直った!
01881402013/07/27(土) NY:AN:NY.ANID:???
お、文字化け直った!
01891402013/07/28(日) NY:AN:NY.ANID:???
お、文字化け直った!
01901402013/07/28(日) NY:AN:NY.ANID:???
お、文字化け直った!
01911402013/07/29(月) NY:AN:NY.ANID:???
お、文字化け直った!
01921402013/07/29(月) NY:AN:NY.ANID:???
お、文字化け直った!
01931402013/07/30(火) NY:AN:NY.ANID:???
お、文字化け直った!
01941402013/08/01(木) NY:AN:NY.ANID:???
お、文字化け直った!
01951402013/08/01(木) NY:AN:NY.ANID:???
お、文字化け直った!
01961402013/08/02(金) NY:AN:NY.ANID:???
お、文字化け直った!
0197nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
改行
テスト
0198 忍法帖【Lv=18,xxxPT】(2+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
にんじゃ
0199 忍法帖【Lv=40,xxxPT】(1+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
!nanja
0200 忍法帖【Lv=3,xxxP】(1+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
Hello world
0201 忍法帖【Lv=3,xxxP】(2+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
Hello world
0202 忍法帖【Lv=3,xxxP】(3+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
Hello world
0203 忍法帖【Lv=3,xxxP】(4+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
Hello world
0204 忍法帖【Lv=3,xxxP】(5+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
Hello world
0205 忍法帖【Lv=3,xxxP】(6+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
Hello world
0206nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
はろー
0207 忍法帖【Lv=40,xxxPT】(2+0:8) 2013/08/05(月) NY:AN:NY.ANID:???
!ninja
0208nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
てすと
0209nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
テスト
0210nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
試験投稿
0211nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
てs
0212nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
てsてs
0213nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
スレ汚しスマソ
0214nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
てす
0215nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
てst
0216nobodyさん2013/08/06(火) NY:AN:NY.ANID:YG2kFbuC
こんにちは世界
0217nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
夏休み中に腹筋を割るお

クロスチョップクランチ
http://www.youtube.com/watch?v=xD_iiqyiGkg

アブアイソメトリック
http://www.youtube.com/watch?v=Uktydo8dCVE

レッグレイズ
http://www.youtube.com/watch?v=OoooygrjKxU
0218 忍法帖【Lv=40,xxxPT】(1+0:8) 2013/08/08(木) NY:AN:NY.ANID:???
!ninja
0219nobodyさん2013/08/08(木) NY:AN:NY.ANID:W65tVYnZ
サルベージ
0220 忍法帖【Lv=5,xxxP】(-1+0:8) 2013/08/11(日) NY:AN:NY.ANID:???
Hello world
0221● 忍法帖【Lv=5,xxxP】(0+0:8) 2013/08/11(日) NY:AN:NY.ANID:???
●テスト
0222● 忍法帖【Lv=5,xxxP】(1+0:8) 2013/08/11(日) NY:AN:NY.ANID:???
●テスト2
0223笳 忍法帖【Lv=5,xxxP】(2+0:8) 2013/08/11(日) NY:AN:NY.ANID:???
笳上ユ繧ケ繝3
0224??? 忍法帖【Lv=5,xxxP】(3+0:8) 2013/08/11(日) NY:AN:NY.ANID:???
????????????4
0225● 忍法帖【Lv=5,xxxP】(4+0:8) 2013/08/11(日) NY:AN:NY.ANID:???
●テスト5
0226 忍法帖【Lv=40,xxxPT】(1+0:8) 2013/08/12(月) NY:AN:NY.ANID:???
てすてす
0227nobodyさん2013/08/13(火) NY:AN:NY.ANID:???
おおおお
0228nobodyさん2013/08/13(火) NY:AN:NY.ANID:???
print("Hello");
0229 忍法帖【Lv=40,xxxPT】(1+0:8) 2013/08/13(火) NY:AN:NY.ANID:???
テスト
0230nobodyさん2013/08/13(火) NY:AN:NY.ANID:P7TWu4Y6
>>152が具体的にどういう動作してるのか教えてください
まず1度目にpostデータを送ってcookie確認が出ると思うんですがその時の処理とかは
どこでやってるんですか
0231nobodyさん2013/08/13(火) NY:AN:NY.ANID:???
>>230
$fp = fsockopen("kohada.2ch.net", 80, $errno, $errstr, 30);
if (!$fp) {echo "$errstr ($errno)<br>\n";exit;}
fwrite($fp, $out);
$cookie = "Cookie: ";
while (!feof($fp)) {
$str = fgets($fp, 128);
if (strpos($str, "Set-Cookie: ") === 0) {
$str = str_replace("Set-Cookie: ", "", $str);
list($cook, ) = explode(";", $str);
$cookie .= $cook."; ";
}
}
fclose($fp);
0232nobodyさん2013/08/13(火) NY:AN:NY.ANID:???
while (!feof($fp)) {
$str = fgets($fp, 128);
if (strpos($str, "Set-Cookie: ") === 0) {
$str = str_replace("Set-Cookie: ", "", $str);
list($cook, ) = explode(";", $str);
$cookie .= $cook."; ";
}

この辺はのこと?
この辺はcookieから自分のホスト情報を抽出してるだけだよ。
自分のホストがわかってる人ならこの部分をゴソッと省略することができるよ
0233nobodyさん2013/08/13(火) NY:AN:NY.ANID:???
リロードしてなかったわw

1度目のpostは何のためにやってるのかというと、postすると2chから送られてくるcookieに自分のホストが入ってるんだよ。
そのホスト情報が必要だから仮にpostしてるだけ。
さっきも書いたように自分のホストがわかっていれば1度目のpostは省略可能です
0234● 忍法帖【Lv=5,xxxP】(-1+0:8) 2013/08/14(水) NY:AN:NY.ANID:???
テエエエエス
0235● 忍法帖【Lv=5,xxxP】(0+0:8) 2013/08/14(水) NY:AN:NY.ANID:???
テエエエエス3
0236nobodyさん2013/08/14(水) NY:AN:NY.ANID:???
testes
0237 忍法帖【Lv=40,xxxPT】(2+0:8) 2013/08/14(水) NY:AN:NY.ANID:???
testestesてs
0238● 忍法帖【Lv=1,xxxP】(3+0:8) 2013/08/14(水) NY:AN:NY.ANID:???
テエエエエス6
0239● 忍法帖【Lv=5,xxxP】(4+0:8) 2013/08/14(水) NY:AN:NY.ANID:???
テエエエエス7
0240● 忍法帖【Lv=40,xxxPT】(5+0:8) 2013/08/14(水) NY:AN:NY.ANID:???
テエエエエス8
0241nobodyさん2013/08/14(水) NY:AN:NY.ANID:???
test
0242nobodyさん2013/08/14(水) NY:AN:NY.ANID:3o4o9MeM
>>231-233
ありがとうございます
送られてきたリクエストの中のhostをそのまま変数に入れてまたpostしてるんですね!
0243nobodyさん2013/08/14(水) NY:AN:NY.ANID:???
そそ。だから固定IPの人や自分もそうだけどYahoo!BBでホストがほぼ固定されている人は
>>152のスクリプトの後半部分に直接ホストを直書きすればいいので
スクリプトの後半だけで投稿できるよ
0244 忍法帖【Lv=40,xxxPT】(2+0:8) 2013/08/14(水) NY:AN:NY.ANID:???
test
0245nobodyさん2013/08/14(水) NY:AN:NY.ANID:???
テスト
0246 忍法帖【Lv=40,xxxPT】(1+0:8) 2013/08/20(火) NY:AN:NY.ANID:???
Hello World
0247nobodyさん2013/08/23(金) NY:AN:NY.ANID:???
P2から
iPhoneで

こんにちは
0248nobodyさん2013/08/26(月) NY:AN:NY.ANID:???
test
0249nobodyさん2013/08/27(火) NY:AN:NY.ANID:???
helll
0250nobodyさん2013/08/27(火) NY:AN:NY.ANID:???
test
0251>>62の改造(その1)2013/08/28(水) NY:AN:NY.ANID:???
<?php
# ######## 設定ここから #########
# 名前
$name = "nobodyさん";

# E-mail
$mail = "sage";

# コメント
$mess = "Hello+world";

# 書き込み先のスレ
$url = "http://kohada.2ch.net/test/read.cgi/php/1362790136/";;

# あなたのHAP
# *HAPというのは忍法帖のIDのことです。
#
# 【HAPの確認方法:JaneStyleを使っている人の場合】
# Jane2ch.exe の入ってるフォルダの中にある Jane2ch.ini をテキストエディタで開いてください。
# 349行目あたりに HAP=FOXdayo******** という文字列があります。それがHAPです。
# 下記は使用できない架空のHAPでの記述見本です。
# $hap = "FOXdayofffae8934aa99usohap68a0638cc34867123c2usfdfee88f0c34f4ff331043d9e43f4b35265ce9e9c75a9a0b24ba522bfa70ce7b7dab04f8";
$hap = "";

# ######## 設定ここまで #########

mb_language( 'Japanese' ); // これは環境によって不要
mb_internal_encoding( 'SJIS' ); // これは環境によって不要
mb_regex_encoding( 'SJIS' ); // これは環境によって不要
■ このスレッドは過去ログ倉庫に格納されています