2012-06-12 74 views
0

我有一個很好的功能。然後我將它上傳到實時服務器,它給了我一個500內部服務器錯誤。在谷歌搜索之後,人們說出了一些錯誤,但是當他們發現某些東西(但他們不知道是什麼)時,就會與服務器搞砸了。不是很有幫助。別人說檢查你的錯誤日誌。我不知道如何去實現它。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; 
    } 

} 
+0

如果你的函數在本地工作正常,但不在服務器上,那將是因爲兩臺機器的配置不同 - 值得檢查以確保你的本地機器和服務器使用相同版本的PHP, mySQL,並且都具有相同的配置。 – andrewsi

+0

你有權限訪問服務器錯誤日誌嗎?那些將包含更詳細的消息版本 –

+0

可悲的是,我不是那個運行現場服務器的人,但我會跟他談論這件事。 –

回答

1

事實證明有與數據庫中的問題。對那些花時間試圖幫助的人抱歉。運行數據庫的人發現了這個問題。謝謝嘗試。

0

它可能是嘗試將中的雙重->分成不同的部分,例如

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

根據我的經驗,一些配置不喜歡雙打像$this->input->post,尤其是舊版本和一些IIS CONFIGS

+0

$ this-> input-> post()部分工作 –

+0

啊也許不是那麼:)你有沒有嘗試進步,雖然代碼?例如在每個部分之後,用'die(「here」)'或類似的東西停止腳本,直到你到達致命錯誤首先到達的地步,並且你會找到導致錯誤的行?大部分時間都適合我!無論哪種方式,希望你找到一個解決方案 – Jamie

0

我會做以下調試,如果你iwere:

  1. 設置PHP錯誤報告爲8191,php.ini中的display_errors爲1
  2. 在每個相關條件中使用isset。
  3. 手動檢查數據庫連接。

希望這會有所幫助。

1

您是否可以加載CodeIgniter網站的任何頁面或只是一個特定頁面?

下面的步驟可以幫助你調試:

在主.htaccess文件添加這些行:在你的index.php節「應用環境」

php_flag display_startup_errors on 
php_flag display_errors on 
php_flag html_errors on 

,設置「發展「環境:

define('ENVIRONMENT', 'development'); 

,你也可以讓CodeIgniter的錯誤日誌記錄在你的config/config.php文件,部分‘錯誤日誌門檻’

如果這些沒有取得任何進展,請與服務器管理員:)

+0

這是和其他一些不工作的網頁。他們中的大多數雖然 –

0

試試這個:

$search = $this->input->post('search'); 
if ($search) { 
    $where = 'ad_name ="'.$search.'" AND'; 
    $this->data['search'] = $search; 
} else { 
    $where = ''; 
} 
+0

這是我原來的,但我改變了它,當我搞亂它 –