cfFormMailer v1.1公開
2010-05-1219:01
MODx用メールフォームスニペットcfFormMailerの新バージョンv1.1を公開しました。
このバージョンは若干のバグフィックスと修正のみですので、
現在ご利用頂いている方は必要に応じてダウンロードしてください。
【ダウンロード: cfFormMailer v1.1】
v1.0からの変更点は以下のとおりです。
------------------------------------------------------------
[FIX] 開始タグと閉じタグの間にテキストの無い偶数個目のタグ(<textarea>タグなど)について値の復元が正しく行われない不具合を修正(thanks to trickstarさん)
[CHANGE] 同梱のサンプルテンプレートの名称を変更(thanks to yamaさん / 公式フォーラムより)
[CHANGE] cfFileViewプラグインを MODx v1.0.3でのプラグインインストール半自動化に対応
------------------------------------------------------------
このバージョンは若干のバグフィックスと修正のみですので、
現在ご利用頂いている方は必要に応じてダウンロードしてください。
【ダウンロード: cfFormMailer v1.1】
v1.0からの変更点は以下のとおりです。
------------------------------------------------------------
[FIX] 開始タグと閉じタグの間にテキストの無い偶数個目のタグ(<textarea>タグなど)について値の復元が正しく行われない不具合を修正(thanks to trickstarさん)
[CHANGE] 同梱のサンプルテンプレートの名称を変更(thanks to yamaさん / 公式フォーラムより)
[CHANGE] cfFileViewプラグインを MODx v1.0.3でのプラグインインストール半自動化に対応
------------------------------------------------------------
カテゴリ:cfFormMailer | コメント (5) | トラックバック (0)
はじめまして。
MODx 1.0.2Jで、cfFormMailerを使用させて頂いております。
画像のアップロードを行ったとき、下記のようなエラーがでます。
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
PHP error debug
Error: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10331 is not allowed to access /tmp owned by uid 0
Error type/ Nr.: Warning - 2
File: /virtual/magokoro/public_html/assets/snippets/cfFormMailer/class.cfFormMailer.inc.php
Line: 162
Line 162 source: move_uploaded_file($_FILES[$field]['tmp_name'], $new_filepath);
設定は間違っていないと思っているのですが、なにかおかしいところがあるのでしょうか?
URLはURL欄に記述しました。
エラーメッセージに「SAFE MODE Restriction in effect」とあるとおり、サーバー側の設定によりセーフモードが有効になっており、その制限によって新しいファイル名での書き込みに失敗しているようです。
応急処置として、以下のようにassets/snippets/cfFormMailer/class.cfFormMailer.inc.phpを書き換えてみてください。
今後のバージョンアップによって正式に対応したいと思います。
class.cfFormMailer.inc.php 161行目
■現在
$new_filepath = dirname($_FILES[$field]['tmp_name']) . DIRECTORY_SEPARATOR . urlencode($_FILES[$field]['name']);
↓
■書き換え
$new_filepath = $this->modx->config['base_path'] . "assets/snippets/cfFormMailer/tmp/" . urlencode($_FILES[$field]['name']);
書き換えてサーバー上のファイルを差し替えます。
差し替えたら、assets/snippets/cfFormMailer/ フォルダ内に tmp という名前のフォルダを新規作成し、パーミッションを 777 や 707 にしてください。
こんにちは。
ご提案です。
class.cfFormMailer.inc.phpにある
「len(min, max) : 文字数チェック」の検証メソッドですが、
文字数チェックには、"strlen"関数を使用しています。
日本語を扱うのであれば、"mb_strlen"関数の方が良いかと思うのですが、
いかがでしょうか?
1216-1222行
strlen($value) -> mb_strlen($value, CHARSET)
以上、ご検討ください。
こんにちは。
バグ報告というか、メールの仕様で文字化けが…。
メールの仕様として、
各行は998文字を超えてはならならいそうで、
998文字を超えると強制的に改行コードを挿入され、
日本語などは文章が文字化けしてしまうようです。
http://srgia.com/docs/rfc5322j.html#p2.1.1
そのため、PHP側の処理で998文字(推奨は78文字)毎に
強制的に改行コードを挿入するなどの対処をしたほうがよさそうですね…。
> trickstarさん
いつもコメントありがとうございます。
len()メソッドについてですが、確かに仰る通りですね。
他の箇所で容赦なくmb_関数使っておきながら、なぜここで使わなかったのか・・・
今後のバージョンアップで取り入れたいと思います。
メールの仕様の件ですが、これは知りませんでした。
78文字で改行を強制挿入するかどうかのオプションを用意した方が良いですね。
こちらも今後のバージョンアップで検討したいと思います。
ありがとうございました!