つっこみ

つっこみ欄にコメントを記載して[つっこむ]ボタンを押してください。
お名前欄の記載は省略できます。

お名前 :
←ここのテキストボックスはスパム対策用なので何も入力しないでください
つっこみ :

[キャンセル]


つっこみ先の記事

・ トラックバックpingでハマる

上のトラックバックpingを送るために外部の『よそにトラックバックpingを送れるcgi』を利用したのですが、ここから送るとうちのサイトでは受信できないのです(汗)。複数のサイトでダメだったので自分ところの受信処理がおかしいのだろうと調べだしたのですが、$_POST の中身を見てみると、本来 'url' とか 'blog_name' となっているべき変数名が 'amp;url' とか 'amp;blog_name' になってるんですねー。

むむむ、これはおかしい・・・ということで always_populate_raw_post_data = on にして $HTTP_RAW_POST_DATA を見てみますと、

&blog_name=%8DX%90V%97%9A%97%F0%82%C6%93%FA%8BL&title=%91S%91R ...
というふうになっていました。こちらで期待している・・・というか、たぶんPHPが処理したかった内容は
blog_name=%8DX%90V%97%9A%97%F0%82%C6%93%FA%8BL&title=%91S%91R ...
ですから、&記号で区切った後に amp;に続く文字列をそのまま変数名として処理したようです。そういえば XML ではこんなところもエンコードしなければいけなかったような・・・(←よく知らない^^;)。

てことで、この状態ではうちのトラックバックURLは多くのサイトが送信するトラックバックURLを受けられないと思われるので、応急措置として'amp;'始まる変数はこれを除去して扱うことにしました。PHPにもXML用の便利な関数とかがありそうなのですが、そんなの使って文字化けに悩むのもナニですし、そのうち何もしなくてもPHPで対応するような気もするので。←要するに手抜き

ちなみに、トラックバックを送るところは Free TrackBackというところもあるのですが、こちらを使うと url に'~hitorigoto/tb/1071' と入れているにもかかわらず '~hitorigoto/tb' にping が送られてしまって動きませんでした。むむむ、仕様書以外の仕様がいっぱいあるのかな~?

# livedoorとmyprofileから送ったトラックバックpingはなぜ正常に受信
# できたのだろう? これはXMLじゃないのかな?
# 試しに送信データを & から & に変えてみると、livedoor では
# 受信できるけどmyprofileでは受信できない。んむむむ

■この記事への permanent link URL(下にいくほどファイルサイズが大きくなります)
  http://toriyu.jp/hitorigoto/id1072.html
  http://toriyu.jp/hitorigoto/2004-01-10.html (1日分)
  http://toriyu.jp/hitorigoto/2004-01.html#id1072 (1ヶ月分)