funktion aus class auslesen...

dejado

Grünschnabel
Hallo zusammen :D

Ich bin ein blutiger Anfänger in sachen PHP und habe ein kleines Problem, bzw. zwei!

Zunächst habe ich mir folgendes Script zur Steuerung meines XEN Guests über eine API-Schnittstelle heruntergeladen:

PHP:
class myBox {

    function __construct($id=NULL) {
        define('HOST','https://api.mybox.de/<Token>/v1.0/');
        define('DEFAULT_PLAN_ID',10);
        $this->id = $id;
        if ($id) {
            $this->getInfo();

        }
        
    }
    
    function requestCurl( $id, $method='GET', $data=array(), $command='myBoxes' ) {
    
        $ch = curl_init( HOST.$command.'/'.$id );
        
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );    
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
        
        if (strtoupper($method) == 'POST') {
            curl_setopt($ch, CURLOPT_POST, 1 );
            curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($data) ); 
        }
        if (strtoupper($method) == 'GET') curl_setopt($ch, CURLOPT_HTTPGET, 1 );
        if (strtoupper($method) == 'PUT') {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); 
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($data)));
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
        }

        if( !$data = curl_exec( $ch )) {
            echo "Curl execusion error.", curl_error( $ch ) ."\n";
            return FALSE;
        }
        if($data->messages[0]->type == 'error') {
            die($data->messages[0]->message);
        }

        curl_close( $ch );

        return $data;
    }

    
    function getInfo() {
        $json = $this->requestCurl($id = $this->id, $method = 'GET');
        $json = json_decode($json);
        if (is_object($json)) {
            foreach($json->result AS $var=>$value){
                $this->$var = $value;
            }
            return $json->result;
        }
        else {
            return FALSE;
        }
    }
}

Nun zu meinen Fragen:
1. Wie rufe ich nun die Funktion getInfo() auf und kann mir das Ergebniss ausgeben lassen?
2. Wie kann ich den <Token> und die PlanID durch eine Variable auslesen (z.B. in einer config.ing.php)
3. wenn ich das script aufrufe bekomme ich folgende Warnung: Notice: Trying to get property of non-object in /data/..../myb.php line 52 (die Rote)

EDIT:
return FALSE;
}
if($data->messages[0]->type == 'error') {
die($data->messages[0]->message);
}

Würde mich über eure Hilfe sehr freuen!

Gruß Chris
 
Zuletzt bearbeitet:
Du scheinst wirklich garkeine Ahnung zu haben, richtig?
Ich würde mich an eine Person deines vertrauens wenden und das alles einstellen und konfigurieren lassen. diese Klasse ist übrigens nicht das Gelbe vom Ei, aber wenn sie funktioniert...
 
Ich kenn zwar XEN nicht, aber so rein PHP-Technisch

zu 1)
PHP:
$obj = new myBox($mySelectedId);
echo $obj->getInfo();

3) Wie rufst du denn das Script auf?
 
naja ich habe das Script in eine mybox.class.php gesteckt die von der mybox.php included wird & dann rufe ich das ganze in einer htaccess geschützten Umgebung auf...

Btw. danke erstmal!

Yeslaw ich versuche es seid über einer Stunde selber und war auch die ganze Zeit relativ nah dran!
Das reichte aber nun einmal nicht :P
 
Hmm nun bekomme ich:
Warning: Invalid argument supplied for foreach() in /data/...........php on line 66

if (is_object($json)) {
foreach($json->result AS $var=>$value){
$this->$var = $value;
}
return $json->result;
}

Das Script war ursprünglich für php4 geschrieben, ich nutze aber php5, könnte es etwas damit zu tun haben?
 
Zurück