2012-02-12 20 views
1

これは奇妙なものです。 CodeIgniterコードをクライアントのWebホストserverlogic.comに移動しました。このコードは他の40以上のサーバーで動作していますが、突然私は壁にぶつかります。私はDBセッションを使用しています。Codeigniter set_flashdataはこの1台のサーバーにページを表示できません。

これは動作しません:

$this->session->set_flashdata('contact_message', validation_errors()); 
$this->session->set_flashdata('first_name', $this->input->post('first_name')); 
$this->session->set_flashdata('last_name', $this->input->post('last_name')); 
$this->session->set_flashdata('email', $this->input->post('email')); 
$this->session->set_flashdata('zip', $this->input->post('zip')); 
$this->session->set_flashdata('phone', $this->input->post('phone')); 
$this->session->set_flashdata('comments', $this->input->post('comments')); 

これは動作します:set_flashdataとして

$this->session->set_flashdata('contact_message', validation_errors()); 
$this->session->set_flashdata('first_name', $this->input->post('first_name')); 
$this->session->set_flashdata('last_name', $this->input->post('last_name')); 
$this->session->set_flashdata('email', $this->input->post('email')); 
/*$this->session->set_flashdata('zip', $this->input->post('zip')); 
$this->session->set_flashdata('phone', $this->input->post('phone')); 
$this->session->set_flashdata('comments', $this->input->post('comments'));*/ 

()メソッドは、データを追跡するためにクッキーを使用して、それはいくつかのサーバーは限界があることが考えられあまりにも多くのデータがクッキーに格納されるとヒットします。私のサーバー上のヘッダーを調べるとき、このサーバーと比較してより多くのCookieを設定しています。

また、サーバーからPHPSESSID Cookieも取得していますが、どこから来たのかわかりません。私はサーバー管理者ではなく、彼らはNginxを使用しているので、私は完全にこの1つの暗闇の中にいる。

+0

クッキーはあまりにも多くの情報しか保存できないので、限界に達する可能性があります – Henesnarfel

+0

クッキーの上限になる場合、これはすべての設定で起こらないはずですか? – qwertzman

答えて

0

set_flashdata()メソッドはデータを追跡するためにCookieを使用するため、クッキーに格納されるデータが多すぎるとサーバーの上限がある可能性がありますか?私のサーバー上のヘッダーを調べるとき、このサーバーと比較してより多くのCookieを設定しています。

あなたはflashdataは、データを格納するためにクッキーを使用して、それがこれだけのサーバであるという事実は、二つの可能性を意味し、言ったようにあなたは自分自身の質問、

に答え。

  • この特定の設定が原因コードに、より多くのデータを設定している(例えば、あなただけのエッジの上にこれを傾けることを起こるあなたの他のセットアップに特定の変数を格納していない可能性があります)。

  • このサーバは、(nginxで可能性のある)より多くのクッキーを設定しています。また、nginxがクッキーに内部書き換えの何らかの形をしていると、ドメインの問題によりクッキーが正しく動作しなくなるこれはあまりありません。

あなたはページがエラーを表示することができない得ることを、私の提案は、エラーがないかどうかを調べるために、サーバのログを調べると述べました。次に、クローム開発ツールなどを使用してCookieを検査し、突然切断されたようなデータがあるかどうかを調べます。

+0

あなたは私の疑惑を確認しました。どうやら、正しく設定されていない場合は、Nginxやクッキーに関するいくつかの問題があります。 (large_client_header_buffersおよび/またはproxy_buffer_size)。 – qwertzman

0

それぞれのset_flashdataをコメントして特定の文であることを確認しましたか?または、コメントから後方に作業しましたか?または、あなたはちょうどzipで始まるようになったのですか?

DBセッションを使用している場合は、セッションデータが格納されているテーブルの構造が重要です。私が考えることができるのは、データの種類と格納されている各データの長さに対して列が正しく設定されていないことだけです。

サーバー上で定義した他のテーブルを使用してテーブル構造を再確認してください。

関連する問題