Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 5
Seite [1]
Graf Prometheus


Beginner




Beiträge: 9
# Thema - 06.08.2008 um 14:50 Uhr
Hallo zusammen.

Ich habe mir alle Beiträge hier im Forum durchgelesen, die ich unter dem Suchwort "statische Seiten" gefunden habe, bin aber leider dadurch nicht weiter gekommen, deswegen dieser Thread.

Ich will einen PHP Code in eine statische Seite packen, der mir die Informationen zu meinem Clan aus dem AAO Tracker anzeigt. Wie folgt habe ich es probiert:

Code +-
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
1. / 2. / ... 
 [phpcode]
$clanid="44072";

function 
startTag($parser$name$attrs) {
 global 
$stack;

 
$tag=array("name"=>$name,"attrs"=>$attrs);
 
array_push($stack,$tag);
}

function 
cdata($parser$cdata) {
 global 
$stack;

 
$stack[count($stack)-1]['cdata'] .= $cdata;
}

function 
endTag($parser$name) {
 global 
$stack;

 
$stack[count($stack)-2]['children'][] = $stack[count($stack)-1];
 
array_pop($stack);
}

// Parse XML

$stack = array();
$claninfo = array();
$clanstats = array();
$playerstats = array();

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser"startTag""endTag");
xml_set_character_data_handler($xml_parser"cdata");

$xmllink="http://aaotracker.com/livefeed/xml_clanprofile.php?clanid=$clanid";
$data xml_parse($xml_parser,file_get_contents($xmllink));
if(!
$data) die(sprintf("XML error: %s at line %d"xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));

xml_parser_free($xml_parser);


// Get Data

 // Get Clan Profile Data
 
for($i 0$i sizeof($stack[0][children][0][children]); $i++) {
  
$valname=$stack[0][children][0][children][$i][name];
  
$claninfo[$valname]=$stack[0][children][0][children][$i][cdata];
 }

 
// Get Clan Stats Data
 
for($i 0$i sizeof($stack[0][children][1][children]); $i++) {
  
$valname=$stack[0][children][1][children][$i][name];
  
$clanstats[$valname]=$stack[0][children][1][children][$i][cdata];
 }

 
// Get Player Data
 
for($i 0$i sizeof($stack[0][children][2][children]); $i++) {
  for(
$x 0$x sizeof($stack[0][children][2][children][$i][children]); $x++) {
   
$valname=$stack[0][children][2][children][$i][children][$x][name];
   
$value=$stack[0][children][2][children][$i][children][$x][cdata];
   if(
$valname=="PLAYERID"$pid=$value;
   
$playerstats[$pid][$valname]=$value;
  }
 }

// Now we have 3 arrays with all stats and infos
// print_r($claninfo);
// print_r($clanstats);
// print_r($playerstats);

// Display Clan Info
echo "<body bgcolor=696969>";
echo 
"<center><font class=\"title\"><b>AAO Tracker Data</b></font><br><br></center>";
echo 
"<table align=center><tr>";
echo 
"<tr height=40><td colspan=3 align=center><b> Clan Info:</b><br></td></tr>\n";
foreach(
$claninfo as $key => $value) {
if (
$key=="CLANSTATSURL") {
 echo 
"<td align=left>$key:</td> <td width=10> </td> <td align=left><a href=$value>Clan AAO Tracker Stats</a><br></td></tr>\n";
 }
  else {
   echo 
"<td align=left>$key:</td> <td width=10> </td> <td align=left>$value<br></td></tr>\n";
  }
}
echo 
"</table>";

echo 
"<br><br>";

// Display Clan Stats
echo "<table align=center><tr>";
echo 
"<tr height=40><td colspan=3 align=center><b>Clan Data:</b><br></td></tr>\n";
foreach(
$clanstats as $key => $value) {
 echo 
"<td align=left>$key: <td width=10> </td> <td align=left>$value<br></td></tr>\n";
}
echo 
"</table>";

echo 
"<br><br>";

// Display Player Stats
echo "<br><br><b>Player Stats:</b><br>\n";

echo 
"<table border='1' cellpadding='0' cellspacing='1' style='border-collapse: collapse' bordercolor='#111111'
width='100%' id='AutoNumber1'>"
;
echo 
"<tr>";
echo 
"<td width='5%'>Status</td>";
echo 
"<td width='15%'>Player</td>";
echo 
"<td width='5%'>Honor</td>";
//echo "<td width='10%'>Time Played</td>";
//echo "<td width='10%'>Score</td>";
//echo "<td width='10%'>Kills</td>";
//echo "<td width='10%'>Deaths</td>";
echo "<td width='10%'>Fragrate</td>";
echo 
"</tr>";
echo 
"</table>";

foreach(
$playerstats as $key => $value) {
$playername=$playerstats[$key][PLAYERNAME];
$playerhonor=$playerstats[$key][PLAYERHONOR];
$playerurl=$playerstats[$key][PLAYERSTATSURL];
//$playertime=$playerstats[$key][PLAYERTIME];
//$playerscore=$playerstats[$key][PLAYERSCORE];
//$playerkills=$playerstats[$key][PLAYERKILLS];
//$playerdeaths=$playerstats[$key][PLAYERDEATHS];
$playerfragrate= @round($playerstats[$key][PLAYERKILLS]/$playerstats[$key][PLAYERDEATHS], 2);

if(
$playerstats[$key][PLAYERSTATUS]=="1"$statuspic="ponline.gif";
else 
$statuspic="poffline.gif";


echo 
"<table border='1' cellpadding='0' cellspacing='1' style='border-collapse: collapse' bordercolor='#111111'

width='100%' id='AutoNumber1'>"
;
echo 
"<tr>";
echo 
"<td width='5%'><img border=\"0\" src=\"./$statuspic\" width=\"42\"

height=\"16\"></td>"
;
echo 
"<td width='15%'><a target=\"_blank\" href=\"$playerurl\"><font size=\"2\">$playername</font></a></td>";
echo 
"<td width='5%'>$playerhonor</td>";
//echo "<td width='10%'>$playertime</td>";
//echo "<td width='10%'>$playerscore</td>";
//echo "<td width='10%'>$playerkills</td>";
//echo "<td width='10%'>$playerdeaths</td>";
echo "<td width='10%'>$playerfragrate</td>";
echo 
"</tr>";
echo 
"</table>";
echo 
"";
}
[/
phpcode]


Ich habe auch schon den php Tag "<?php" davor gesetzt, oder nur diesen. dann "[ php ]" mit und ohne Tag. Teilweise kriege ich den Code angezeigt, aber meistens nur eine leere Seite, ohne Inhalt. Der Haken bei "PHP Code verwenden" ist drin oder zum Test auch mal wieder raus. Ich habe schon alle erdenklichen Kombinationen durchgespielt, aber keinen Erfolg gehabt.
Packe ich den Code in eine separate Datei und lade sie vom Webserver im Browser, funktioniert es einwandfrei. Laut php info ist allow_url_fopen On.

Hätte jemand eine Idee, woran es liegen könnte?

Gruß
Der Graf
Inaktiv
natas


Try to beat me




Beiträge: 146
# Antwort: 1 - 07.08.2008 um 04:16 Uhr
Da gab es schon immer probleme mit Hatte bisher aber noch keine vernünftige lösng gefunden.

[alten Post ausgrabe^^]http://www.clansphere.net/index/board/thread/where/6546 [/alten Post ausgrabe^^]


Inaktiv
|
Graf Prometheus
Thread-Ersteller


Beginner




Beiträge: 9
# Antwort: 2 - 07.08.2008 um 13:52 Uhr
Hallo Natas.

Es geht mir nicht nur um den konkreten Fall der Tracker Statistik, sondern allgemein um die Sache mit PHP Code in statistischen Seiten. Ich habe da noch ein paar "andere Visionen", die sich auch nicht realisieren lassen, weil PHP in den statischen Seiten nicht funktioniert...

Gruß
Der Graf


Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 3 - 07.08.2008 um 15:23 Uhr
das problem liegt meines erachtens daran, dass alle zeilen umbrüche vor der auswertung des phpcodes entfernt werden bzw bei der auswertung nicht beachtet werden. sobald also ein // am anfang einer zeile die zeile auskommentiert zählt das für den kompletten restlichen code, weil der ganze code nur noch eine zeile ist.

also am besten mal alle ganzzeiligen Kommentare entfernen.


------------------
www.laszlokorte.de

Inaktiv
|
Graf Prometheus
Thread-Ersteller


Beginner




Beiträge: 9
# Antwort: 4 - 07.08.2008 um 20:19 Uhr
Hey Schiri!

Daas war bisher der beste Tipp! Mit dem folgenden

Code +-
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
1. / 2. / ... 
[phpcode]
<?php

function startTag($parser$name$attrs) {
global 
$stack;

$tag=array("name"=>$name,"attrs"=>$attrs);
array_push($stack,$tag);
}

function 
cdata($parser$cdata) {
global 
$stack;

$stack[count($stack)-1]['cdata'] .= $cdata;
}

function 
endTag($parser$name) {
global 
$stack;

$stack[count($stack)-2]['children'][] = $stack[count($stack)-1];
array_pop($stack);
}


$stack = array();
$claninfo = array();
$clanstats = array();
$playerstats = array();

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser"startTag""endTag");
xml_set_character_data_handler($xml_parser"cdata");

$xmllink="http://aaotracker.com/livefeed/xml_clanprofile.php?clanid=44072";
$data xml_parse($xml_parser,file_get_contents($xmllink));
if(!
$data) die(sprintf("XML error: %s at line %d"xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));

xml_parser_free($xml_parser);


for(
$i 0$i sizeof($stack[0][children][0][children]); $i++) {
$valname=$stack[0][children][0][children][$i][name];
$claninfo[$valname]=$stack[0][children][0][children][$i][cdata];
}

for(
$i 0$i sizeof($stack[0][children][1][children]); $i++) {
$valname=$stack[0][children][1][children][$i][name];
$clanstats[$valname]=$stack[0][children][1][children][$i][cdata];
}


for(
$i 0$i sizeof($stack[0][children][2][children]); $i++) {
for(
$x 0$x sizeof($stack[0][children][2][children][$i][children]); $x++) {
$valname=$stack[0][children][2][children][$i][children][$x][name];
$value=$stack[0][children][2][children][$i][children][$x][cdata];
if(
$valname=="PLAYERID"$pid=$value;
$playerstats[$pid][$valname]=$value;
}
}




echo 
"<body bgcolor=696969>";
echo 
"<center><font class=\"title\"><b>AAO Tracker Data</b></font><br><br></center>";
echo 
"<table align=center><tr>";
echo 
"<tr height=40><td colspan=3 align=center><b> Clan Info:</b><br></td></tr>\n";
foreach(
$claninfo as $key => $value) {
if (
$key=="CLANSTATSURL") {
echo 
"<td align=left>$key:</td> <td width=10> </td> <td align=left><a href=$value>Clan AAO Tracker Stats</a><br></td></tr>\n";
}
else {
echo 
"<td align=left>$key:</td> <td width=10> </td> <td align=left>$value<br></td></tr>\n";
}
}
echo 
"</table>";

echo 
"<br><br>";


echo 
"<table align=center><tr>";
echo 
"<tr height=40><td colspan=3 align=center><b>Clan Data:</b><br></td></tr>\n";
foreach(
$clanstats as $key => $value) {
echo 
"<td align=left>$key: <td width=10> </td> <td align=left>$value<br></td></tr>\n";
}
echo 
"</table>";

echo 
"<br><br>";


echo 
"<br><br><b>Player Stats:</b><br>\n";

echo 
"<table border='1' cellpadding='0' cellspacing='1' style='border-collapse: collapse' bordercolor='#111111'
width='100%' id='AutoNumber1'>"
;
echo 
"<tr>";
echo 
"<td width='5%'>Status</td>";
echo 
"<td width='15%'>Player</td>";
echo 
"<td width='5%'>Honor</td>";
echo 
"<td width='10%'>Time Played</td>";
echo 
"<td width='10%'>Score</td>";
echo 
"<td width='10%'>Kills</td>";
echo 
"<td width='10%'>Deaths</td>";
echo 
"<td width='10%'>Fragrate</td>";
echo 
"</tr>";
echo 
"</table>";

foreach(
$playerstats as $key => $value) {
$playername=$playerstats[$key][PLAYERNAME];
$playerhonor=$playerstats[$key][PLAYERHONOR];
$playerurl=$playerstats[$key][PLAYERSTATSURL];
$playertime=$playerstats[$key][PLAYERTIME];
$playerscore=$playerstats[$key][PLAYERSCORE];
$playerkills=$playerstats[$key][PLAYERKILLS];
$playerdeaths=$playerstats[$key][PLAYERDEATHS];
$playerfragrate= @round($playerstats[$key][PLAYERKILLS]/$playerstats[$key][PLAYERDEATHS], 2);

if(
$playerstats[$key][PLAYERSTATUS]=="1"$statuspic="ponline.gif";
else 
$statuspic="poffline.gif";


echo 
"<table border='1' cellpadding='0' cellspacing='1' style='border-collapse: collapse' bordercolor='#111111'

width='100%' id='AutoNumber1'>"
;
echo 
"<tr>";
echo 
"<td width='5%'><img border=\"0\" src=\"./$statuspic\" width=\"42\"

height=\"16\"></td>"
;
echo 
"<td width='15%'><a target=\"_blank\" href=\"$playerurl\"><font size=\"2\">$playername</font></a></td>";
echo 
"<td width='5%'>$playerhonor</td>";
echo 
"<td width='10%'>$playertime</td>";
echo 
"<td width='10%'>$playerscore</td>";
echo 
"<td width='10%'>$playerkills</td>";
echo 
"<td width='10%'>$playerdeaths</td>";
echo 
"<td width='10%'>$playerfragrate</td>";
echo 
"</tr>";
echo 
"</table>";
echo 
"";
}
?>
[/phpcode]


bin ich schon so weit, dass ich die leere Tabelle angezeigt bekomme. Allerdings wird sie nicht mit Daten aus dem AAO Tracker gefüllt, sondern bleibt "weiß". Als eigenständige PHP Datei funktioniert es aber. Hätte da jemand noch eine Idee? Oder habe ich irgendwo einen Kommentar übersehen?

Gruß
Der Graf


Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 5 - 07.08.2008 um 20:24 Uhr
am besten mal n link zur page

/E: hab mal versucht den Weg des Codes durch die Secure und php-eval Funktion nachzustellen:

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
1. / 2. / ... 
<?php 

$zaehler_anmelden 
'eval.txt';

$fp fopen $zaehler_anmelden'r' );

$replace fread $fpfilesize $zaehler_anmelden ) );

fclose $fp );

  
$replace str_replace(array('{','}'),array('{','}'),$replace);
  
$replace htmlentities($replaceENT_QUOTES'UTF-8');
  
$replace preg_replace('=&#(\d+);=si''&#\\1;'$replace);
  
$replace html_entity_decode($replaceENT_QUOTES'UTF-8');
  
  
$replace str_replace('<br />',"\r\n",$replace);
  
$replace html_entity_decode($replaceENT_QUOTES'UTF-8');
  
$replace str_replace(array("\r\n","\n","\r"),'',$replace);
  
  
$replace str_replace(array('<?php','<?','?>'),'',$replace);
  
eval(
$replace);

?>


hab deinen code in die eval.txt geschrieben. e wird eingelesen und genau so behandelt, wie clansphere ihn behandelt, allerdings kommt es dabei zu KEINEM fehler.
Die Debug SEINER Seite (den Link hat er mir per ICQ gegeben) gibt folgene fehler aus:

PHP-Warning: Warning: array_push() [function.array-push]: First argument should be an array in D:\www\plesk\giants-of-war.eu\httpdocs\giants\system\core\abcode.php(351) : eval()'d code on line 1

PHP-Warning: Notice: Undefined offset: 1 in D:\www\plesk\giants-of-war.eu\httpdocs\giants\system\core\abcode.php(351) : eval()'d code on line 1

PHP-Warning: Notice: Undefined index: cdata in D:\www\plesk\giants-of-war.eu\httpdocs\giants\system\core\abcode.php(351) : eval()'d code on line 1


wobei sich der doppelt-gequotete fehler an die 1000 mal wiederholt und sich die blaue zahl jedes mal um 1 oder 2 (unterschiedlich) erhöht.

Vllt kann ja jemand anders weiterhelfen.


------------------
www.laszlokorte.de

Zuletzt editiert von SCHIRI ClanSphere Team am 07.08.2008 um 21:30 Uhr (1x Editiert)
Inaktiv
|
Antworten: 5
Seite [1]


Sie müssen sich registrieren, um zu antworten.