Sgt_H4rtman
Ensign
- Registriert
- Dez. 2003
- Beiträge
- 254
Hallo Leute,
ich habe folgendes Problem. Ich möchte einen Webservice in PHP 5 schreiben, der auch in der Session gespeichert wird, d.h. der Nutzer soll per Webservice Daten in die Klasse schreiben können und beim Aufruf der nächsten Funktion sollen diese Daten wieder zur Verfügung stehen. Das klappt allerdings nicht. Habe schon überall verzweifelt gesucht und hoffe nun auf euch.
Derzeitige Situation:
- Webservice funktioniert, es lassen sich Daten im Objekt ablegen, diese werden auch in der Session gespeichert.
- Bei Aufruf einer anderen oder auch der gleichen Funktion wird die erste Instanz der Klasse zerstört, d.h. die Daten gehen verloren.
Ich gehe demnach davon aus, dass PHP nicht selbstständig die Daten aus der Session zurückholt. Leider ist nirgends dokumentiert, wie man das macht.
In dieser Datei sollte der Fehler liegen, sofern es einen gibt. Eventuell auch in der Klassendefinition. Dort habe ich aber keine der sog. magic_functions definiert, er sollte also alle notwendigen Schritte von selbst machen. Wie gesagt, im Moment wird immer eine neue Instanz der Klasse 'pro_class' erzeugt und damit die alten Daten zerstört.
Ich hoffe echt, dass mir hier jemand helfen kann. Es ist echt dringend.
Ciao
ich habe folgendes Problem. Ich möchte einen Webservice in PHP 5 schreiben, der auch in der Session gespeichert wird, d.h. der Nutzer soll per Webservice Daten in die Klasse schreiben können und beim Aufruf der nächsten Funktion sollen diese Daten wieder zur Verfügung stehen. Das klappt allerdings nicht. Habe schon überall verzweifelt gesucht und hoffe nun auf euch.
Derzeitige Situation:
- Webservice funktioniert, es lassen sich Daten im Objekt ablegen, diese werden auch in der Session gespeichert.
- Bei Aufruf einer anderen oder auch der gleichen Funktion wird die erste Instanz der Klasse zerstört, d.h. die Daten gehen verloren.
Ich gehe demnach davon aus, dass PHP nicht selbstständig die Daten aus der Session zurückholt. Leider ist nirgends dokumentiert, wie man das macht.
In dieser Datei sollte der Fehler liegen, sofern es einen gibt. Eventuell auch in der Klassendefinition. Dort habe ich aber keine der sog. magic_functions definiert, er sollte also alle notwendigen Schritte von selbst machen. Wie gesagt, im Moment wird immer eine neue Instanz der Klasse 'pro_class' erzeugt und damit die alten Daten zerstört.
PHP:
<?php
if (isset($_REQUEST['PHPSESSID'])) session_id($_REQUEST['PHPSESSID']);
session_start();
ini_set('soap.wsdl_cache_enabled', '0'); // Den WSDL Cache abschalten
require_once('pro_class.inc.php');
/* Erzeugt eine neue SoapServer Instanz. Der erste Parameter (null) bedeutet, dass keine WSDL Datei verwendet werden soll.
Wenn keine WSDL Datei angegeben wird, muss die uri Option gesetzt sein. */
$server = new SoapServer('./wsdl/myvast_pro.wsdl', array ( 'soap_version' => SOAP_1_2,
'encoding' => 'utf-8' ) );
/* Bestimmt, dass alle öffentlichen Funktionen der Klasse 'myvast_soap_class' für den Client erreichbar sein sollen */
$server->setClass('pro_class');
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
/* Behandelt den Soap Request des Clients. Die Antwort wird in XML "verpackt" und an den Client zurückgeschickt */
$server->handle();
?>
Ich hoffe echt, dass mir hier jemand helfen kann. Es ist echt dringend.
Ciao