Hallo,
ich stehe mal wieder vor für mich unlösbarem PHP-Problem.
Ich habe auf meiner Homepage ein "Wetterwidget" gebastelt, das ihr im angehängten Bild sehen könnt.
Zur Erklärung:
Mit PHP und "imagecreate" / "imagecopy" hatte ich dieses Widget zusammengebastelt, das aus einem schwarzen rechteckigen Grundbild und insgesamt 4 übereinanderliegenden Einzelbilder besteht (blaue Überschrift, Messwerte, Wettersymbol und Luftdrucktrendsymbol).
Das alles funktionierte nun über 1 Jahr und jetzt auf einmal wird das Widget nur noch als schwarzes Rechteck angezeigt, d.h. es wird nur noch das schwarze Grundbild angezeigt, in das ich mit dem PHP-Befehl "imagecopy" die 4 Einzelbilder einfüge.
Augenscheinlich funktioniert da irgendwas mit "imagecopy" nicht mehr.
UPDATE:
Komisch, jetzt plötzlich ca. 1h nach dem ich das Problem festgestellt hatte, funktioniert das Widget wieder, lag wohl irgendwie an meinem Webspace.
Vielen Dank für eure Hilfe
Gruß Frank
Hallo
ich sehe bei dir auch nur das schwarze Rechteck.
Mist, jetzt funktioniert es wieder nicht mehr, an was könnte denn das liegen?
anbei mal mein PHP-Code
<?php// Header setztenheader('Content-type: image/png'); // Bilder laden$imgzeichen = imagecreatefrompng("http://wetterstation-badenweiler.de/hw/hw.php"); $imgzeichen1 = imagecreatefrompng("http://wetterstation-badenweiler.de/hw/banner1.png"); $imgzeichen2 = imagecreatefrompng("http://wetterstation-badenweiler.de/metar/conditions.php");$imgzeichen3 = imagecreatefrompng("http://wetterstation-badenweiler.de/metar/conditions-trend.php");// schwarzes Grund-Bild erzeugen$img = imagecreatetruecolor(184, 104); // Bilder in Grundbild einfügenimagecopy($img, $imgzeichen, 2, 24, 0, 0, 180, 78); imagecopy($img, $imgzeichen1, 2, 2, 0, 0, 180, 20); imagecopy($img, $imgzeichen2, 100, 24, 0, 0, 80, 62);imagecopy($img, $imgzeichen3, 76, 49, 0, 0, 10, 10);// Bild anzeigenimagepng($img); // Speicher freigebenimagedestroy($img);?>
Hier noch der Link zum Ordner in dem das Widget liegt:
www.wetterstation-badenweiler.de/hw/hw1.php
Gruß Frank
ich schau mir das mal an..
Beiträge zusammengeführt, weil der Autor sich selbst geantwortet hat statt seinen letzten Beitrag zu ändern: 12.08.2017, 18:51:16
Zitat von: charly am 12.08.2017, 18:43:40
ich schau mir das mal an..
kanste mir mal die dazugehörigen dateien mal geben..
cu. charly
welche Dateien meinst du?
Die 4 Bilddateien die ich in das Grundbild mittels imagecopy einbaue?
Diese kannst du direkt mit dem entsprechenden Link aus dem Code aufrufen.
Ups, jetzt geht es wieder, Mensch ist das komisch, gugst du:
www.wetterstation-badenweiler.de/hw/hw1.php
Ich glaube ich muss den Fehler augenscheinlich bei meinem Webspace suchen, denn wenn es nicht geht, ist die Ladezeit auch extrem lang und wenn es geht, ist diese kurz, d.h. irgendwas muss da wohl beim Webspace schief laufen, vermute ich zumindest.
Gruß Frank
Zitat von: Wetterfrosch1971 am 12.08.2017, 19:00:39
welche Dateien meinst du?
Die 4 Bilddateien die ich in das Grundbild mittels imagecopy einbaue?
Diese kannst du direkt mit dem entsprechenden Link aus dem Code aufrufen.
Ups, jetzt geht es wieder, Mensch ist das komisch, gugst du:
www.wetterstation-badenweiler.de/hw/hw1.php
Gruß Frank
Hmm komisch , wer weis was da los ist
Heute morgen war ja auch ein "Serverausfall" bei Awekas, doch wie dort im Forum zu erfahren war, lag das Problem wohl auch beim Webspaceanbieter (word4you).
Ich bin zwar nicht bei diesem Webspaceanbieter, doch vielleicht liegt hier ja irgend ein "globaleres" Problem zu Grunde.
Ich habe meinen Webspaceanbieter mal angeschrieben, mal sehen was für eine Antwort ich bekomme.
So lange heißt es wohl abwarten und Tee trinken, denn augenscheinlich liegt mein Problem ja nicht an meinem Script, sondern eher wohl auf Seiten des Webspaces.
Danke trotzdem für deine Bemühungen.
Gruß frank
Hallo Frank,
ich kenne nicht deinen ganzen PHP-Code. Was ich hier aber sehe lässt sich an vielen Stellen optimieren. Das vermindert die Last bei deinem Webspaceprovider und erhöht die Stabilität deines Internetauftritts.
Ganz konkret könntest du dynamische Ressourcen, wie dein Wetterwidget, auch für kurze Zeit zwischenspeichern. Das verändert sich ja nicht mit jedem Aufruf. Lokale Ressourcen musst du nicht immer mit voller URL holen. Das Image "banner1.png" lässt sich auch als Datei einbinden...
Mach dich mal schlau in Richtung Code-Optimierung, Refactoring. Du wirst erstaunt sein, was du hier noch an Geschwindigkeit und Stabilität erreichen kannst, auch wenn sich die Funktionalität nicht ändert.
Gruß
Falk
Viele Grüße
Michael
Hallo Falk,
leider bin ich programmiertechnisch eine Null, bin froh das ich das Widget so irgendwie zusammengebastelt bekommen habe.
Du hast jedoch recht, ändert tuen sich nur die Messwerte (sind die Messwerte aus meiner Realtime.txt, d.h. alle Minute werden neue Messwerte übermittelt) sowie das Wetterzustandssymbol (Änderung 1x pro Stunde).
Kannst du mir einen groben Tipp geben wie ich z.B. das Banner als Datei einbinden kann?
Danke.
Gruß Frank
Zitat von: Wetterfrosch1971 am 14.08.2017, 12:13:50
leider bin ich programmiertechnisch eine Null, bin froh das ich das Widget so irgendwie zusammengebastelt bekommen habe.
Damit bist du schon einmal keine Null ;)
Zitat
Kannst du mir einen groben Tipp geben wie ich z.B. das Banner als Datei einbinden kann?
http://us1.php.net/manual/de/function.imagecreatefrompng.php
Kurz mein Caching-Vorschlag als Pseudocode
$zeit = aktuelle Zeit - 1 Minute
$widgetDatei = Widget-Datei (Zwischenspeicher)
Falls $widgetDatei nicht existiert oder Modifikationsdatum($widgetDatei ) < $zeit, dann
$widget= Erzeuge neues Widget
Schreibe($widget, $widgetDatei)
sonst
Lese($widget, $widgetDatei)
Übergebe $widget
Hallo Falk,
danke für die Infos, doch in diese cache-Sache muss ich mich erst einlesen, da habe ich bisher echt noch absolut keine Ahnung.
Bezüglich der Bannereinbindung, stehe ich grad auch etwas auf dem Schlauch, komme mit deiner verlinkten PHP-Erklärung diesbezüglich (noch) nicht ganz klar, könnte ich das eventuell irgendwie so lösen:
$bild = '<img src="banner1.png">';
$imgzeichen = imagecreatefrompng($bild);
Doch so habe ich das gerade ausprobiert, das funktioniert nicht.
Gruß Frank