ページ 11

1.0.9Jから1.0.10JへのアップグレードでParse Error

Posted: 2013年5月08日(水) 01:33
by dainiti
-----
ご利用のサーバ:Lolipop
MODXのバージョン:1.0.9J
PHPのバージョン:5.4
MySQLのバージョン:5.1.66
ブラウザ:IE8 XP SP3とかいろいろ
-----
たぶん1.0.10Jへのアップグレード後のことだと思うのですがサンプルサイトを少し変更した「お問い合わせ」ページでメールが管理者にも問い合わせで入力したメールアドレスにも届かなくなりました。「ありがとうございます」までは表示されますがメールは送信されません。

同時にさくらインターネットでアップグレード後の1.0.10Jでも同じ状況で送れなくなりましたが送信後の画面は真っ白のままで「ありがとうございました」のページに変わりません。バージョンアップが原因かと思い一度1.0.9Jをクリーンインストールし「お問い合わせ」ページを実行。メールが送れることを確認して1.0.10Jにアップグレードし「お問い合わせ」ページを実行してもメールは送信できます。

lolipopからデータベースをダウンロードしてさくらインターネットにリストアしたところアップグレード後と同じ状況になりメールが送信できなくなりました。

ツール->グローバル設定->セキュリティーの
PHPエラーの検出レベル->すべて
システムエラーをメールで通知する->error + warning

以上でメール通知とレポート->イベントログにPerserエラーがたくさん出ていることに気が付きました。

1)Parser - if(!$this->pluginCache) $this->s
2)Parser - $access .= " OR 1='{$_SESSION['m

が交互に通知されます。
MODX デモサイトで見てもらおうと思ったのですがでもデモサイトにはデータベースがリストアできないようです。

このエラーは実際「お問い合わせ」の時点で発生するのではなく各ページをクリックして表示するたびに発生しているようです。
サイトをリフレッシュしても変わりません。

クリーンインストールからやり直して1ページずつ確認しながらやり直したほうが早いでしょうか。
「お問い合わせ」ページでメール送信ができないことがわかるまでwebページ表示にはまったく問題がなかったので気が付きませんでした。

アップグレードが原因でなければクリーンインストールから1ページずつ確認しながら作り直そうと思います。
お気づきの点などがありましたらお知らせ願います。

Re: 1.0.9Jから1.0.10JへのアップグレードでParse Error

Posted: 2013年5月08日(水) 06:21
by dainiti
-----
ご利用のサーバ:さくらインターネット
MODXのバージョン:1.0.2Jから1.0.10Jへのアップグレード
PHPのバージョン:5.4.11
MySQLのバージョン:5.1
ブラウザ:IE8 XP SP3とかいろいろ
-----

modx-1.0.2J-p1からのアップグレードでも試してみましたが1.0.9Jからと同様のイベントログが発生するようになりました。
テンプレートの追加やチャンクやスニペットの追加もなく何年か放置していただけのテスト用のサイトです。

アップグレード前には何もイベントログが発生していないことを確認したうえでアップグレードしました。
アップグレード後、1.0.9Jからの時と同じようにwebページを表示するたびにイベントログが記録されるようになりました。

このままでは次のアップグレードも心配なので調査をお願いしたいと思います。

Re: 1.0.9Jから1.0.10JへのアップグレードでParse Error

Posted: 2013年5月08日(水) 11:24
by yama
「PHPエラーの検出レベル」を「すべて」にすると、実用には支障ないレベルの問題点も全て拾って出力しますが、この出力自体が原因でプログラムが正常に動作しないことがあります。トラブルが起きた時だけ情報収集のために検出レベルを高めに設定して、通常の運用時は必要最小限のエラーのみを検出するようにするとよいと思います。
(1.0.2Jは一部のエラーを検出する処理になっています)

ログイン画面の「パスワードを忘れた場合はこちら」やユーザ設定画面の「新しいパスワードを対象ユーザにメールで通知する」なども機能しない場合は本体に問題がある可能性がありますが、問い合わせフォームだけならeForm単体の問題だと思います。スニペットコールなどはどのようになってますか?

Re: 1.0.9Jから1.0.10JへのアップグレードでParse Error

Posted: 2013年5月08日(水) 17:31
by dainiti
 yamaさん。ありがとうございます。いつもご迷惑をおかけします。

 どうやらクリーンインストールに現在のフォームで使用すると同じ状況になりました。

 どの時点でこうなったのかははっきりわかりませんが「お問い合わせ ID(3)」画面がさみしいので「リッチテキストで編集」とTinyMCEを使えるようにしています。この状態で「送信」すると実際には問い合わせ先にも管理者にもメールは送信されませんが画面は「ありがとうございます」まで進みます。実際はお問い合わせフォームの下に文章や写真を入れたり、他にもPCと携帯でスタイルシートを切り替えるためのスニペットを入れたりしているのでこれから順番に見ていこうと思います


トップページ
http://130507202544-21364.evo.demo.modx.jp/
管理画面
http://130507202544-21364.evo.demo.modx.jp/manager/

 このような状態でメールが送信できない状態となり原因を知りたいためPHPエラーの検出レベルを上げていったのですが「すべて検出する」で表示されるメッセージで惑わされてしまったようです。

 順番に元の状態に戻していけば何が悪いのかわかりそうですが、もしも理由がわかれば教えていただけるとありがたいです。

 よろしくお願いします。

Re: 1.0.9Jから1.0.10JへのアップグレードでParse Error

Posted: 2013年5月08日(水) 19:48
by yama
チャンクで囲ってあるので問題ないはずですね。コア側に不具合があるかもしれないので調べてみます。

Re: 1.0.9Jから1.0.10JへのアップグレードでParse Error

Posted: 2013年5月08日(水) 20:56
by yama
document.parser.class.inc.zip
(28.77 KiB) ダウンロード数: 739 回
チャンクで囲ってあるのが問題のようです(使い方として間違っているわけではありませんが)。eFormの不具合のようにも思えますが、汎用性を考えてコア側で対応してみました。
添付のファイルを解凍してmanager/includes/ディレクトリに上書きしてみてください。(1.0.10J専用)

Re: 1.0.9Jから1.0.10JへのアップグレードでParse Error

Posted: 2013年5月08日(水) 21:26
by dainiti
送信できるようになりました :D

こちらでも調べていたんですが「お問い合わせ」ページのeFormコードをチャンクにしただけで、送信できませんでした。
お問い合わせページでこういう使い方する人は少ないというか、いままで一人もいないんでしょうか?

今後もよろしくお願いします。ありがとうございました。