0

I have made a web application in codeigniter framework. I was developing the app on a Windows machine and the final version runs perfectly well on the same (i.e windows, wamp to be precise). Now i need to deploy the app on a ubuntu server. After the initial login required in the app, it does not display any other page.On inspecting the console, I found this

[09:08:37.255] GET http://localhost/sac.org/index.php/member [HTTP/1.0 500 Internal Server Error 17ms]

I think this is a very common problem, as is evident from these questions:

codeigniter framework not working on linux

Windows code not working on linux

codeigniter upload not working on linux

and here too Codeigniter issue

and many more. The answers mentioned in these threads are not working for me. Is there some way to solve this issue?

My code sample is

<?php
class member extends CI_Controller{
    public $data1 = "";
    public function __construct(){
        parent::__construct();
        $this->load->helper('form');
        $this->load->helper('url');
        $this->load->library('session');
        $this->load->library('table');      
        $this->load->model('membermodel');
        $this->data1 = $this->membermodel->getYearList();
    }
    private function accesscheck(){
        $privilege = $this->session->userdata('privilege');
        if($privilege=='2'||$privilege=='1'){
            return "True";
        }

    }

    public function index(){
        echo phpinfo();
        die();
        if($this->accesscheck()){
        $data = array('years'=>$this->membermodel->getYearList());
        $notifications = $this->membermodel->numberOfNotifications();
        $this->session->set_userdata('notifications',$notifications);
        $this->load->view('templates/header',$data);
        $this->load->view('templates/menu');
        $this->load->view('members/home',$data);
        $this->load->view('templates/footer');

    }
else{
    $this->load->view('templates/accessErr');
}}

    public function year($year){
        if($this->accesscheck()){

            $this->getTable($year,"FullList");


    }else{
    $this->load->view('templates/accessErr');
}}

    public function positive($year){
        if($this->accesscheck()){
            $this->gettable($year,"positive");
        }else{
            $this->load->view('templates/accessErr');
        }
    }
    public function negative($year){
                if($this->accesscheck()){

                    $this->getTable($year,"negative");

}
    else{
    $this->load->view('templates/accessErr');
}}
    public function neutral($year){
                if($this->accesscheck()){
            $this->getTable($year,"neutral");


    }else{
    $this->load->view('templates/accessErr');
}}

    public function registered($year){
                if($this->accesscheck()){

                    $this->gettable($year,"register");

    }else{
    $this->load->view('templates/accessErr');
}}
    public function uncontacted($year){
                        if($this->accesscheck()){
            $this->getTable($year,"uncontacted");

    }else{
    $this->load->view('templates/accessErr');
}}
    public function unsearched($year){
                        if($this->accesscheck()){
            $this->getTable($year,"unsearched");


    }else{
    $this->load->view('templates/accessErr');
}}
    public function notfound($year){
                                if($this->accesscheck()){

                $this->gettable($year,"notFound");


    }else{
    $this->load->view('templates/accessErr');
}}
public function Paid($year){
    if($this->accessCheck()){

                    $this->getTable($year,"Paid");


    }else{
    $this->load->view('templates/accessErr');
}}
public function getProfile(){
    $id=$this->input->get('id');
    $data = $this->membermodel->getPrimaryInfo($id);

    echo json_encode($data);
}
public function getTable($year,$list){
    $this->data1 = $this->membermodel->getYearList();
        if(in_array(array('alumSince'=>$year),$this->data1)){// think of a get around
            $data['table'] = $this->membermodel->getTable($year,$list);
            $data['year'] = $year;
            $this->load->view('templates/header');
            $this->load->view('templates/menu');
            $this->load->view('members/fullList',$data);
            $this->load->view('templates/footer');
        }else{
            $this->load->view('templates/header');
            $this->load->view('templates/badParam');
            $this->load->view('templates/footer');
        }
}


public function search(){

        if($this->session->userdata('privilege')){
        $this->load->view('templates/header');
        $this->load->view('templates/menu');
        $this->load->view('members/search');
        $this->load->view('templates/footer');

        }
        else
        $this->load->view('templates/accessErr');
    }

    public function generate_result(){


        if($this->session->userdata('privilege')){
            $data = $this->membermodel->search();

                        if($data){
                            $this->load->view('templates/header');
                            $this->load->view('templates/menu');
                            $this->load->view('members/search_result',$data);
                            $this->load->view('templates/footer');
                        }



        }else{
            $this->load->view('templates/accessErr');
}

}

public function updateProfile(){
    if($this->accessCheck()){
        if($this->input->post('submit')){

            if($msg = $this->membermodel->updateProfile()){
                header('Refresh:2,url='.$_SERVER["HTTP_REFERER"]);//security issues here
                echo $msg;
            }
        }

    }else{
        $this->load->view('templates/accessErr');
    }


}

public function updateSearch(){
    if($this->accessCheck()){
        $alumid = $this->input->get('alumid');
        $search = $this->input->get('search');
        $result = $this->membermodel->updateSearch($alumid,$search);
            echo $result;
        }
        else{
        $this->load->view('templates/accessErr');
    }
}
public function updateResponse(){
    if($this->accessCheck()){
        $alumid = $this->input->get('alumid');
        $response = $this->input->get('response');
        $result = $this->membermodel->updateResponse($alumid,$response);
            echo $result;
        }
        else{
        $this->load->view('templates/accessErr');
    }
}
public function updatePayment(){
    if($this->accessCheck()){
            $alumid = $this->input->get('alumid');
            $dateofpayment = $this->input->get('dateofpayment');
            $referenceNo =  $this->input->get('referenceNo');
            $paymentAmt = $this->input->get('paymentAmt');
            $remarks = $this->input->get('remarks');
            $result = $this->membermodel->updatePayment($alumid,$dateofpayment,$referenceNo,$paymentAmt,$remarks);

                echo $result;




    }else{
        $this->load->view('templates/accessErr');
    }
}
public function updateRegister(){
    if($this->accessCheck()){
            $register  = $this->input->get('register');
            $alumid = $this->input->get('alumid');
            $result = $this->membermodel->updateRegister($alumid,$register);

                echo $result;




    }else{
        $this->load->view('templates/accessErr');
    }
}
public function addCallDetail(){
    $alumid = $this->input->get('alumid');
    date_default_timezone_set('Asia/Calcutta');
    $date = date('Y-m-d');
    $time = date('H:i:s');
    echo $this->membermodel->addCallDetail($alumid,$date,$time);
}

public function updateCall(){
        $remarks = $this->input->get('remarks');
        $nextdate = $this->input->get('nextdate');
        $nexttime = $this->input->get('nexttime');
        $callid = $this->input->get('callid');
        $alumid = $this->input->get('alumid');
        echo $this->membermodel->updateCall($remarks,$nextdate,$nexttime,$callid,$alumid);

}
public function updateMember(){
        $name = $this->input->get('name');
        $age = $this->input->get('age');
        $gender = $this->input->get('gender');
        $relationship = $this->input->get('relationship');
        $alumid = $this->input->get('alumid');
        echo $this->membermodel->updateMember($name,$age,$gender,$relationship,$alumid);

}
public function removeAccompaniant(){
        $memberid = $this->input->get('id');
        $alumid = $this->input->get('alumid');
        echo $this->membermodel->removeAccompaniant($memberid,$alumid);

}
public function updateRemark(){
    $remark = $this->input->get('remark');
    $alumid = $this->input->get('alumid');

    echo $this->membermodel->updateRemark($alumid,$remark);
}


public function getNetworkingSummary($year){

    $userid = $this->membermodel->getUserId();
    if($data =  $this->membermodel->getNetworkingSummary($userid,$year))
        echo json_encode($data);

        //echo json_encode($data['msg']="boo");
}
public function getNotifications(){
    if($this->accessCheck()){
        $data['result'] = $this->membermodel->getNotifications();
        $this->load->view('templates/header');
        $this->load->view('templates/menu');
        $this->load->view('templates/dummyMember',$data);
        $this->load->view('templates/footer');
    }else{
        $this->load->view('templates/accessErr');

    }

}
public function notificationStatus(){
    $id = $this->input->get('id');

    $this->membermodel->updateNotificationStatus($id);

}

}
?>
Community
  • 1
  • 1
rahulmishra
  • 620
  • 1
  • 13
  • 29
  • Check your `error_log` file generated by your webserver if you want to know what the error is. Getting a 500 Internal server error means something within your code or server is wrong. Could be from folder permission to code errors to a variety of things which is why you must check the `error_log`. – Prix Sep 04 '14 at 22:14
  • Open your `index.php` file in the root of your CI install, near the top of the file, turn on error reporting by changing the environment constant, then reload the page. (You may need to add the `ini_set('display_errors','on');` line.). You should see a more detailed error message then. – Phil Cross Sep 04 '14 at 22:23
  • @Prix , I saw the error log it says a syntax error in one of my file, it says unexpected '[' in " switch ($query->row_array()['search']) {" . However there is no such error on windows . Is this due to different php versions? – rahulmishra Sep 04 '14 at 22:27

1 Answers1

1

As advised by Prix, I checked my error log and found that the problem was due to syntax error. I was using Function array dereferencing which has been added in PHP 5.4.0 but my server was running PHP 5.2.

The solution is here

The solution worked. I had to resort to this method rather than upgrading my PHP version because the server is running UBUNTU 12.04 which has no repos for PHP 5.4 .

Community
  • 1
  • 1
rahulmishra
  • 620
  • 1
  • 13
  • 29