简体   繁体   中英

500 Server error when initializing a class PHP

I am writing a database to manage our clients a bit better. The logic to show client data works flawlessly.

The class which handles my method calls is called "kunde"

Thats how I initialize the class and call the method to get some result array:

$showAllgemeineKundendaten = new kunde();
$result_array = $showAllgemeineKundendaten -> show_client_kundendaten($_SESSION['id'], 1);

I work with the result array in order to display the content - but thats a bit offtopic to my question.

Now I am writing the logic to insert new clients to the database in another php document and I keep getting a 500 Server Error as soon as the class "kunde" is being initialized in the php file.

I am currently sending a POST to this document with ajax :

    $gehrKundennummer = 0;
    $kundenklasse = 0;
    $lkw12t = 0;
    $lkw3t = 0;
    $autobus = 0;
    $firmenname1 = 0;
    $firmenname2 = 0;
    $uidnummer = 0;
    $peselregon = 0;
    $firmenart = 0;
    $strasse = 0;
    $ort = 0;
    $plz = 0;
    $land = 0;

    $gehrKundennummer = $_POST[0];
    $kundenklasse = $_POST[1];
    $lkw12t = $_POST[2];
    $lkw3t = $_POST[3];
    $autobus = $_POST[4];
    $firmenname1 = $_POST[5];
    $firmenname2 = $_POST[6];
    $uidnummer = $_POST[7];
    $peselregon = $_POST[8];
    $firmenart = $_POST[9];
    $strasse = $_POST[10];
    $ort = $_POST[11];
    $plz = $_POST[12];
    $land = $_POST[13];
    $data = array($gehrKundennummer, $kundenKlasse, $lkw12t, $lkw3t, $autobus, $firmenname1, $firmenname2, $uidnummer, $peselregon, $firmenart, $strasse, $ort, $plz, $land);
    $insert = new kunde();
    $insert -> insert_client($data, 1);

NOTE The 500 Server error occurs as well when the form is being sent to that php file the classic way.

And thats how my class and insert method looks like:

class kunde {
        public function insert_client($data, $case){
            $serverName = "SERVERNAME\MSSQLSRV";
            $connectionInfo = array('Database'=>'TEST', "UID"=>"TEST", "PWD"=>"TEST");
            $conn = sqlsrv_connect($serverName, $connectionInfo);
            switch ($case) {
                case 1:
                    $gehrKundennummer = $data[0];
                    $kundenklasse = $data[1];
                    $lkw12t = $data[2];
                    $lkw3t = $data[3];
                    $autobus = $data[4];
                    $firmenname1 = $data[5];
                    $firmenname2 = $data[6];
                    $uidnummer = $data[7];
                    $peselregon = $data[8];
                    $firmenart = $data[9];
                    $strasse = $data[10];
                    $ort = $data[11];
                    $plz = $data[12];
                    $land = $data[13];
                    $angelegt_am = date();
                    $tsql = "INSERT INTO Kundendaten$ (gehr_kundennummer, kundenklasse_ID, firmenname1, firmenname2, firmenart, strasse, land, plz, ort, pesel_regon, uid, lkw12t, lkw3t, autobus, angelegt_am)
                            VALUES ('$gehrKundennummer', '$kundenklasse', '$firmenname1', '$firmenname2', '$firmenart', '$strasse', '$land', '$plz', '$ort', '$peselregon', '$lkw12t', '$lkw3t', '$autobus', '$angelegt_am')";
                    break;
                default:
                    # code...
                    break;
            }
            $stmt = sqlsrv_query($conn, $tsql);
            echo "done";
        }
// REST OF THE CLASS
}

When I am trying to initialize the class I get this error in the console:

POST http://#########/logic/add_client_logic.php 500 (Internal Server Error)jquery-1.11.2.min.js:4 m.ajaxTransport.sendjquery-1.11.2.min.js:4 m.extend.ajaxadd_client.js:21 (anonymous function)jquery-1.11.2.min.js:3 m.event.dispatchjquery-1.11.2.min.js:3 m.event.add.r.handle

I am new to ajax so maybe I am doing something horribly wrong there?

Thats my js file content:

$(function (){
    var $allgSubmit = $('#allg_firmendaten_submit');
    $allgSubmit.click(function(){
        alert('clicked');
        event.preventDefault();
        var gehrKundennummer = $('#gehrKundennummer').val();
        var kundenklasse = $("input[type='radio'][name='kundenklasse']:checked").val();
        var lkw12t = $('#lkw12t').val();
        var lkw3t = $('#lkw3t').val();
        var autobus = $('#autobus').val();
        var firmenname1 = $('#firmenname1').val();
        var firmenname2 = $('#firmenname2').val();
        var uidnummer = $('#uidnummer').val();
        var peselregon = $('#peselregon').val();
        var firmenart = $('#firmenart option:selected').val();
        var strasse = $('#strasse').val();
        var ort = $('#ort').val();
        var plz = $('#plz').val();
        var land = $('#land').val();
        var allgArray = [ gehrKundennummer, kundenklasse, lkw12t, lkw3t, autobus, firmenname1, firmenname2, uidnummer, peselregon, firmenart, strasse, ort, plz, land ];
        $.ajax({
            url: "http://########/logic/add_client_logic.php",
            type: "POST",
            data: $allgArray,
            success: function(){
                var $allgSave = $('#allgSave');
                $allgSave.toggle();
            },
            error: function(){
                alert('fail');
            }
        });
    });
});

SOLVED

The issue was simple and I blame myself for bothering you guys.

Since my logic file lies outside of the scope the class has never been included before initiliazing it == server error.

I simply included the class before executing my logic file and it works now.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM