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->__host80$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