PHP-Schnittstelle

Danke @Xmasman
smile.gif

Habe eine noch andere Funktion gefunden die es etwas erleichtert.


Um mal das Script von Oben weiter ausgebaut anzubieten, für die jenigen die sich mit php rumschlagen stell ich das mal rein
wink.gif


Code:
<?php

$url = 'http://black-legion.info/guild_php.php?server=PVP_Server&guild=BLACK_LEGION';

$file = file_get_contents('http://black-legion.info/guild_php.php?server=PVP_Server&guild=BLACK_LEGION');
if(!$file) die("Fehler beim Öffnen von $url");

$guild = unserialize(gzuncompress($file));
// print_r($guild);

print "<table border=\"1\">";
foreach($guild['character'] as $c) 
	{
  print "<tr>";
  print "<td>".$c['name']."</td>";
  print "<td>".$c['level']."</td>";
  print "<td>".$c['race']."</td>";
  print "<td>".$c['class']."</td>";
  print "<td>".$c['sex']."</td>";

  print "<td>".$c['guild_title']."(".$c['guild_rank'].")</td>";
  $s = $c['skills'];

  $berufe = $s['Berufe'];
  echo "<td>";
// berufe
  if (count($berufe)>0)
 	 {
 	 $berufname = array_keys($berufe);
 	 for($x=0;$x<count($berufe);$x++)
    {
    echo $berufname[$x];
    echo " ( ".$berufe[$berufname[$x]]['value']."/".$berufe[$berufname[$x]]['max']." ) ";
    }
 	 }
  echo "&nbsp;</b></td>";

  
  $fertigkeiten = $s['Sekundäre Fertigkeiten'];
  echo "<td>";
// fertigkeiten
  if (count($fertigkeiten)>0)
 	 {
 	 $fertigkeitenname = array_keys($fertigkeiten);
 	 for($x=0;$x<count($fertigkeiten);$x++)
    {
    echo $fertigkeitenname[$x];
    echo " ( ".$fertigkeiten[$fertigkeitenname[$x]]['value']."/".$fertigkeiten[$fertigkeitenname[$x]]['max']." ) ";
    }
 	 }
  echo "&nbsp;</b></td>";
  echo "</td>";

  print "</tr>\n";
	}
echo "</table>";
?>

Wie das ganze dann aussieht seht ihr hier:
»http://www.dloh.de/chartest.php«

HF
 
Also ich find das Tool ja genial...
top.gif


nur kann ich mit der Gilden Version von den Daten nix anfangen für unsere Gildenpage...

was cool wäre wenn man die Daten von nem einzelnen Char per CharID abrufen könnte
wink.gif


gibts dafür schon nen Termin ? *bestimmt schon der 100000 ist der danach fragt*
happy.gif




Gruß
Raine
Der Dunkle Stern
»Der Sternenbund«
 
Storm|Deni schrieb:
Ich habe das Problem, dass ich nicht auf das Paket zugreifen kann:
Fehler beim Öffnen von http://black-legion.info/guild_php.php?ser...ld=BLACK_LEGION

Liegt das an der Config von meinem PHP oder gibts da ne Problemlösung für?

[post="78664"][/post]​
Ich fürchte das liegt an deiner Config. Manche Provider erlauben PHP keinen HTTP-Zugriff. Leider kann ich dir dabei nicht weiterhelfen, da müsstest du dich an deinen Provider wenden.
 
Moin Moin
smile.gif


Also ich habe folgenden Code verwendet der hier bereits im Forum aufgeführt wurde:

Code:
<?
// Anfang der Ausgabe
// include ("inc_head_table.html"); 

// Hier Server eintragen auf dem gespielt wird (für Leerzeichen = %20)
$server = "Madmortem";
// Hier der Gildenname
$gildenname = "Nordsturm";
// Die nächsten Zeilen sind wie im Forum erwähnt um das Array zu bekommen
$url = 'http://black-legion.info/guild_php.php?server='.$server.'&guild='.$gildenname;
$file = file_get_contents($url);
if(!$file) die("Fehler beim Öffnen von $url");
$guild = unserialize(gzuncompress($file));
//Hier Schreibe ich die chars schon mal in ein eigenes Array
$chars = $guild['character'];

//Wenn kein Charakter ausgewählt wurde ist die variable $charname nicht gesetzt und alle Chars werden ausgegeben
if(!isset($charname)) { 
if(!isset($order)) $order = "level"; 
else $order = $order.",level"; ?>
<table width="100%" align="center" cellpadding="5" border="1" bordercolor="#999999" style="border-collapse:collapse;" bgcolor="#333333">
<tr><th>Rank</th>
 <th><a href="index.php?unterseite=Ladder&order=charname">Name</a></th>
 <th><a href="index.php?unterseite=Ladder&order=server">Server</a></th>
 <th><a href="index.php?unterseite=Ladder&order=rasse">Rasse</a></th>
 <th><a href="index.php?unterseite=Ladder&order=klasse">Klasse</a></th>
 <th><a href="index.php?unterseite=Ladder&order=id_user">Spieler</a></th>
 <th width="30"><a href="index.php?unterseite=Ladder">Level</a></th></tr><? 
 //Die Charaktergrundewerte sind in der Datenbank hinterlegt im table b8_chars und die User dazu im table b8_user
 $query="SELECT * FROM b8_chars chars LEFT JOIN b8_user user ON chars.id_user = user.id ORDER BY $order DESC"; 
 //Funktion gibt alle Chars aus
 Charausgabe_Ladder($query, $guild); ?>
</table><?
} else {
//Hier nun wurde ein bestimmter Charakter ausgewählt und aus dem Array vom BLASC System wird die Position im Array rausgesucht
$idBLASC = getBLASCid($chars,$charname); 
//Nun folgt die Ausgabe aller Informationen ?>
<table align="center" cellpadding="5" cellspacing="0" bgcolor="#222222" border="1" bordercolor="#FFFFFF">
 <tr><th colspan="6"><h2><? echo $charname ?></h2></th></tr>
 
 <tr><td>Geschlecht: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['sex'] ?></td>
  <td>Gildenstatus: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['guild_title'] ?></td>
  <td>Aktualsiert: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['lastupdate'] ?></td></tr>
 
 <tr><td>Level: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['level'] ?></td>
  <td>Rasse: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['race'] ?></td>
  <td>Klasse: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['class'] ?></td></tr>

 <tr><td colspan="6"><b>Berufe</b></td></tr><? 
 $berufe = getSkills($chars[$idBLASC]['skills'],"berufe"); 
 for($i=0; $i<count($berufe); $i++) { ?>
  <tr><td><? echo $berufe[$i]['name']; ?></td>
   <td colspan="2"><? echo $berufe[$i]['value']." / ".$berufe[$i]['max']; ?></td>
   <td colspan="3"> </td></tr><?
 } ?>
 
 <tr><td colspan="6"><b>Sekundäre Fertigkeiten</b></td></tr><? 
 $sekund = getSkills($chars[$idBLASC]['skills'],"sekundäre fertigkeiten"); 
 for($i=0; $i<count($sekund); $i++) { ?>
  <tr><td><? echo $sekund[$i]['name']; ?></td>
   <td colspan="2"><? echo $sekund[$i]['value']." / ".$sekund[$i]['max']; ?></td>
   <td colspan="3"> </td></tr><?
 } ?>
</table><?
} 

//include ("inc_foot_table.html"); 
// Ende der Ausgabe

//Funktion gibt entweder Berufe oder Fertigkeiten zurück
function getSkills($skills, $wahl) {
if($wahl == "berufe") {
 $array = getSkillValues($skills['Berufe']);
} else {
 $array = getSkillValues($skills['Sekundäre Fertigkeiten']);
}
return $array;
}

//Zu jeweils den Berufen oder Fertigkeiten werden Namen rausgesucht und mit den Werten zusammen im Array zurückgegeben
function getSkillValues($skills) {
//Berufe
if(isset($skills['Alchimie'])) 
 $name[] = "Alchimie";
if(isset($skills['Bergbau'])) 
 $name[] = "Bergbau";
if(isset($skills['Schmiedekunst'])) 
 $name[] = "Schmiedekunst";
if(isset($skills['Kräuterkunde'])) 
 $name[] = "Kräuterkunde";
if(isset($skills['Lederverarbeitung'])) 
 $name[] = "Lederverarbeitung";
if(isset($skills['Kürschnerei'])) 
 $name[] = "Kürschnerei";
if(isset($skills['Ingenieurskunst'])) 
 $name[] = "Ingenieurskunst";
if(isset($skills['Verzauberkunst'])) 
 $name[] = "Verzauberkunst";

// Sekundäre Fertigkeiten
if(isset($skills['Kochkunst'])) 
 $name[] = "Kochkunst";
if(isset($skills['Angeln'])) 
 $name[] = "Angeln";
if(isset($skills['Erste Hilfe'])) 
 $name[] = "Erste Hilfe";
if(isset($skills['Untoten-Reitkunst'])) 
 $name[] = "Untoten-Reitkunst";
if(isset($skills['Kodoreiten'])) 
 $name[] = "Kodoreiten";
if(isset($skills['Wolfreiten'])) 
 $name[] = "Wolfreiten";

if(isset($name[0])) {
 $skill[0]['name'] = $name[0];
 $skill[0]['value'] = $skills[$name[0]]['value'];
 $skill[0]['max'] = $skills[$name[0]]['max'];
}
if(isset($name[1])) {
 $skill[1]['name'] = $name[1];
 $skill[1]['value'] = $skills[$name[1]]['value'];
 $skill[1]['max'] = $skills[$name[1]]['max'];
}
return $skill;
}

//BLASCid ist die Postition im Array $chars
function getBLASCid($chars,$charname) {
for($i=0; $i<count($chars); $i++) {
 if($chars[$i]['name'] == $charname)
  $id = $i;
} 
return $id;
}

//Da nicht alle Chars von uns im System sind untersucht die Funktion ob ein Char enthalten ist
function charExistsInBLASC($chars,$charname) {
for($i=0; $i<count($chars); $i++) {
 if($chars[$i]['name'] == $charname)
  $exists = true;
} 
return $exists;
}

//Die Chars die nicht im BLASC-System sind deren level wird von den Benutzern so gesetzt bei den anderen wird der BLASC Wert genommen
// falls dieser höher ist, denn dann ist dieser aktueller
function getBLASCLevel($chars, $charname, $level) {
for($i=0; $i<count($chars); $i++) {
 if(($chars[$i]['name'] == $charname) && ($chars[$i]['level'] > $level))
  $level = $chars[$i]['level'];
} 
return $level;
}

//Funktion gibt anhand der Anfrage aus der DB alle Charaktere aus
function Charausgabe_Ladder($query, $guild) {
$ergebnis = Querry_to_Array($query);  

//Für jeden Charakter wird einmal die Schleife durchlaufen
for($i=0; $i<count($ergebnis); $i++) {
 //Wenn die Chars zur Allianz gehören wird die Zeile gelb sonst rot 
 if(($ergebnis[$i]['rasse'] == "Elf") || ($ergebnis[$i]['rasse'] == "Mensch") ||($ergebnis[$i]['rasse'] == "Zwerg") || ($ergebnis[$i]['rasse'] == "Gnom"))
  $color = "yellow";
 else
  $color = "red"; ?>
 <tr><th width="5%"><font color="#FFFFFF"><? echo $i+1 ?></font></th>
   <th><font color="<? echo $color ?>"><? 
    //Falls ein BLASC eintrag existiert kann der Link für die Details angeklickt werden 
    if(charExistsInBLASC($guild['character'],$ergebnis[$i]['charname'])) { ?>
     <a href="index.php?unterseite=Ladder&charname=<? echo $ergebnis[$i]['charname']; ?>"><? echo $ergebnis[$i]['charname']; ?></a><? 
    } else { echo $ergebnis[$i]['charname']; } ?></font></th>
   <th><font color="<? echo $color ?>"><? echo $ergebnis[$i]['server'] ?></font></th>    
   <th><font color="<? echo $color ?>"><? echo $ergebnis[$i]['rasse'] ?></font></th>
   <th><font color="<? echo $color ?>"><? echo $ergebnis[$i]['klasse'] ?></font></th>     
   <th><font color="<? echo $color ?>"><? echo Id_to_User($ergebnis[$i]['id_user']) ?></font></th>
   <th><font color="<? echo $color ?>"><? echo getBLASCLevel($chars,$ergebnis[$i]['charname'], $ergebnis[$i]['level']); ?></font></th></tr><?
}
if (count($ergebnis) == '0') { ?>
 <tr><th colspan="5"> Keine Chars vorhanden </th></tr> <? 
} 
} 

/*
Struktur des Arrays aus dem BLASC System

server -> String
guild_name -> String
faction -> String
numchars -> int 
character -> Array
name -> String
level -> int
race -> String
class -> String
sex -> char
guild_rank -> int (0 = gildenmeister, 1 = offizier, 2 = veteran, 3 = mitglied, 4 = initiand)
guild_title -> String
lastupdate -> sqldate
skills -> Array
 Berufe -> Array
  [{beruf}] -> Array
   value -> int
   max -> int 
 Sekundäre Fertigkeiten -> Array
  [{Fertigkeit}] -> Array
   value -> int
   max -> int 

*/
?>


Wenn ich das nun auf meinem Server starte erhalte ich folgende Fehlermeldung:

Code:
Fatal error: Call to undefined function: querry_to_array() in /homepages/2/d39066026/htdocs/test.php on line 157

Liegt das an meinem Server oder ist das Script noch nicht zu 100% fertig ?

Danke im Voraus

Galedon
 
Zuletzt bearbeitet von einem Moderator:
Die gleiche Meldung bekomme ich auch, habe es gestern auch so auf den Server geladen, immer diese Meldung.


Liebe Grüße
 
Dort scheint der Autor die eigene Datenbank abzufragen. Das Skript ist also schon recht stark an die speziell Website angepasst und wohl eher weniger zum allgemeinen Gebrauch geeignet.
 
Crowley schrieb:
Dort scheint der Autor die eigene Datenbank abzufragen. Das Skript ist also schon recht stark an die speziell Website angepasst und wohl eher weniger zum allgemeinen Gebrauch geeignet.
[post="81023"][/post]​


jiup
smile.gif
also nehmt meins für ne basic ausgabe *g*
 
Hi xmasman,

habe Dein Skript incl. mysql_function.php eingebaut, jedoch sagt er immer keine Chars vorhanden, obwohl diese in der Statistik stehen ?!

http://gilde.elektrowarenladen.de/guildladder.php

Deine mysql_function.php is als include eingebaut ?! und die Tables sind auch vorhanden
unsure.gif


HELP PLZ
clap.gif

LG
Melworm
 
Zuletzt bearbeitet von einem Moderator:
Also um dem ganzen ein bisschen auf die Sprünge zu helfen habe ich wie evtl. der ein oder andere gesehen hat in meinem forum einen Teil des Scripts veröffentlicht.
Generell werde ich nach dem 8.3 versuchen einfach die ganze Seite offenzulegen ( http://b8clan.xmasman.de ) aber ohne Grafiken.
Bitte habt noch ein wenig Geduld habe doch mehr zu tun als vermutet und man will ja noch fleissig WoW zocken.

P.S.: Ich weiss das im Script noch kleine Fehler enthalten sind auch hier habt bitte noch was Geduld, ich habe diese im eigenen Code gefixed und werde bald weiteren Sachen dazu schreiben.

Hier der Thread mit dem SCript nochmal : http://forum.xmasman.de/thread.php?id=1120
 
ist es vielleicht auch möglich die daten in eine sql-tabelle einzulesen?? und wenn ja, wie geht das? ich habe von xml null plan :-\

vielleicht könnte man das auch so machen, dass die daten nur 2x pro std eingelesen werden oder sowas...
 
danke an Scepsis
wink.gif


habs mal bisl umgebaut *g

und für unsere gilde angepasst:
http://www.gobe-goch.de/member.php

ist nochn test, werds später nochma grafisch überarbeiten ^^

einzigste was mich dran stört is der letzte zeilenumbruch bei den berufen, dass der den nach dem ersten beruf nochmal macht, , aber glaube kaum dass man des noch hinbiegen kann, hoffnung hab ich aber noch ^^

Also hier mal der code, und da ich html includiert in php hasse, deswegen immer html und php einzeln gemacht, width=\"10\" is einfahc beschissen so mit hand zu coden, da is mir lieber width="10" ^^

<html>
<title>Die Schwarze Hand - Member</title>
<body text="#FFFFFF" bgcolor="#000000" leftmargin="0" rightmargin="10" topmargin="0" bottommargin="0">
<?
$url = 'http://black-legion.info/guild_php.php?server=Kel´Thuzad&guild=Die%20Schwarze%20Hand';

$file = file_get_contents('http://black-legion.info/guild_php.php?server=Kel´Thuzad&guild=Die%20Schwarze%20Hand');
if(!$file) die("Fehler beim Öffnen von $url");

$guild = unserialize(gzuncompress($file));
// print_r($guild);
?>
<table border="1" width="100%" cellpadding="0" cellspacing="0" valign="middle" bordercolo="#CCCCCC">
<tr>
<td>Name</td>
<td>Level</td>
<td>Rasse</td>
<td>Klasse</td>
<td>Geschlecht</td>
<td>Rang</td>
<td>Berufe</td>
<td>Sek. Beruf(e)</td>
</tr>
<?
foreach($guild['character'] as $c)
{
print "<tr>";
print "<td>".$c['name']."</td>";
print "<td>".$c['level']."</td>";
print "<td>".$c['race']."</td>";
print "<td>".$c['class']."</td>";
print "<td>".$c['sex']."</td>";

print "<td>".$c['guild_title']."(".$c['guild_rank'].")</td>";
$s = $c['skills'];

$berufe = $s['Berufe'];
echo "<td>";
// berufe
if (count($berufe)>0)
{
$berufname = array_keys($berufe);
for($x=0;$x<count($berufe);$x++)
{
?>
<table cellspacing="0" border="0" width="100%" cellpadding="0">
<tr>
<td width="30%">
<?
echo $berufname[$x];
?>
</Td>
<td width="70%">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td background="balken.gif" width="<?=$berufe[$berufname[$x]]['value'] ?>" height="9">
<?
echo " ( ".$berufe[$berufname[$x]]['value']."/".$berufe[$berufname[$x]]['max']." ) "; ?>
</td>
</tr>
</table>
</td>
</tr>
</table>
<?
}
}
echo "&nbsp;</b></td>";


$fertigkeiten = $s['Sekundäre Fertigkeiten'];
echo "<td valign=\"middle\">";
// fertigkeiten
if (count($fertigkeiten)>0)
{
$fertigkeitenname = array_keys($fertigkeiten);
for($x=0;$x<count($fertigkeiten);$x++)
{
?>
<table cellspacing="0" border="0" width="100%" cellpadding="0">
<tr>
<td width="30%">
<?
echo $fertigkeitenname[$x];
?>
</Td>
<td width="70%">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td background="balken.gif" width="<?=$fertigkeiten[$fertigkeitenname[$x]]['value'] ?>" height="9">
<?
echo " ( ".$fertigkeiten[$fertigkeitenname[$x]]['value']."/".$fertigkeiten[$fertigkeitenname[$x]]['max']." ) "; ?>
</td>
</tr>
</table>
</td>
</tr>
</table>
<? }
}
echo "&nbsp;</b></td>";
echo "</td>";

print "</tr>\n";
}
echo "</table>";
?>
</body>
</html>

der dazugehörige balken.gif (sons wird da halt nix angezeigt)^^:
http://www.gobe-goch.de/balken.gif

könnt ihr ja nochma umarbeiten wenn ihr wollt
wink.gif


lieber wär mir natürlich noch die details jedes chars, dafür brauch ich aber, so wies aussieht, ne db (hatten meine vorschreibenden ja schon festgestellt und gemacht), leider hat mein webserver keine db, und lokal will mein apache nicht laufen *grmbl ^^

naja wens wer gebrauchen kann, hf with it
wink.gif


p.s. ihr solltet dann noch euren gildennamen und server ggf ändern
biggrin.gif
 
Zuletzt bearbeitet von einem Moderator:
hmm also ich würd auch gern ne Memberseite machen wo Rasse, Klasse, Level, Beruf, Letztes Update usw. drauf ist und bei Klick auf den namen eben mehr Details - dazu dann noch sachen wie ICQ, Realname, MSN - was eben so in ner memberliste drin ist
smile.gif


Nur sind meine PHP Kenntnisse leider sehr dürftig (noch sehr untertrieben). Beispiel für ne memberseite gibts bei vwar.de aber eben für WoW angepaßt. Wär doch ne tolle Sache - müßte sich nur noch jemand finden der das machen will.
search.gif


Dann müßte man dort nur noch Gildenname angeben und hochladen (evtl. noch paar Einstellungen was angezeigt wird usw. in nem Admin-Bereich) und schon hat jede Gilde ne tolle Mitgliederseite.
yahoo.gif
 
hallo!

ich hab mal versucht, den code von xmasman für meine gilde zu übernehmen (verdorrte Rose auf kargath). ich möchte gleich vorausschicken, dass ich keine ahnung von php hab, aber seht doch selbst:

http://vr.gowow.de/members.php

alles, was ich getan hab, ist den server und den gildennamen zu editieren. aber aus der fehlermeldung werd ich nicht schlau. (das mit dem inc_head_table.html ist mir schon klar, weil es die datei ja bei mir nicht gibt)....
 
shadowboss schrieb:
hallo!

ich hab mal versucht, den code von xmasman für meine gilde zu übernehmen (verdorrte Rose auf kargath). ich möchte gleich vorausschicken, dass ich keine ahnung von php hab, aber seht doch selbst:

http://vr.gowow.de/members.php

alles, was ich getan hab, ist den server und den gildennamen zu editieren. aber aus der fehlermeldung werd ich nicht schlau. (das mit dem inc_head_table.html ist mir schon klar, weil es die datei ja bei mir nicht gibt)....
[post="82968"][/post]​

xmasman hat 1. datenbankanbindung, 2. html templates
(oder?)

schlechte vorlage gewählt
scary.gif
 
oh!

hat vielleicht jemand eine vorlage für mich, die möglichst leicht verständlich ist? die seite von xmasman sieht einfach zu geil aus....
 
Hallo, ich habe ein Problem, da ich nicht ganz helle bin was php angeht würde ich gern eine hilfe stellung bekommen oder gar jemand der mir das ding coded so das ich es nur noch auf dem server packen muss und es verlinken muss.

Ich nutze das Forum wbb2.3, meine Gilde heisst Fearless Knights und wir spielen auf dem Server Lothar auf der Seite der allianz.

Würde mich freuen wenn sich da eine für bereit erklärt und mir diesbezüglich helfen könnte danke schon mal im voraus.
 
Borduano schrieb:
Hallo, ich habe ein Problem, da ich nicht ganz helle bin was php angeht

Dann lass mal php weg und scrolle ganz dezent nach oben. Die restlichen Fragen die aufkommen könnten hast du dir schon selbst beantwortet. Meine Gilde heist ... , wir spielen auf dem Server ...
smile.gif
 
Zurück