2 Stimmen

PHP SoapClient funktioniert nicht - kein Fehler

Ich habe einen Code, der sich über SOAP mit einem Newsletter-Dienst verbindet. Er funktioniert problemlos auf unserem Entwicklungsserver, aber auf unserem Live-Server funktioniert er überhaupt nicht. Es werden keine Fehler zurückgegeben, nur eine leere weiße Seite. Ich habe einige error_logs in den Code eingefügt und genau die Stelle gefunden, an der es nicht mehr funktioniert - in der Zeile, die den neuen SoapClient erstellt. Gibt es eine Art von Serverkonfiguration, die eingestellt werden muss? Unser Code ist identisch zwischen Dev und Prod, so dass das einzige, was ich herausfinden kann, ist ein Serverproblem. (Beachten Sie, dass der erste Teil des Codes unten vom Newsletter-Dienst bereitgestellt wurde, nicht von mir geschrieben).

# bronto API session/connection setup
ini_set("soap.wsdl_cache_enabled", "0");
date_default_timezone_set('America/Chicago');

$wsdl = "https://api.bronto.com/v4?wsdl";
$url = "https://api.bronto.com/v4";

/*error log statements up to this point return what is expected; 
  an error log after the following line (starting with $client = new SoapClient) 
  does not get triggered at all. */

$client = new SoapClient($wsdl, array('trace' => 1, 'encoding' => 'UTF-8')); 
$client->__setLocation($url);

$token = "XXX";
$sessionId = $client->login(array("apiToken" => $token))->return;
$client->__setSoapHeaders(array(new SoapHeader("http://api.bronto.com/v4",
        'sessionHeader',
         array('sessionId' => $sessionId))));

Ich habe auch etwas Ähnliches versucht, um explizit alle Fehler zu sehen, aber kein Glück - immer noch nichts im Fehlerprotokoll.

try {  
  $client = @new SoapClient($wsdl, array('trace' => 1, 'encoding' => 'UTF-8')); 
} 
  catch (SoapFault $E) {  
    error_log($E->faultstring) ;
}  
error_log("ok");

0 Stimmen

Ich würde die installierten PHP-Pakete auf dem Dev-Server überprüfen und mit denen auf dem Prod-Server vergleichen. fr2.php.net/handbuch/de/soap.setup.php

1 Stimmen

Schalten Sie error_reporting ein. Ein "weißer Bildschirm" bedeutet normalerweise, dass PHP gekotzt hat und so eingestellt wurde, dass es alle Fehler ausblendet, so dass Sie nichts sehen. Wenn PHP so konfiguriert wurde, überprüfen Sie auch die Fehlerprotokolle des Servers (und/oder von PHP), um zu sehen, ob dort etwas zu finden ist. Vielleicht werden keine Fehlermeldungen im Browser ausgegeben, aber sie könnten irgendwo protokolliert werden.

0 Stimmen

@Phil, danke. Ich habe das gerade gemacht, und Überraschung! Auf unserem (gehosteten) Live-Server ist SOAP überhaupt nicht installiert! Wenn Sie diesen Kommentar in eine Antwort verschieben möchten, werde ich ihn akzeptieren, damit Sie Anerkennung erhalten.

7voto

Phill Pafford Punkte 80621

Ich würde die installierten PHP-Pakete auf dem Dev-Server überprüfen und mit dem Prod-Server vergleichen. fr2.php.net/manual/de/soap.setup.php

0 Stimmen

Das war das Problem: SOAP ist auf unserem gehosteten Live-Server nicht installiert.

0voto

Barkermn01 Punkte 6525

Dies wird mehr als wahrscheinlich ein Konfigurations-Setup für PHP auf dem Live-Server sein, aber hier sind die gemeinsamen Probleme, die ich mit SOAP auf PHP hatte,

Prüfen Sie als erstes den erlaubten Speicher für php auf live vergleichbar mit dev (SOAP ist groß und schlecht für den Speicher)

Ist das PHP auf dem Live-Server die gleiche Version wie auf dem Entwicklungsserver,

Ist der Live-Server berechtigt, auf den SOAP-Server zuzugreifen (wenn auth auf einer IP-Ebene verwendet wird)

als eines der SOAP-Pakete, die ich verwendet habe, tat dies zu mir fand ich heraus, es war eine Version nicht übereinstimmen, last but not least könnten Sie uns sagen, welche SOAP-Bibliothek, wenn alle anderen als php-Standard Ihre Verwendung, so dass wir helfen können, wie Ihr Code gut aussieht:)

Denken über es haben Sie Seife installieren ich glaube nicht, dass php nativ unterstützt es ich denke, seine eine Birne oder pecl-Paket und wenn Ihr mit XAMPP oder easyPHP auf dev diese haben alle von beiden alle bereit in php enthalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X