modxのcfFormMailerを使用して、メールフォールを実装しています。
3月23日のテストのときは、問題なく動いていたのに、今日、実際にテストすると確認画面後の「送信」をクリックしたところで「画面遷移が正常に行われませんでした」というエラーが発生。
なんと
GoogleChromeでも、FireFoxでも、InternetExplorer9でも、同じエラーがでます。
なぜか、Firefoxのときに一度送信できたのと、GoogleChromeのときに、「画面遷移が正常に行われませんでした」が出たときに、「更新」ボタンを押したら1度送れることができました。
なんでだろう。
とりあえず、「画面遷移が正常の行われませんでした」が出る場合のエラーの理由をソースを読んで調べてみました。
ワンタイムトークンが違うーって言ってるみたい。
では、とワンタイムトークンが発行されたときのSESSION[‘_cffm_token’]値、確認画面でのhiddenのticketの値、送信後のSESSION[‘_cffm_token’](以下、SESSIONに省略)値、ticket値などを出力してみました。(基本的にvar_dump値で)
すると、確認画面でのSESSIONの値と、送信後のSESSIONの値が変わっていました。
もしくは、送信後のSESSIONの値が NULLになってる。
php_infoを調べて、session周りの設定を見てみる。すると、session.save_pathの値が、no_valueになってる!
あれ?と思い、2月に出力していたphp_info()を見てみると、値が入っている。いまのphp_infoとよくよく見てみると、どうもサーバーの設定が違う。Systemに書いてある値などが違う。
サーバーの内容、変わってんじゃん
ということで、php.iniでsession.save_pathの値を設定し、そのフォルダを書き込み可能にしたら、画面遷移するようになりました。
名前が変わっても相変わらず、私を悩ませる「旧アイ○」。現在「GM○クラウ○」。
ここに入れているサイトは、エラーがでたら、まず「サーバーじゃねーの。また仕様がかわったんじゃねーの」って疑う癖がついたけど、あながち間違いでもないかもしれません。
コメントを残す