php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 21-05-2010, 13:36
herrentor
 Registrierter Benutzer
Links : Onlinestatus : herrentor ist offline
Registriert seit: May 2005
Beiträge: 59
herrentor ist zur Zeit noch ein unbeschriebenes Blatt
Standard Webservice Verbindungsfehler

Hallo,

hab jemand eine Ahnung, welcher Pfad richtig für eine Verbindung zu einer SoapServer *.php Datei ist?

Übergebe ich den direkten Pfad zur Datei:

http://web542.srv1.sysproserver.de/amazon/inventory.php

bekomme ich mehrere "Warning: DOMDocument::loadXML(): Opening and ending tag mismatch" Fehlermeldungen. Diese bekomme ich allerdings auch, wenn eine nicht existierende Datei angesprochen wird. Übergebe ich den Pfad:

http://fba-inventory.herrentor.de

der dann zur obigen Datei weiterleitet, bekomme ich einen Error 302 und die selbe Adresse als https, gibt einen Error 500.

Wie kann ich erkennen, ob wenigstens die Webservice Verbindung zwischen Client und Server besteht?

Danke schon mal im voraus.
Mit Zitat antworten
  #2 (permalink)  
Alt 21-05-2010, 13:44
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

Zitat:
Zitat von herrentor Beitrag anzeigen
welcher Pfad richtig für eine Verbindung zu einer SoapServer *.php Datei ist?
Das sagt dir normalerweise der Betreiber des Service.

Zitat:
Zitat von herrentor Beitrag anzeigen
bekomme ich mehrere "Warning: DOMDocument::loadXML(): Opening and ending tag mismatch" Fehlermeldungen.
Dann liefert die Ressource einfach kein (gültiges) XML aus => Betreiber fragen.

Zitat:
Zitat von herrentor Beitrag anzeigen
bekomme ich einen Error 302
302 ist kein Error, sondern ein Umleitungsstatus.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 21-05-2010, 13:51
herrentor
 Registrierter Benutzer
Links : Onlinestatus : herrentor ist offline
Registriert seit: May 2005
Beiträge: 59
herrentor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke Dir für die schnell Antwort. Betreiber bin in diesem Fall ich selber und ich weiß nicht genau welchen Pfad ich angeben muss.

Für mich hört sich der Warning: DOMDocument::loadXML() Fehler am besten an, bzw. ich schließe daraus das eine Verbindung besteht und wie Du sagtest eine ungültige XML Datei zurückgegeben wird. Aber warum bekomm ich dann den gleichen Fehler, wenn ich eine nicht existierende Datei als Pfad angebe?
Mit Zitat antworten
  #4 (permalink)  
Alt 21-05-2010, 13:54
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von herrentor Beitrag anzeigen
Aber warum bekomm ich dann den gleichen Fehler, wenn ich eine nicht existierende Datei als Pfad angebe?
Weil der Webserver dann trotzdem ein ErrorDocument schickt, welches vermutlich nicht als valides XML durchgeht. Du kannst dir das ja einfach mal im Browser ansehen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 21-05-2010, 14:03
herrentor
 Registrierter Benutzer
Links : Onlinestatus : herrentor ist offline
Registriert seit: May 2005
Beiträge: 59
herrentor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, dann bin ich schon mal einen Schritt schlauer. Warum ich diesen Fehler bekomme, kann ich allerdings nicht richtig nachvollziehen.

Die angesprochene Datei auf dem Server liefert mir normalerweise ein XML Dokument, welches der Client bei lokaler Übergabe verarbeiten kann.


PHP-Code:
function ListUpdatedInventorySupply($request){
  
$xml file_get_contents('Amazon/FWSInventory/Mock/ListUpdatedInventorySupplyResponse.xml'TRUE);
  
$dom = new DOMDocument();
  
$dom->loadXML($xml);
  return 
$dom;

PHP-Code:
$server = new SoapServer("AmazonFBAInventory.wsdl"); 
$server->addFunction("ListUpdatedInventorySupply");
$server->handle(); 
Oder wird eine XML Datei anders übergeben?
Mit Zitat antworten
  #6 (permalink)  
Alt 21-05-2010, 14:29
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Wo kommt denn die Fehlermeldung her? Wenn sie schon in der ListUpdatedInventorySupply-Funktion auftritt, stimmt z. B. einfach der Pfad nicht.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #7 (permalink)  
Alt 21-05-2010, 14:46
herrentor
 Registrierter Benutzer
Links : Onlinestatus : herrentor ist offline
Registriert seit: May 2005
Beiträge: 59
herrentor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Der Fehler entsteht beim einlesen der XML Datei im Client in der Funktion fromXML. Wenn ich dort die XML Datei lokal lade, funktioniert es.

Funktionsaufruf im Client:
PHP-Code:
public function listUpdatedInventorySupply($request)
    {
        if (!
$request instanceof Amazon_FWSInventory_Model_ListUpdatedInventorySupplyRequest) {
            require_once (
'Amazon/FWSInventory/Model/ListUpdatedInventorySupplyRequest.php');
            
$request = new Amazon_FWSInventory_Model_ListUpdatedInventorySupplyRequest($request);
        }
        require_once (
'Amazon/FWSInventory/Model/ListUpdatedInventorySupplyResponse.php');
        return 
Amazon_FWSInventory_Model_ListUpdatedInventorySupplyResponse::fromXML(
$this->_invoke($this->_convertListUpdatedInventorySupply($request)));
    } 
PHP-Code:
 private function _convertListUpdatedInventorySupply($request) {
        
        
$parameters = array();
        
$parameters['Action'] = 'ListUpdatedInventorySupply';
        if (
$request->isSetNumberOfResultsRequested()) {
            
$parameters['NumberOfResultsRequested'] =  $request->getNumberOfResultsRequested();
        }
        if (
$request->isSetQueryStartDateTime()) {
            
$parameters['QueryStartDateTime'] =  $request->getQueryStartDateTime();
        }
        if (
$request->isSetResponseGroup()) {
            
$parameters['ResponseGroup'] =  $request->getResponseGroup();
        }

        return 
$parameters;
    } 
PHP-Code:
private function _invoke(array $parameters)
    {
        
$actionName $parameters["Action"];
        
$response = array();
        
$responseBody null;
        
$statusCode 200;

        
/* Submit the request and read response body */
        
try {

            
/* Add required request parameters */
            
$parameters $this->_addRequiredParameters($parameters);

            
$shouldRetry true;
            
$retries 0;
            do {
                try {
                        
$response $this->_httpPost($parameters);
                        if (
$response['Status'] === 200) {
                            
$shouldRetry false;
                        } else {
                            if (
$response['Status'] === 500 || $response['Status'] === 503) {
                                
$shouldRetry true;
                                
$this->_pauseOnRetry(++$retries$response['Status']);
                            } else {
                                throw 
$this->_reportAnyErrors($response['ResponseBody'], $response['Status']);
                            }
                       }
                
/* Rethrow on deserializer error */
                
} catch (Exception $e) {
                    require_once (
'Amazon/FWSInventory/Exception.php');
                    if (
$e instanceof Amazon_FWSInventory_Exception) {
                        throw 
$e;
                    } else {
                        require_once (
'Amazon/FWSInventory/Exception.php');
                        throw new 
Amazon_FWSInventory_Exception(array('Exception' => $e,
 
'Message' => $e->getMessage()));
                    }
                }

            } while (
$shouldRetry);

        } catch (
Amazon_FWSInventory_Exception $se) {
            throw 
$se;
        } catch (
Exception $t) {
            throw new 
Amazon_FWSInventory_Exception(array('Exception' => $t'Message' => $t->getMessage()));
        }

        return 
$response['ResponseBody'];
    } 
PHP-Code:
private function _httpPost(array $parameters)
    {

        
$query $this->_getParametersAsString($parameters);
        
$url parse_url ($this->_config['ServiceURL']);
        
$post  "POST / HTTP/1.0\r\n";
        
$post .= "Host: " $url['host'] . "\r\n";
        
$post .= "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n";
        
$post .= "Content-Length: " strlen($query) . "\r\n";
        
$post .= "User-Agent: " $this->_config['UserAgent'] . "\r\n";
        
$post .= "\r\n";
        
$post .= $query;
        
$port array_key_exists('port',$url) ? $url['port'] : null;
        
$scheme '';

        switch (
$url['scheme']) {
            case 
'https':
                
$scheme 'ssl://';
                
$port $port === null 443 $port;
                break;
            default:
                
$scheme '';
                
$port $port === null 80 $port;
        }

        
$response '';
        if (
$socket = @fsockopen($scheme $url['host'], $port$errno$errstr10)) {

            
fwrite($socket$post);

            while (!
feof($socket)) {
                
$response .= fgets($socket1160);
            }
            
fclose($socket);

            list(
$other$responseBody) = explode("\r\n\r\n"$response2);
            
$other preg_split("/\r\n|\n|\r/"$other);
            list(
$protocol$code$text) = explode(' 'trim(array_shift($other)), 3);
        } else {
            throw new 
Exception ("Unable to establish connection to host " $url['host'] . " $errstr");
        }


        return array (
'Status' => (int)$code'ResponseBody' => $responseBody);
    } 
Was muss ich vom SoapServer übergeben, um die gleiche Verarbeitung zu bekommen, als wenn ich der Funktion fromXML einfach die XML Datei lokal übergebe?
Mit Zitat antworten
  #8 (permalink)  
Alt 21-05-2010, 15:52
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Mir fällt grad was auf und ein: Du kannst es als XML-Code ausliefern, aber nicht als DOMDocument-Objekt, weil das ja nicht direkt iterierbar ist. Alternativ dazu könntest du das DOM in ein Array packen. Das ist genau wie bei Sessions: Nicht alles ist serialisierbar.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #9 (permalink)  
Alt 21-05-2010, 15:57
herrentor
 Registrierter Benutzer
Links : Onlinestatus : herrentor ist offline
Registriert seit: May 2005
Beiträge: 59
herrentor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn ich einfach das XML Dokument zurückgebe, kommt der gleiche Fehler und einen Debugger bekomme ich nicht zum laufen.

Geändert von herrentor (21-05-2010 um 15:59 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 21-05-2010, 15:59
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von herrentor Beitrag anzeigen
Wenn ich einfach das XML Dokument zurückgebe, kommt der gleiche Fehler.
Dann weiß ich auch nicht weiter, tut mir leid.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #11 (permalink)  
Alt 21-05-2010, 16:00
herrentor
 Registrierter Benutzer
Links : Onlinestatus : herrentor ist offline
Registriert seit: May 2005
Beiträge: 59
herrentor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, danke Dir trotzdem für die Mühe.

Geändert von herrentor (21-05-2010 um 18:56 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 21-05-2010, 19:03
herrentor
 Registrierter Benutzer
Links : Onlinestatus : herrentor ist offline
Registriert seit: May 2005
Beiträge: 59
herrentor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab jetzt rausgefunden das immer nur die Index Datei angesprochen wird, egal welchen Pfad man angibt. Jemand eine Ahnung wie man das ändern kann?

Wenn ich meine SoapServer Datei als Index mache, werden die Funktionen aber auch nicht angesprochen und es gibt einen 500er Error.

Wenn die Server Datei ein echo mit einem XML Dokument ausgibt, bekomme ich ein Warning: DOMDocument::loadXML().

Warum werden die Funktionen nicht gefunden?
Mit Zitat antworten
  #13 (permalink)  
Alt 21-05-2010, 19:05
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von herrentor Beitrag anzeigen
Hab jetzt rausgefunden das immer nur die Index Datei angesprochen wird, egal welchen Pfad man angibt. Jemand eine Ahnung wie man das ändern kann?
Das klingt nach Request Funneling mit ModRewrite.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #14 (permalink)  
Alt 21-05-2010, 19:34
herrentor
 Registrierter Benutzer
Links : Onlinestatus : herrentor ist offline
Registriert seit: May 2005
Beiträge: 59
herrentor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Liegt am parsen der URL. In der Funktion _httpPost die ich schon in einer vorigen Antwort eingefügt habe.

Weiß aber jetzt nicht genau wo $url['path'] anhängen muss.
Mit Zitat antworten
  #15 (permalink)  
Alt 21-05-2010, 20:26
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zwischen „POST“ und „HTTP 1.0“.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SoapServer eigene Fehlermeldung zurück schicken Svenner PHP Developer Forum 2 13-11-2009 20:48
Datei übertragen jogisarge PHP Developer Forum 12 26-10-2007 11:32
CVS Datei in mySQL DB übertragen pixelschubser PHP Developer Forum 1 27-04-2004 14:39
Datei in String übertragen Smax PHP Developer Forum 2 02-02-2003 10:08
Array in Datei übertragen Andi22 PHP Developer Forum 1 13-05-2002 15:54

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:13 Uhr.