初めまして、かせーと申します。WordPressMeモジュールが便利で使わせてもらています。とても感謝しています。今回、0.3.3のバージョンから0.5.0にバージョンアップしたところ、トラックバックにアクセスすると、"Sorry, Invalid Request."となってしまいました。原因など調べて解決方法も見つけたので報告します。"Sorry, Invalid Request."が出る原因は、Windowsで使用していると起こるようです。wp-trackback.phpの中で、0.5.0からパスの比較を行ってるようですが、(11行目ぐらい)if (wp_base().'/'.$trackback_filename != __FILE__ ){この部分で比較が失敗してしまうようです。Windows場にPHPをインストールした場合、__FILE__の文字列は'\'で区切られたパスが返ってきます。一方『wp_base().'/'.$trackback_filename』では、'/'で区切られたパスが返ってきます。その不一致で必ず比較が失敗してしまうようです。解決方法としては、__FILE__のパスをstr_replace等で、'\'を'/'に変えた変数を用意してそれと比較するとうまくいくようです。環境依存があるので、あまり良い方法とは思いませんが、私が対処した方法を載せておきます。$__file__ = str_replace( '\\' , '/' , __FILE__ );if (wp_base().'/'.$trackback_filename != $__file__ ) {〜〜〜〜〜}こんな感じです。似たような投稿が見あたらなかったので投稿しましたがすでにありましたら申し訳ありません。長文失礼しました。
引用:かせーさんは書きました:初めまして、かせーと申します。WordPressMeモジュールが便利で使わせてもらています。とても感謝しています。今回、0.3.3のバージョンから0.5.0にバージョンアップしたところ、トラックバックにアクセスすると、"Sorry, Invalid Request."となってしまいました。原因など調べて解決方法も見つけたので報告します。"Sorry, Invalid Request."が出る原因は、Windowsで使用していると起こるようです。wp-trackback.phpの中で、0.5.0からパスの比較を行ってるようですが、(11行目ぐらい)if (wp_base().'/'.$trackback_filename != __FILE__ ){この部分で比較が失敗してしまうようです。Windows場にPHPをインストールした場合、__FILE__の文字列は'\'で区切られたパスが返ってきます。一方『wp_base().'/'.$trackback_filename』では、'/'で区切られたパスが返ってきます。その不一致で必ず比較が失敗してしまうようです。解決方法としては、__FILE__のパスをstr_replace等で、'\'を'/'に変えた変数を用意してそれと比較するとうまくいくようです。環境依存があるので、あまり良い方法とは思いませんが、私が対処した方法を載せておきます。$__file__ = str_replace( '\\' , '/' , __FILE__ );if (wp_base().'/'.$trackback_filename != $__file__ ) {〜〜〜〜〜}こんな感じです。似たような投稿が見あたらなかったので投稿しましたがすでにありましたら申し訳ありません。長文失礼しました。貴重な情報ありがとうございました。確かにWindows環境では問題が発生しますね。他にもこの様な判定をしている部分がありそうなので、当方でも調べてみます。
かせーさんは書きました:初めまして、かせーと申します。WordPressMeモジュールが便利で使わせてもらています。とても感謝しています。今回、0.3.3のバージョンから0.5.0にバージョンアップしたところ、トラックバックにアクセスすると、"Sorry, Invalid Request."となってしまいました。原因など調べて解決方法も見つけたので報告します。"Sorry, Invalid Request."が出る原因は、Windowsで使用していると起こるようです。wp-trackback.phpの中で、0.5.0からパスの比較を行ってるようですが、(11行目ぐらい)if (wp_base().'/'.$trackback_filename != __FILE__ ){この部分で比較が失敗してしまうようです。Windows場にPHPをインストールした場合、__FILE__の文字列は'\'で区切られたパスが返ってきます。一方『wp_base().'/'.$trackback_filename』では、'/'で区切られたパスが返ってきます。その不一致で必ず比較が失敗してしまうようです。解決方法としては、__FILE__のパスをstr_replace等で、'\'を'/'に変えた変数を用意してそれと比較するとうまくいくようです。環境依存があるので、あまり良い方法とは思いませんが、私が対処した方法を載せておきます。$__file__ = str_replace( '\\' , '/' , __FILE__ );if (wp_base().'/'.$trackback_filename != $__file__ ) {〜〜〜〜〜}こんな感じです。似たような投稿が見あたらなかったので投稿しましたがすでにありましたら申し訳ありません。長文失礼しました。
引用:nobunobuさんは書きました:貴重な情報ありがとうございました。確かにWindows環境では問題が発生しますね。他にもこの様な判定をしている部分がありそうなので、当方でも調べてみます。よろしくお願いします。こちらでもまた何かありましたら書かせていただきます。
nobunobuさんは書きました:貴重な情報ありがとうございました。確かにWindows環境では問題が発生しますね。他にもこの様な判定をしている部分がありそうなので、当方でも調べてみます。
このプログラムは KENT 氏の yybbs を xoops(PHP) に移植したものです - KENT -