soap client

rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

soap client

Beitrag von rene04 »

hi,

ich möchte über soap einen server ansteuern.

Code: Alles auswählen

<?php
$client = new SoapClient('https://support.sieda.com/TrackStudio/services/User?method=authenticate&p1=xxx&p2=xxx');
?> 
leider bekomme ich folgende fehlermeldung:

Code: Alles auswählen

Fatal error: Cannot instantiate non-existent class: soapclient in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2
was kann ich tun damit das funktioniert? auf dem server(debian) ist pear::soap installiert.

gruesse rene
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

du solltest die klasse schon mittels include laden...
*** make your own tools (wishlist :: thx)
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

das problem ist: welche klasse. der name der klasse welche ich includen soll is mir schon klar, aber.... woher bekomme ich die? ich habe keine erstellt.

gruesse rene
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

vielleicht solltest du dir die pear dokumentation für diese klasse mal ansehen...
*** make your own tools (wishlist :: thx)
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

das werde ich wohl mal tun, bei gelegenheit.

danke erstmal.

gruesse rene
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

so,

die klassen habe ich nun gefunden. scheint als wäre meine installation von SOAP ok.

die client class liegt nun unter /usr/share/php/SOAP/client.php

wie müsste das include nun aussehen?

Code: Alles auswählen

cInclude('/usr/share/php/SOAP/', 'client.php');
???

gruesse rene
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

innerhalb von contenido... (cInclude ist eine contenido funktion)

Code: Alles auswählen

cInclude('pear', 'SOAP/client.php');
ansonsten wie bei pear üblich

Code: Alles auswählen

include("SOAP/client.php");
ist natürlich abhängig davon ob include_path seitens php korrekt konfiguriert wurde...

Code: Alles auswählen

include("/usr/share/php/SOAP/client.php");
könnte auch funktionieren...
*** make your own tools (wishlist :: thx)
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

also cInclude muss ich nehmen da ich es aus contenido heraus aufrufen will, oder?

wie finde ich heraus ob der pfad richtig gesetzt ist?

ich habs mal mit bsp 1 von dir versucht:

Code: Alles auswählen

Fatal error: Call to undefined function: cinclude() in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2
wenn ichs mit bsp 3 versuche bekomme ich diesen fehler:

Code: Alles auswählen

Warning: main(): open_basedir restriction in effect. File(/usr/share/php/SOAP/client.php) is not within the allowed path(s): (/var/www/web1/:/var/www/phpmyadmin/:/var/www/confixx/html/gesperrt/) in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2

Warning: main(/usr/share/php/SOAP/client.php): failed to open stream: Operation not permitted in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2

Warning: main(): Failed opening '/usr/share/php/SOAP/client.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2

Fatal error: Cannot instantiate non-existent class: soapclient in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 3
gruesse rene
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

rene04 hat geschrieben:also cInclude muss ich nehmen da ich es aus contenido heraus aufrufen will, oder?
nein, muss ist es nicht... es funktioniert nur innerhalb von contenido...
rene04 hat geschrieben:wie finde ich heraus ob der pfad richtig gesetzt ist?
blöde frage -> woher weisst du eigentlich das SOAP installiert ist ?
hat der provider gesagt das es in der server seitigen pear installation vorhanden ist ?

zum include_path
innerhalb von contenido unter administration - system ersichtlich...
wenn dort
/usr/share/php/ eingetragen funktioniert ein einbinden der klasse mittels

Code: Alles auswählen

include("SOAP/client.php");
*** make your own tools (wishlist :: thx)
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

blöde frage -> woher weisst du eigentlich das SOAP installiert ist ?
hat der provider gesagt das es in der server seitigen pear installation vorhanden ist ?
ne, ich habs selbst installiert. habe uneingeschränkten root zugriff auf die mühle. und die installation lief ohne fehler durch.


gruesse rene
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

na wenn du root zugriff hast -> in der php.ini des servers...
wie die genau syntax dort zu lauten hat -> doku bemühen...

änderung wird vermutlich nach einen neustart des apache servers aktiv...
*** make your own tools (wishlist :: thx)
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

hmmm,

geht immernoch net :( habs gemacht wie du sagtest. der path ist da.

Code: Alles auswählen

Warning: main(SOAP/client.php): failed to open stream: No such file or directory in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2

Warning: main(): Failed opening 'SOAP/client.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2

Fatal error: Cannot instantiate non-existent class: soapclient in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 3
wenn es case-senitive ist, was man von linux kisten sagen kann sollte es Cient.php sein. Aber auch das geht nicht:

Code: Alles auswählen

Warning: main(): open_basedir restriction in effect. File(/usr/share/php/SOAP/Client.php) is not within the allowed path(s): (/var/www/web1/:/var/www/phpmyadmin/:/var/www/confixx/html/gesperrt/) in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2

Warning: main(SOAP/Client.php): failed to open stream: Operation not permitted in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2

Warning: main(): Failed opening 'SOAP/Client.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 2

Fatal error: Cannot instantiate non-existent class: soapclient in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 3
gruesse rene
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

ich habe nun mal auf dem server open_basedir auf none gesetzt.

jetzt ist die fehlermeldung schon wesentlich kürzer:

Code: Alles auswählen

Fatal error: Cannot instantiate non-existent class: soapclient in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 3
was ist hier noch nicht in ordnung? ich verzweifel bald ;(

gruesse rene
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

rene04 hat geschrieben:

Code: Alles auswählen

Fatal error: Cannot instantiate non-existent class: soapclient in /var/www/web1/html/contenido-4.6.4/cms/soap.php on line 3
hättest du nach
'Cannot instantiate non-existent class'
gesucht, hättest du nicht verzweifeln müssen ;)
da fehlt wohl irgendwo noch ein

cInclude('classes', ' .....

für soapclient
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

ne, eben nicht.

Code: Alles auswählen

<?php
include("SOAP/Client.php");
$client = new SoapClient('https://support.sieda.com/TrackStudio/services/User?method=authenticate&p1=xxx&p2=xxx');
?> 
die klasse für den soapclient ist includiert. deswegen bin ich auch so verwundert.

gruesse rene
Gesperrt