Man nehme die PrimusInterface.class.php
	PHP-Code:
	
<?php
/**
* PrimusInterface
* -------------------------------------------
* Mit dieser Klasse ist ein einfacher Primeratransfer von Ihrem Account
* zu dem Account eines bei Primusportal.de registrierten Mitglieds möglich.
*
* Die Einbindung des Interfaces geschieht folgendermaßen:
*  1. Einbindung der Klasse in Ihr PHP-Auszahlungsskript:
*     CODE:
*       require_once( "PFAD/ZU/DER/KLASSE/PrimusInterface.class.php" );
*       $PPUsername = "username"; // Ihr Username bei Primusportal
*       $PPPassword = "passwort"; // Ihr Passwort bei Primusportal
* 
*       $Interface = new PrimusInterface($PPUsername, $PPPassword);
*  2. Durchführen einer Auszahlung:
*     CODE:
*       $Status = $Interface->Pay($PayReceiver, $PayAmount, $PayDescription);
*
*     Wobei $PayReicer der Username des Empfängers bei
*     Primusportal.de ist. $PayAmount ist der gerundete( !! ) Betrag an Primera,
*     die der Empfänger erhalten soll. $PayDescription ist eine von Ihnen 
*     festgelegte kurze Beschreibung. Die Länge dieses Textes darf 100 Zeichen
*     nicht überschreiten. Beispiel:
*       $status = $Interface->Pay("garbage", 10000, "Auszahlung IhreSeite.de - ID: 12345");
*  3. Überprüfung des Status (Rückgabecode):
*     CODE:
*       if(!$status) {
*         // Ein Fehler ist aufgetreten
*     // Fehlerbehandlung hier einfügen...
*       } else {
*         // Auszahlung erfolgreich durchgeführt
*         // Führen Sie hier Ihre Datenbankabfragen durch, um die Auszahlung zu
*         // bestätigen...
*       }
*     
*     Die komplette Rückgabe des Interfaces wird als assoziatives Array in der Klassen-
*     variable __data gespeichert:
*     __data => array("status" => Rückgabecode (PI_DONE, PI_SENDER_ERROR, ...),
*                     "statustext" => Status in Worten (z.B.: "Transaktion erfolgreich durchgeführt"),
*                     ")
*   
*
* @author Andreas Schmidt <xxgarbagexx@web.de>
* @version 1.0 - beta
* @package PrimusInterface
* @copyright (c) 2007 by Primusportal.de
**/
/** Fehler - Interfacebenutzer */
define("PI_ERROR", -1);
/** Statuscode für erfolgreich ausgeführte Transaktion */
define("PI_DONE", 200);
/** Fehler - User existiert nicht oder ist gesperrt */
define("PI_RECEIVER_ERROR", 301);
/** Sender-Account Fehler (User nicht existent, gesperrt, ...) */
define("PI_SENDER_ERROR", 401);
/** Betrag fehler */
define("PI_AMOUNT_ERROR", 501);
/** Zu wenig Primera */
define("PI_TOO_LESS_PRIMERA", 502);
/** User nicht aktiv oder existiert nicht */
define("PI_USER_CHECK_ERROR", 601);
    
/** User aktiv */
define("PI_USER_CHECK_OK", 602);
/** Primerastand erfolgreich geholt */
define("PI_GET_PRIMERA_DONE", 701);
class PrimusInterface {
  
  /**
  * URL für das Interface auf dem Primusserver:
  **/
  var $__host = "www.primusportal.de";
  var $__path = "/transfer.interface.2.0.php";
  
  var $__errno;
  var $__err;
  
  var $__seperator = ":";
  
  var $__username;
  var $__password;
  
  var $__data;
  
  /**
  * Konstruktor
  **/
  function PrimusInterface($PPUsername, $PPPassword) {
    $this->__username = $PPUsername;
    $this->__password = $PPPassword;
  }
  /**
  * Anfrage senden und Rückgabecode in Variable speichern
  **/
  function Query( $data = array() ) {
    $fp = fsockopen($this->__host, 80, $this->__errno, $this->_err);
    if(!$fp) return false;
    
    $data["PrimusInterface_Username"] = base64_encode($this->__username);
    $data["PrimusInterface_Password"] = base64_encode(md5($this->__password));
    
    // POST-Daten übermitteln:
    $data = http_build_query($data, '', '&');
    
    fputs($fp, "POST {$this->__path} HTTP/1.1\r\n");
    fputs($fp, "Host: {$this->__host}\r\n");
    fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
    fputs($fp, "Content-length: ". strlen($data) ."\r\n");
    fputs($fp, "Connection: close\r\n\r\n");
    fputs($fp, $data);
    
    $return = "";
    while(!feof($fp))
     $return.=fgets($fp,128);
    
    $content = explode("<!-- return-start -->", $return);
    return $content[1];
  }
  
  /**
   * Funktion parst die Rückgabe vom Transferskript:
   */
  function Parse( $content ) {
      $x = explode("\n", $content);
    $return = array();
    foreach($x as $currentLine) {
        $line_exploded = explode(":", $currentLine,2);
        if(count($line_exploded) > 1)
          $return[$line_exploded[0]] = $line_exploded[1];
    } 
    return $return;
  }
  /**
   * @param int/string $Receiver UserID / Username des Empfängers
   * @param int        $Amount   Betrag in ganzzahligen Primera
   * @param string     $Description Beschreibung (Sichtbar in Einzelauflistung)
   */
  function Pay($Receiver, $Amount, $Description = "") {
      $PostData = array("PrimusInterface_Action"   => "Pay",
                      "PrimusInterface_Receiver" => base64_encode($Receiver),
                      "PrimusInterface_Amount"   => base64_encode($Amount),
                      "PrimusInterface_Description" => base64_encode($Description) );
    
    $PostReturn = $this->Parse( $this->Query($PostData) );
    
    $this->__data = $PostReturn;
    if($PostReturn["status"] == "200")
     return $PostReturn['status'];
    else
     return $PostReturn['statustext'];
  }
  
  /**
  * Überprüft den Status eines Primus-Users
  * - existiert der User
  * - ist er aktiv
  * @param string/int $User Userid / Username
  */
  function CheckPrimusUser($User) {
    $PostData = array(  "PrimusInterface_Action"          => "CheckPrimusUser",
                        "PrimusInterface_CheckPrimusUser" => $User);
    
    $PostReturn = $this->Parse( $this->Query($PostData) );
    
    $this->__data = $PostReturn;
    if($PostReturn["status"] == PI_USER_CHECK_OK)
     return $PostReturn['status'];
    else
     return $PostReturn['statustext'];
  }
  
  /**
  * Die Funktion liefer den aktuellen Primerastand
  * 
  */
  function GetPrimera() {
    $PostData = array( "PrimusInterface_Action" => "GetPrimera" );
    $PostReturn = $this->Parse( $this->Query($PostData) );
    
    $this->__data = $PostReturn;
    if($PostReturn["status"] == PI_GET_PRIMERA_DONE)
     return $PostReturn["primera"];
    else
     return false; 
  } 
};
?>
 includet diese in einer Datei, und macht dieses hier:
	PHP-Code:
	
$Interface = new PrimusInterface($primera_acc, $primera_pw);
$regstatus = $Interface->CheckPrimusUser($_POST['nickname']);
         if ($regstatus != 602) $fehler = TRUE;
                 else $fehler = FALSE;