0

うまく機能する機能がありました。次に、それをライブサーバーにアップロードすると、500の内部サーバーエラーが発生しました。グーグルした後、人々は何かがサーバーで台無しにされたときにあなたが得るエラーを言いました(しかし彼らは確かに何をしていません)。あまり役に立ちません。他の人はあなたのエラーログをチェックすると言いました。どうやって行けばいいのかわからない。

エラーの原因となる関数===============================

 private function get_workstation () {
  //================ I tried deleting all but this and that got rid of the error== //
    if ($this->input->post('search')) {
        $search = $this->input->post('search');
        $where = 'ad_name ="'.$search.'" AND';
        $this->data['search'] = $search;
    } else {
        $where = '';
    }
    // ================================================================= //
    // Pagination Code //
    $numOfRows = $this->db->query('
        SELECT distinct sys_name 
        FROM v_rollout_sysuser 
        WHERE scope_ID = '. $this->session->userdata('scopeId') .'
    ');

    if ($this->input->get('page')) {
        $pageNum = $this->input->get('page');
    } else {
        $pageNum = 1;
    }

    $limit = ($pageNum - 1 ) * 50;
    $numRows = $numOfRows->num_rows();
    $totalPages = ceil($numRows / 50);

    $this->data['pageNum'] = $pageNum;
    $this->data['prevPage'] = $pageNum - 1;
    $this->data['nextPage'] = $pageNum + 1;
    $this->data['totalPages'] = $totalPages;

    // End of Pagination Code //

    $query = $this->db->query('
        SELECT * 
        FROM v_rollout_sysuser
        WHERE '.$where.' scope_ID = '. $this->session->userdata('scopeId') .'
        GROUP BY sys_name 
        LIMIT '.$limit.',50');

    $i = 0;

    foreach ($query->result() as $row) {
        $i = $i + 1;
        $data['i'] = $i;
        $data['ro_ID'] = $row->ro_ID;
        $data['sys_name'] = $row->sys_name;
        $data['EAM_Model'] = $row->EAM_Model;           
        $data['EAM_User'] = $row->ad_account;
        $data['ad_DispName'] = $row->ad_DispName;
        $data['search'] = $this->input->post('search');

        $systems[] = $data;
    }

    if(isset($systems)) {
        $this->data['systems'] = $systems;
    } else {
        $this->data['systems'] = null;
    }

}
4

5 に答える 5

1

CodeIgniter Webサイトの任意のページをロードできますか、それとも特定のページだけをロードできますか?

次の手順は、デバッグに役立つ場合があります。

メインの.htaccessファイルに次の行を追加します。

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on

メインのindex.phpセクション「アプリケーション環境」で、「開発」環境を設定します。

define('ENVIRONMENT', 'development');

また、config/config.phpファイルの「エラーログのしきい値」セクションでCodeIgniterエラーログを有効にすることもできます。

これらのいずれかが進行しない場合は、サーバー管理者に連絡してください:)

于 2012-06-12T20:43:07.843 に答える
1

結局のところ、データベースに問題がありました。助けようとして時間を費やした人たちに申し訳ありません。データベースを実行している人が問題を見つけました。でも試してくれてありがとう。

于 2012-06-13T20:15:30.987 に答える
0

->のdoubleである可能性があり$this->input->postます。たとえば、別々のセクションに分割してみてください。

$a = $this->input;
if ($a->post('search')) {

$this->input->post私の経験では、一部の構成は、特に古いバージョンや一部のIIS構成のようにdoubleを好みません。

于 2012-06-12T20:38:40.860 に答える
0

私があなただったら、デバッグするために次のことをします:

  1. php.iniでphpエラーレポートを8191に、display_errorsを1に設定します
  2. 関連する各条件でissetを使用します。
  3. db接続を手動で確認してください。

お役に立てれば。

于 2012-06-12T20:42:48.937 に答える
0

代わりにこれを試してください:

$search = $this->input->post('search');
if ($search) {
    $where = 'ad_name ="'.$search.'" AND';
    $this->data['search'] = $search;
} else {
    $where = '';
}
于 2012-06-13T00:23:19.143 に答える