PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie prüfen ob es den Nicknamen bei Primus gibt?



Rallef
10.09.2009, 20:19
Hallo,

ich habe bei meiner Primera-Seite (vms 1.2.x) im Userprofil eine Eingabemöglichkeit für die User eingefügt, wo sie ihren Primusportal-Nicknamen eingeben können.

Nun prüfe ich gelegentlich per Hand, ob die Nicknamen stimmen bzw. ob es den Nicknamen bei Primusportal überhaupt so gibt.

Gibt es da nicht eine Möglichkeit, das irgendwie zu automatisieren?
Also so, dass wenn der User den Nicknamen eingibt, auch gleich gecheckt wird, ob es den tatsächlich gibt.

Ob der Nickname dann einem anderen User gehört ist ja erst mal egal, weil sowiso jeder Nickname nur einmal eingetragen werden kann.

Mir gehts in erster Linie darum, prüfen zu lassen, ob es den Nicknamen dort überhaupt gibt oder nicht.

rudicarell81
10.09.2009, 20:25
Der einfachte weg wäre wenn ein php script die nickpage aufruft

http://www.primusportal.de/mikesdddchi/ (http://www.primusportal.de/mikeschi/)

und dann prüfst du ob auf der seite ein bestimmter text da ist in dem fal wäre es

z.b.



Nirgends fühle ich mich so wohl wie hier! Aktivität wird bestens vergütet; Spaß und Spiel kommen nicht zu kurz; die große Community bietet Unterhaltung und ist zugleich Handelsplatz; 1A Support.


da ja auf die startseite weitergeleitet wird.

vorrausetzung ist das primususer nicht abstellenen können das man die nickpage auch im ausgeloggten zustand sehen kann,

und bitte frage vorher bei primusportal ob es eine api gibt des das weiß ich nicht ;)

Gremlin
10.09.2009, 20:29
Man nehme die PrimusInterface.class.php



<?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:



$Interface = new PrimusInterface($primera_acc, $primera_pw);
$regstatus = $Interface->CheckPrimusUser($_POST['nickname']);
if ($regstatus != 602) $fehler = TRUE;
else $fehler = FALSE;