8 Grafiken in PHP zusammenfügen (für Forum-Sig)

Ui *freu*, das sieht doch schon viel besser aus. :)

So, und diese Fehlermeldung(en), erscheint doch nicht jedes 2. Mal, eher unregelmäßig und seltener, aber trotzdem.
Ich hab einfach mal einen Screenshot gemacht:
http://www.mag-luechow.de/fehler.gif
http://www.mag-luechow.de/fehler2.gif
Man kann es auch selber unter http://www.mag-luechow.de/test.php testen.

Ich vermute zwar, dass das ganze nicht direkt am PHP-Script liegt, sondern an diesem Status-Server, weil die Meldungen unterschiedlich sind und sich auf diese Abfrage beziehen.
Doch frage ich mich, warum dann die "billig Variante" von vorhin ohne Probleme funktioniert !?
(http://www.mag-luechow.de/I.php)

Gruß Army Man
 
Das kann aber nicht sein, ich habe extra nochmal alle Links zu den Grafiken einzeln getestet, jeder funktioniert....

Lässt sich da evtl. noch etwas machen ?
Es ist in der Tat ziemlich unschön, wenn in 40% der Fälle die Signatur nicht angezeigt werden würde.

Gruß Army Man
 
Zuletzt bearbeitet:
Also bisher sieht das ganze so aus:

status.php


aber wie gesagt, es funktioniert nicht immer, was ich (nach einigem Probieren) mit diesen "Status-Abfrage-Links" (welche ja erst am Ende ein Bild auswerfen) in Verbindung bringe...
Lässt sich da evtl. noch was machen ?

Gruß Army Man
 
Auch wenn mir bisher niemand weiterhelfen konnte, versuch ich es doch noch einmal mit einem etwas anderen Ansatz:

Wie gesagt, das PHP-Script scheitert (oft) an diesen sehr langen Adressen zur Statusabfrage
HTML:
 http://checker.tdknights.com:1337/icq/109958202/onurl=mitglied.lycos.de/ArmyMan0815/trillian/icq_online.png/offurl=mitglied.lycos.de/ArmyMan0815/trillian/icq_offline.png/unknownurl=mitglied.lycos.de/ArmyMan0815/trillian/icq_un.png
Der Befehl createimagefrompng setzt ja vorraus, dass erstmal ein richtiges png-Bild vorhanden ist, was, bei dieser Abrage, ja zunächst nicht der Fall ist. Diese Adresse leitet einen ja erst am Ende zu der entsprechenden Grafik (z.B.: online.png oder offline.png)
Das müsste doch irgendwie verwertbar sein ?

Desweiteren ist mir die Frage gekommen, ob es nicht sowas wie createimagefromurl (oder ähnlich) gibt. Klar, dieser Befehl existiert nicht, aber sowas ähnliches vielleicht.
Ansonsten hatte ich noch die Idee, dass diese Abfragen "irgendwie" vor den createimagefrompng geschehen müssten, damit dort dann wirklich nur ein png zum "createn" steht.

Sorry für die Ausdrucksweise, aber ich bin im Moment ein wenig damit überfordert, möchte aber so kurz vor dem Ende nicht einfach aufgeben !

Gruß Army Man
 
Du könntest einfach etwas weiter gehn und selbst ein Script programmieren dass die entsprechenden Grafiken als variablen setzt, wenn du im jeweiligen Programm online bist. Du müsstest dann halt schauen wie man rausfindet ob du online bist :)
 
Du könntest die Fehlermeldung mit @ unterdrücken.
Dann müsstest Du prüfen, ob das, was Du gerade geladen hast ein Bild ist
PHP:
if (empty($im1))
Natürlich für jeden Messenger einzeln.
Wenn dem so ist, könntest Du von dem Server, wo Dein php liegt ein "statusUnknown.png" laden und an der Stelle hinkopieren, das sollte immer funktionieren.
Elegant wäre vielleicht auch eine Variante, in der Du mehrmals versuchst das Bild zu laden:
PHP:
$i = 0;
while (empty($im1) && $i<10) {
    $im1 = @imagecreatefrompng("http://mitglied.lycos.de/ArmyMan0815/trillian/l.png");
    $i++;
}
if(empty($im1)) {
    $im1 = imagecreatefrompng("./messengerBiler/icqStatusUnknown.png");
}
//das ganze für die anderen Bilder wiederholen
 
:)

Danke für diesen Post, genau so funktioniert es einwandfrei und ohne Probleme. Die Lösung die Abfrage einfach mehrmals zu machen, lag ja eigentlich auf der Hand, weil es funktioniert ja meist nach dem 2. oder 3. Versuch ;)


So sieht das ganze jetzt aus:
status.php



und das ist der Code dafür: (andere müssen sich ja nicht nochmal den gleich Aufwand machen)
PHP:
<?php
// Grafik links
$im1 = imagecreatefrompng("Grafik links URL");
// ICQ
$i = 0; 
while (empty($im2) && $i<10) { 
	$im2 = @imagecreatefrompng("Abfrage-URL"); 
	$i++; 
} 
if(empty($im2)) { 
	$im2 = imagecreatefrompng("Notfall-Bild URL"); 
} 
// MSN
$i = 0; 
while (empty($im3) && $i<10) { 
	$im3 = @imagecreatefrompng("Abfrage-URL"); 
	$i++; 
} 
if(empty($im3)) { 
	$im3 = imagecreatefrompng("Notfall-Bild URL"); 
} 
// AIM
$i = 0; 
while (empty($im4) && $i<10) { 
	$im4 = @imagecreatefrompng("Abfrage-URL"); 
	$i++; 
} 
if(empty($im4)) { 
	$im4 = imagecreatefrompng("Notfall-Bild URL"); 
} 
// YAHOO
$i = 0; 
while (empty($im5) && $i<10) { 
	$im5 = @imagecreatefrompng("Abfrage-URL"); 
	$i++; 
} 
if(empty($im5)) { 
	$im5 = imagecreatefrompng("Notfall-Bild URL"); 
} 
// JABBER
$i = 0; 
while (empty($im6) && $i<10) { 
	$im6 = @imagecreatefrompng("Abfrage-URL"); 
	$i++; 
} 
if(empty($im6)) { 
	$im6 = imagecreatefrompng("Notfall-Bild URL"); 
} 
// Grafik rechts
$im7 = imagecreatefrompng("Grafik rechts URL");
// leeres Bild
$im8 = imagecreatetruecolor (358, 50);
 
imagecopy($im8, $im1, 0, 0, 0, 0, imagesx($im1), imagesy($im1));
imagecopy($im8, $im2, 4, 0, 0, 0, imagesx($im2), imagesy($im2));
imagecopy($im8, $im3, 46, 0, 0, 0, imagesx($im3), imagesy($im3)); 
imagecopy($im8, $im4, 88, 0, 0, 0, imagesx($im4), imagesy($im4)); 
imagecopy($im8, $im5, 130, 0, 0, 0, imagesx($im5), imagesy($im5)); 
imagecopy($im8, $im6, 172, 0, 0, 0, imagesx($im6), imagesy($im6)); 
imagecopy($im8, $im7, 214, 0, 0, 0, imagesx($im7), imagesy($im7));
 
header ("Content-type: image/png"); 
imagepng ($im8); 
?>

So, jetzt kann ich mir auch gedanken um bessere Grafiken machen.
Danke nochmal an alle.


Gruß Army Man
 
Zurück