xml-rpc problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • xml-rpc problem

    Hallo zusammen,

    stehe vor einem kleinen Problem. Vielleicht kann mir jemand helfen...

    Ich habe eine mySQL-Datenbank da sind Termine eingetragen. Nun habe ich ein kleines Server-Script erstellt um von Extern auf meine Datenbank
    zu gelangen und Termine auszulesen bzw. zu editieren. Funktioniert auch soweit, wenn ich einzelne Werte auslese. Wenn ich aber
    alle Daten eines Termins bzw. mehrer Termine zu einem Array zusammenfassen will, bekomme ich immer folgende Meldung:

    Call to a member function serialize() on a non-object in xmlrpc.inc on line 2907.

    Hier mein PHP-Code:

    PHP-Code:
    <?php

    require_once('/xampp/htdocs/test/inc/xmlrpc.inc');
    require_once(
    '/xampp/htdocs/test/inc/xmlrpcs.inc');
    require_once(
    '/xampp/htdocs/test/inc/class.mysqldb.php');

    $addAppointment_signature     = array (array ($xmlrpcStruct$xmlrpcStruct));
    $delAppointment_signature     = array (array ($xmlrpcStruct$xmlrpcStruct));
    $getAppointment_signature     = array (array ($xmlrpcStruct$xmlrpcStruct));
    $editAppointment_signature     = array (array ($xmlrpcStruct$xmlrpcStruct));


    # implement request handler
    class RpcRequestHandler {
        
        function 
    getAppointment($xmlrpcmsg) {
        
            
            
    $database = new db_MySQL();
            
            
    $par $xmlrpcmsg->getParam(0);
                    
            
    $user         $par->structmem("user")->scalarval();
            
    $password    $par->structmem("password")->scalarval();
            
    $date        $par->structmem("date")->scalarval();
            
            
            
    $database->connect();
            
    $query "SELECT * FROM termine WHERE termin_datum='$date'";
            
    $result $database->QueryResult($query);
            
            
    $appointments = array();

            if(
    $database->AffectedRows() > 0) {
                
    $termin_count $database->AffectedRows();
                
                while(
    $row $database->FetchResult($result))
                {
        
                    
                    
    array_push($appointments,array(
                                                new 
    xmlrpcval($row['id'],"int"),
                                                new 
    xmlrpcval($row['termin_datum'],"string"),
                                                new 
    xmlrpcval($row['termin_zeit'],"string"),
                                                new 
    xmlrpcval($row['text'],"string")
                                            ));
                    
                }
                
                
    $database->FreeResult($result);        
                
            }
            

            
    $database->Disconnect();

            

            
    $rpcStruct = new xmlrpcval (
                array(
                    
    "count"            =>    new xmlrpcval($termin_count"int"),
                    
    "appointments"    =>    new xmlrpcval($appointments"array")
                ), 
    "struct"
            
    );
            
            return new 
    xmlrpcresp($rpcStruct);
        
        }    
    # end getAppointment()
        
        
        
    function addAppointment($xmlrpcmsg) {
            
            return new 
    xmlrpcresp($rpcStruct);
            
        }    
    # end addAppointment();
        
        
    function delAppointment($xmlrpcmsg) {
            
            return new 
    xmlrpcresp($rpcStruct);
            
        }    
    # end delAppointment();
        
        
    function editAppointment($xmlrpcmsg) {
            
            return new 
    xmlrpcresp($rpcStruct);
            
        }    
    # end Appointment();
        
        
    # end class


    # implement RPC Server

    $server = new xmlrpc_server(
        array(
            
    "requestHandler.addAppointment"    =>    array(
                
    "function"    =>    "RpcRequestHandler::addAppointment",
                
    "signature"    =>    $addAppointment_signature),
            
    "requestHandler.delAppointment"    =>    array(
                
    "function"    =>    "RpcRequestHandler::delAppointment",
                
    "signature"    =>    $delAppointment_signature),
            
    "requestHandler.getAppointment"    =>    array(
                
    "function"    =>    "RpcRequestHandler::getAppointment",
                
    "signature"    =>    $getAppointment_signature),
            
    "requestHandler.editAppointment"    =>    array(
                
    "function"    =>    "RpcRequestHandler::editAppointment",
                
    "signature"    =>    $editAppointment_signature)
        )
    );
    ?>

  • #2
    G E L Ö S T

    ach, blöder Fehler!!!


    hier der Richtige Code das Array zu generieren:


    PHP-Code:
                    array_push($appointments,
                            new 
    xmlrpcval(
                                    array(
                                                new 
    xmlrpcval($row['id'],"int"),
                                                new 
    xmlrpcval($row['termin_datum'],"string"),
                                                new 
    xmlrpcval($row['termin_zeit'],"string"),
                                                new 
    xmlrpcval($row['text'],"string")
                                    ),
    "array"
                            
    )
                ); 

    Kommentar


    • #3
      Denke daran das der Apache in Standardkonfiguration *.inc nicht verarbeitet sonder als Textdatei behandelt und somit den Quelltext bei Aufrufen im Browser zeigt.
      "Nicht jeder Mensch kann und soll Programmieren[...]".

      Kommentar

      Lädt...
      X