Rechenkraft.info komplett vom Netz getrennt

Eure Kommentare, Anregungen und Wünsche zu dieser Webseite und dem Forum
Nachricht
Autor
Benutzeravatar
Murph
Statistik-Magier
Statistik-Magier
Beiträge: 295
Registriert: 05.02.2002 04:10
Wohnort: Darmstadt

#13 Ungelesener Beitrag von Murph » 09.01.2003 14:52

Wort

dann schau doch mal :

<?php
header("Content-type:image/png");
if ($farbe=="")
{$farbe=4;}
else
{$farbe=$farbe+4;}
$x=0;
$set=0;
$t=" ";
$fp80 = fsockopen("http://www.distributedfolding.org/teampages/team42.txt", 80, &$errno, &$errstr, 1);
if (!$fp80)
{
$fp=@fopen("http://www.distributedfolding.org/teampages/team42.txt", "r");
while(! feof ($fp))
{$r=fgets ($fp,350);
$d[$x]=strtok ($r,$t);
while (is_string ($d[$x]))
{$x++;$d[$x]=strtok($t);}
}
$t=explode(" ",$d[3]);
settype($t[5],integer);
$trang=$t[5];
$anz=($x-16)/6;
for ($i=0;$i<$anz-1;$i++)
{$nr=18+($i*6);
$member=$d[$nr];
$structs=trim($d[$nr+2]);
$rms=$d[$nr+3];
if (strstr ($member,$name))
{$rang=$i+1;
$set=1;
$ich=str_replace(",","",$d[$nr+2]);
$er=str_replace(",","",$d[$nr-4]);
settype($ich,int);settype($er,int);
$ab=$er-$ich;
break;
}
}
if ($set==0)
{$name="Mitglied nicht vorhanden";}
}
else
{$name="Server Down";}
$br=200;
$h=100;
$f="/www/htdocs/v031842/ttf/";
$font=$f."verdana.ttf";$font2=$f."comic.ttf";
$zeile1="Distributed Folding Counter";
$col=array(255,255,255,218,249,178,249,250,170,128,128,128,255,0,0,0,0,0,0,0,255,13,120,2,129,119,3);
$box=array(2,0,$br-1,18,5,4,2,$br-3,16,1,2,22,$br-1,80,5,4,24,$br-3,78,2,2,84,$br-1,$h-1,5,4,86,$br-3,$h-3,2,$br+3,0,$br+19,$h-1,5,$br+5,2,$br+17,$h-3,1);
$p=imagecreate ($br+22,$h);
for ($i=0;$i<=10;$i++)
{$nr=$i*3;$c[$i]=imagecolorallocate($p,$col[$nr],$col[$nr+1],$col[$nr+2]);}
for ($i=0;$i<=8;$i++)
{$nr=$i*5;imagefilledrectangle ($p,$box[$nr],$box[$nr+1],$box[$nr+2],$box[$nr+3],$c[$box[$nr+4]]);}
$b1=imageTTFbbox(8,0,$font,$zeile1);
$b2=imageTTFbbox(10,0,$font,$name);
$tb1=abs($b1[2]);
$tb2=abs($b2[2]);
$x1=(($br-$tb1)/2);
$x2=(($br-$tb2)/2);
$art=array($x1,13,$zeile1,8,50,"Strukturen",100,50,":",110,50,$structs,8,62,"best RMS",100,62,":",110,62,"$rms",8,96,"Team:$d[7]",145,96,"Rang:$trang",8,74,"Teamrang",100,74,":",110,74,"$rang");
for ($i=0;$i<=11;$i++)
{$nr=$i*3;imageTTFtext($p,8,0,$art[$nr],$art[$nr+1],$c[3],$font,$art[$nr+2]);}
imageTTFtext($p,9,90,216,98,$c[3],$font,"Rechenkraft.net");
imageTTFtext($p,10,0,$x2,37,$c[$farbe],$font2,$name);
if ($modus=="rally")
{imageTTFtext($p,8,0,110,74,$c[3],$font,"$rang ($ab)");}
imagecolortransparent($p,$back);
imagepng($p);
?>


ist gesamter Code fürn Counter.
Wichtig fürs erste ist ja erstmal oben die Abfrage, ob Server On:

$fp80 = fsockopen("http://www.distributedfolding.org/teampages/team42.txt", 80, &$errno, &$errstr, 1);
if (!$fp80)
{Server on}
else
{Server Off}

warum klappert das nicht ?

aber kannst auch generell am Code baschteln wend magst 8)

Benutzeravatar
GooRoo
Prozessor-Polier
Prozessor-Polier
Beiträge: 139
Registriert: 07.10.2002 09:16

#14 Ungelesener Beitrag von GooRoo » 09.01.2003 18:12

Code: Alles auswählen

<?php 

	header("Content-type:image/png"); 
	if ($farbe==""){
		$farbe=4;
	} 
	else {
		$farbe=$farbe+4;
	}
	
	$x=0; 
	$set=0; 
	$t=" "; 
	
	
	
	//Prüfen ob die Connection läuft
	$fp80 = fsockopen("http://www.distributedfolding.org/teampages/team42.txt", 80, &$errno, &$errstr, 1); 
	
	
	
	//Wenn ja	1.) http get des txt Files und schreiben in einen array
	//			2.) parsen des arrays
	
	
	if (!$fp80){
		$fp=@fopen("http://www.distributedfolding.org/teampages/team42.txt", "r"); 
		while(! feof ($fp)){
			$r=fgets ($fp,350);
			$d[$x]=strtok ($r,$t);
			while (is_string ($d[$x])){
				$x++;
				$d[$x]=strtok($t);
			}
		}
		$t=explode(" ",$d[3]);
		settype($t[5],integer);
		$trang=$t[5];
		$anz=($x-16)/6;
		for ($i=0; $i<$anz-1; $i++){
			$nr=18+($i*6);
			$member=$d[$nr];
			$structs=trim($d[$nr+2]);
			$rms=$d[$nr+3];
			if (strstr ($member,$name)){
				$rang=$i+1;
				$set=1;
				$ich=str_replace(",","",$d[$nr+2]);
				$er=str_replace(",","",$d[$nr-4]);
				settype($ich,int);
				settype($er,int);
				$ab=$er-$ich;
				break;
			}
		}
		if ($set==0){
			$name="Mitglied nicht vorhanden";
		}
	}
	else{
		$name="Server Down";
	}
	
	
	
	// Erstellen der Counter Grafik
	
	$br=200;
	$h=100;
	$f="/www/htdocs/v031842/ttf/";
	$font=$f."verdana.ttf";
	$font2=$f."comic.ttf"; 
	$zeile1="Distributed Folding Counter"; 
	$col=array(255,255,255,218,249,178,249,250,170,128,128,128,255,0,0,0,0,0,0,0,255,13,120,2,129,119,3); 
	$box=array(2,0,$br-1,18,5,4,2,$br-3,16,1,2,22,$br-1,80,5,4,24,$br-3,78,2,2,84,$br-1,$h-1,5,4,86,$br-3,$h-3,2,$br+3,0,$br+19,$h-1,5,$br+5,2,$br+17,$h-3,1); 
	$p=imagecreate ($br+22,$h); 
	
	for ($i=0;$i<=10;$i++){
		$nr=$i*3;
		$c[$i]=imagecolorallocate($p,$col[$nr],$col[$nr+1],$col[$nr+2]);
	}
	for ($i=0;$i<=8;$i++){
		$nr=$i*5;
		imagefilledrectangle ($p,$box[$nr],$box[$nr+1],$box[$nr+2],$box[$nr+3],$c[$box[$nr+4]]);
	}
	
	$b1=imageTTFbbox(8,0,$font,$zeile1); 
	$b2=imageTTFbbox(10,0,$font,$name); 
	$tb1=abs($b1[2]); 
	$tb2=abs($b2[2]); 
	$x1=(($br-$tb1)/2); 
	$x2=(($br-$tb2)/2); 
	$art=array($x1,13,$zeile1,8,50,"Strukturen",100,50,":",110,50,$structs,8,62,"best RMS",100,62,":",110,62,"$rms",8,96,"Team:$d[7]",145,96,"Rang:$trang",8,74,"Teamrang",100,74,":",110,74,"$rang"); 
	for ($i=0;$i<=11;$i++){
		$nr=$i*3;imageTTFtext($p,8,0,$art[$nr],$art[$nr+1],$c[3],$font,$art[$nr+2]);
	}
	imageTTFtext($p,9,90,216,98,$c[3],$font,"Rechenkraft.net"); 
	imageTTFtext($p,10,0,$x2,37,$c[$farbe],$font2,$name); 
	if ($modus=="rally"){
		imageTTFtext($p,8,0,110,74,$c[3],$font,"$rang ($ab)");
	}
	imagecolortransparent($p,$back); 
	imagepng($p); 
?>
Ein feines Stück Code hast du da :blush: aber etwas trist, hmm?! :wink:

Hab den Code jetzt erstmal gecheckt, ein bischen hübsch gemacht und ein paar Kommentare geschrieben.

Machen wir uns erstmal an die Prüfung ob der Server antwortet:

Code: Alles auswählen

$fp80 = fsockopen("http://www.distributedfolding.org/teampages/team42.txt", 80, &$errno, &$errstr, 1);
ich halte ein timeout von einer Sekunde für etwas SEHR kurz. Ich schlage 5 Sekunden vor, also so:

Code: Alles auswählen

$fp80 = fsockopen("http://www.distributedfolding.org/teampages/team42.txt", 80, &$errno, &$errstr, 5);
Dann fragst du ob $fp80 existiert, wenn nicht, also !$fp80, dann ziehst du dir das Textfile per http get.
Das kann ja nicht klappen, denn du willst das file ja nur ziehen, wenn wenn der fsockopen läuft und nur dann $fp80 existiert, also $fp80.

Das säh dann so aus:

Code: Alles auswählen

if ($fp80){
		$fp=@fopen("http://www.distributedfolding.org/teampages/team42.txt", "r"); 
		while(! feof ($fp)){
			$r=fgets ($fp,350);
			
			blablabla
			
		}
	}
}
else{
	$name="Server Down";
}	
Damit sollte Server on, Server off abfrage laufen.

Testen kannst du das, in dem du eine Anfrage mit nem kurzen timeout auf beispielsweise http://www.business.ru (oder ne andere furchtbar langsame Seite machst, oder nen Server der unten ist) machst. Diese Seite wird es mit Sicherheit nicht schaffen innerhalb einer Sekunde zu antworten, also so:

Code: Alles auswählen

$fp80 = fsockopen("http://www.business.ru", 80, &$errno, &$errstr, 1);
!$fp80 sollte true sein und er sollte bei der Abfrage

Code: Alles auswählen

if ($fp80){
	echo "Server on";
}
else{
	echo "Server lahm oder Off";
}
in den else Zweig springen

Schaue später nochmal über den Code. Vielleicht lässt sich ja das ein oder andere noch optimieren.

Soweit erstmal... hoffe es klappt!

Grüße
GooRoo
Bild

Benutzeravatar
Murph
Statistik-Magier
Statistik-Magier
Beiträge: 295
Registriert: 05.02.2002 04:10
Wohnort: Darmstadt

#15 Ungelesener Beitrag von Murph » 11.01.2003 22:06

Genial Gooroo
ich habe zu danken, werds Online stelllen.

Jo stats werden wohl bald wieder laufen
und für alle Rechenkrafler die bei KLAMM sind
hab ich ein verspätestes Sylver Paket in Peto.

Aber dazu mehr wens steht.

Wird auch Mikel erfreun

Athlonkaempfer

#16 Ungelesener Beitrag von Athlonkaempfer » 12.01.2003 03:54

@Murph

Könntest du die Grafische Statistikseite aktualliesieren.
Ist leider stehen geblieben.

Danke im vorraus!

Benutzeravatar
Murph
Statistik-Magier
Statistik-Magier
Beiträge: 295
Registriert: 05.02.2002 04:10
Wohnort: Darmstadt

#17 Ungelesener Beitrag von Murph » 12.01.2003 04:42

Hallo Athlonkämpfer

scheint noch etwas zu dauern, da ich im moment nicht an die alten Daten meiner Platte rankomme.
Arbeite aber mim Hochdruck daran.

Grüße

Zurück zu „Ankündigungen und Feedback zur Webseite und dem Wiki“