サポート » プラグイン » Ktai Entryで添付付きのメールが投稿できない

  • 解決済 katsu2000x

    (@katsu2000x)


    Ktai EntryにてDoCoMo, Softbank携帯から写真画像を添付して見たところ、うまくエントリーが登録できませんでした。
    (添付がない場合は問題なく投稿できました)

    ログファイルを出したところ、
    Inserted a post with ID: xx, status: draft
    を残したところで止まってしまいます。

    apacheのerror_logには
    PHP Warning: array_keys() [function.array-keys]: The first argument should be an array in /hogehoge/wp-content/plugins/ktai_entry/post.php on line 380, referer: http://hogehoge.com/wp-admin/options-general.php?page=ktai_entry.php
    PHP Warning: Invalid argument supplied for foreach() in /hogehoge/wp-content/plugins/ktai_entry/post.php on line 1229, referer: http://hogehoge.com/wp-admin/options-general.php?page=ktai_entry.php
    PHP Fatal error: Call to undefined method stdClass::getMessage() in /hogehoge/wp-content/plugins/ktai_entry/retrieve.php on line 136, referer: http://hogehoge.com/wp-admin/options-general.php?page=ktai_entry.php
    といったエラーが記録されています。

    サーバは自前でインストールしたものです。
    PHP: 5.1.6
    MySQL: 4.1.20

    アドバイスよろしくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    PHP Warning: array_keys() [function.array-keys]: The first argument should be an array in /hogehoge/wp-content/plugins/ktai_entry/post.php on line 380

    ちょっと変な動作ですね。
    353 行目の upload_images() で画像のアップロードに失敗していると、画像へのリンク挿入に失敗するため、結果として重複判定にひっかかってしまいます (すでに下書きとして DB に入っているため)。

    ということで、upload ディレクトリーの権限を確認してみてください。inject.php を使う方式の場合、inject.php を起動するユーザーにも書き込み権限が必要です。www ないし www-data ユーザーだけしか書き込み権限がないと、上記のような動作になってしまいそうです。

    Ktai Entry 側も、重複チェックのやり方がまずいと分かりましたので、調整してみます。

    トピック投稿者 katsu2000x

    (@katsu2000x)

    早速の回答ありがとうございます。

    >ということで、upload ディレクトリーの権限を確認してみてください。inject.php を使う方式の
    >場合、inject.php を起動するユーザーにも書き込み権限が必要です。www ないし www-data
    >ユーザーだけしか書き込み権限がないと、上記のような動作になってしまいそうです。

    元々、操作は管理画面上からおこなっていました。
    (「すぐにメッセージを読み出す。」を使っています)

    uploadディレクトリって、デフォルトだと wp-content/uploads のことですよね?
    それなら権限も777にしていますし、通常の投稿におけるアップロードもできてますね・・・

    よろしくお願いいたします。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    (「すぐにメッセージを読み出す。」を使っています)

    その場合は retrieve.php を使う方式になります。inject.php を使う方式ではありません。「すぐに…」のリンクをクリックすると分かりますが、URL は retrieve.php になっているはずです。この場合は、Apache を動かすユーザー (www とか www-data) の権限で動作するので、画像アップロードでパーミッションエラーになることは少ないです。

    uploadディレクトリって、デフォルトだと wp-content/uploads のことですよね?
    それなら権限も777にしていますし、通常の投稿におけるアップロードもできてますね・・・

    年月ごとにディレクトリーを切り分けている場合、それぞれのディレクトリーも 777 ないし 757 であるか確認してみてください。
    通常のアップロードができていることは、あまり関係ありません。inject.php を起動するユーザー (FTP やシェルログインするユーザー) と、投稿画面から画像アップロードするユーザー (通常は www とか www-data) とは異なるためです。

    あとは、GD が組み込まれていない場合も画像保存ができないので、同様のエラーがあり得ます。PHP のビルドオプションを確認するか、phpinfo() を実行して確認してみてください。

    あ、retrieve.php の 136 行目はオブジェクトの名前がミスっていますね……。これも修正せねば。

    トピック投稿者 katsu2000x

    (@katsu2000x)

    > あとは、GD が組み込まれていない場合も画像保存ができないので、同様のエラーがあり得ます。
    > PHP のビルドオプションを確認するか、phpinfo() を実行して確認してみてください。

    ご指摘の通り、GDのオプションがありませんでした。
    インストールし直してみたところ、問題なく掲載できました。
    ありがとうございました。

    それにしても絵文字まで対応しているのはスゴイですね。
    どうしてもそれがやりたかったので、非常に助かってます。
    これからも頑張ってください。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    GD の問題でしたか……。自前サーバーだとときどき入ってないことがありますね。
    現行バージョンでも GD の存在チェックはしているのですが、その後の処理がよくありませんでした。次のバージョンでは、GD がない場合にログを記録するようにしてみます。

    それにしても絵文字まで対応しているのはスゴイですね。
    どうしてもそれがやりたかったので、非常に助かってます。

    Ktai Style, Ktai Entry は、携帯対応ツールとしては後発になるため、既存のものにない機能を入れるということで、絵文字対応を目玉にしています。絵文字のメール投稿ができるというのは、たぶん Movable Type では無理のはずです 😉
    Ktai Entry では、今後デコメ対応を検討していますが、デコメをどうやって投稿に反映させたらいいか悩んでいます。デコメ絵文字ぐらいならいいんですが、背景も対応させるのはどうやったらいいかなあ、と。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「Ktai Entryで添付付きのメールが投稿できない」には新たに返信することはできません。