PHP vs. API

Mitglied: Soidberg

Soidberg (Level 1)

26.02.2010 um 12:41 Uhr, 3057 Aufrufe, 1 Kommentar

Es geht darum ein bestehendes funktierendes Snippet umzubasteln wobei ich aktive Hilfe benötige da PHP nicht meine Welt ist.

Ich lasse für mich auf einer seperaten Seite (.php) den aktuellen Creditstand meines Filehostingaccountes anzeigen. Das funktioniert auch sehr gut, nun möchte ich diese Anzeige erweitern um weitere Infos über die API darzustellen.

Das Skript wurde damals gefunden, Leider ist Try and Error bislang mehr Error weshalb ich mir hier aktive Hilfe erhoffe.

Anbei das Skript:

01.
<?php
02.

03.
require_once('./global.php');
04.
// Daten die du ändern kannst
05.
$user  = "*********";     // Account-ID
06.
$type  = "prem";      // prem oder col
07.
$pass  = "**********"; // Account-Passwort
08.

09.
// Hier gehts dann richtig los
10.
$apisub = "getaccountdetails_v1";
11.
$host = "api.****share.com";
12.
$file = "/cgi-bin/rsapi.cgi?sub=".$apisub."&type=".$type."&login=".$user."&password=".$pass;
13.

14.
$fp = fsockopen($host, 80, $errno, $errstr, 30);
15.
if (!$fp)
16.
{
17.
    trigger_error( "$errstr ($errno)<br />\n");
18.
    return;
19.
}  
20.
$out = "GET ".$file." HTTP/1.1\r\n";
21.
$out .= "Host: ".$host."\r\n";
22.
$out .= "User-Agent: Mozilla/5.3 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/2232 Firefox/3.0.0.R\r\n";
23.
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
24.
$out .= "Connection: Close\r\n\r\n";
25.

26.
fwrite($fp, $out);
27.
    
28.
$accdata = array();
29.
$active = false;
30.
    
31.
while (!feof($fp)) 
32.
{
33.
    $data = fgets($fp, 128);
34.
    if(substr($data,0,10) == "accountid=")
35.
    {
36.
        $active = true;
37.
    }
38.
    if($active == true)
39.
    {
40.
        $exptemp = explode("=",$data);
41.
        $accdata[$exptemp[0]] = $exptemp[1];
42.
    }
43.
}
44.
fclose($fp);
45.

46.
// Daten anzeigen
47.
echo "<pre>";
48.
//print_r($accdata);
49.
echo "<center><font color='lime'> Traffic übrig in MB (Gesamt): ".$accdata["premkbleft"]/1000 ."</font></center>";
50.
echo "<center><font color='grey'> TrafficShare übrig in MB: ".$accdata["bodkb"]/1000 ."</font></center>";         
51.
echo "</pre>";
52.
?>
Der API-Auszug:

subroutine=getaccountdetails_v1
Description: Returns key-pair values for the specific account. Warning: The order may change, and we will probably add or remove values in the future.
You should make sure that your program does not stop working if new values appear or existing values disappear.
Parameters: type=col or prem (Collector's account or Premium account.)
login=ID or username
password=password of the login
withrefstring=1 (Optional. If given, the reply also contains refstring=STRING. You need this string to earn money. See FAQ for further information.)
withcookie=1 (Optional. If given, the reply also contains cookie=STRING. You need this string only if you need to set a valid encryped cookie.)
Reply fields: 1:key 2:value
Reply format: string=string or integer\n...
Reply example: TYPE=PREM:
accountid=$accountid (integer)
type=$type (prem or col)
servertime=$time (integer)
addtime=$addtime (integer)
validuntil=$validuntil (integer)
username=$username (string)
directstart=$directstart (integer)
protectfiles=$protectfiles (integer)
rsantihack=$rsantihack (integer)
plustrafficmode=$plustrafficmode (integer)
mirrors=$mirrors (string)
jsconfig=$jsconfig (string)
email=$email (string)
lots=$lots (integer)
fpoints=$fpoints (integer)
ppoints=$ppoints (integer)
curfiles=$curfiles (integer)
curspace=$curspace (integer)
bodkb=$bodkb (integer)
premkbleft=$premkbleft (integer)
ppointrate=$ppointrate (integer in cents)
refstring=$refstring (string, optional. See 'withrefstring' above.)
cookie=$cookie (string. optional. See 'withcookie' above.)

Für mich ist erstmal nur die Info: curfiles=$curfiles (integer) interessant, wobei ein leicht erweiterbarer PHPcode natürlich genial wäre.

Wer kann mir das bestehende Snippet mit dieser Ausgabe erweitern, ich bekomme es scheinbar mit reinem rumbasteln nicht hin.

Viele Grüße

Soidberg
Mitglied: Arano
27.02.2010 um 00:18 Uhr
Hallo Soidberg

Wenn du zwischen Zeile 50 und 51 die folgende Zeile einfügst solltest du bekommen was du möchtest.
01.
echo "<center><font color='grey'> Beschreibung von \"curfiles\": ".$accdata["curfiles"] ."</font></center>";
Wenn ich das Script richtig gelesen habe sollten alle Werte __nach__ "accountid" (und nur wenn dieser existiert / aktiv ist) in dem Array $accdata vorhanden sein und sollten über den Aufruf von $accdata["WERTNAME"] aufrufbar sein.
So solltest du auch weitere Werte selber anzeigen lassen können.

Ein schöne Wochenende
~Arano
Titel: PHP vs. API
Content-ID: 136933
Art des Inhalts: Frage
Ausgedruckt am: 19.09.2019 um 08:16:55 Uhr
URL: https://administrator.de/contentid/136933