Charts auf Seite erstellen - ohne PlugIn

  • Hallo zusammen,

    zunächst: sollte ich im falschen Forum gelandet sein, bitte verschieben. Danke.

    Ich bekomme von Sensoren Messdaten in eine extra DB geschrieben, die ich in einer Unterseite über das wpdb-Objekt auch als Tabelle dargestellt bekomme.

    Dafür habe ich für eine Unterseite folgendes Template erstellt

    und das funktioniert auch ganz wunderbar alles, bis auf fast ganz unten, wo ich draw_data.php einbinde.

    Das Einbinden an sich geht und die Datei soll einen Chart zeichnen (hier zur Vereinfachung nur als Demo)

    was sie aber nicht tut. Es kommen viele kryptische ASCII-Zeichen.

    Rufe ich die Datei aber "außerhalb" von WP auf, kommt die Grafik.
    (Ich habe ein eigenes NAS und kann da so viele virtuelle Hosts anlegen wie ich will, darum kann ich die Datei auch außerhalb WPs testen).

    Also der php-Code scheint ja richtig zu sein. Aber warum stellt mir WP die Grafik nicht dar?

    Danke schon mal.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • <?php include( get_stylesheet_directory() . '/assets/includes/draw_data.php'); ?>[/CODE]

    Dein draw_data.php liefert ein Bild - für Bilder gibt es HTML - Tag img

    <img src=".....includes/draw_data.php">


    eben ...

    Mit offenen Augen träumen

  • Das hatte ich auch schon probiert, bekomme aber da nur das kleine Symbol "fehlende Grafik" zu sehen.

    Das liegt wohl daran, dass der Aufruf innerhalb des IMG-Tags von WP auf den kompletten Pfad gemäß Menüstruktur aufgelöst wird, was natürlich Unsinn ist.

    Wie gesagt: über include bekomme ich wenigstens fancy Zeichen.

    Die Frage ist halt, habe ich einen grundlegenden Denkfehler in meiner Idee? Kann man keine Grafiken per PHP in einer Template-Datei erstellen?

  • Selbst wenn ich den malenden Code direkt in die Template-Datei unterhalb von </table> einbaue, also ohne extra Datei, bekomme ich nur die wirren Zeichen anstatt meines "Kunstwerks".

  • Völlig wirr....

    Kurz zum technischen Hintergrund:
    ich habe hier ein Synology NAS und in der Webstation sind zwei virtuelle Hosts eingetragen:
    1) Wordpress-Seite die über DynDNS und Portforwarding auch von außen erreicht werden kann
    2) Test-Host, der nur im LAN über Port 5002 erreicht werden kann

    Packe ich die malende PHP-Datei in Host #2 und rufe sie im Browser auf -> Bingo -> Kunstwerk

    Baue ich das wie folgt in der gewünschten Seite ein

    Code
    <img src="http://joussen-nas:5002/draw_probe_data.php"/>


    sehe das kleine Symbol für "fehlende Grafik", egal ob ich das im normalen Seiten Editor oder in der Template Datei zur Seite so eintrage.

    Was zum Teufel verhindert die Darstellung der Grafik?

  • Es ist völlig egal, on dieses Script im root Bereich oder in irgendeinem Unterordner liegt.

    1) Wordpress-Seite die über DynDNS und Portforwarding auch von außen erreicht werden kann


    Nutze diesen "von außen" Pfad:

    Code
    <img src="http://example.com/wp-content/themes/wo-auch-immer-die-datei-ist/draw_probe_data.php" />

    Was zum Teufel verhindert die Darstellung der Grafik?


    Das steht in der Regel in der Ausgabe der Browser Console beim Aufruf der Seite.

    Poste den "von außen" Link zu dieser Seite mit Deinem Link wenn Du weiter Schwierigkeiten hast, sonst bleibt das alles nur ein Ratespiel.

  • Sie URL für die Grafik bringt mir nix.

    Die "offizielle" Webseite (WordPress) ist nur von außen zu erreichen, die Testseize nur von innen.
    Ergo kann A nicht B rufen, andersrum ginge es ja.

    Habe jetzt einen Workaround gebaut.
    Das Script schreibt die generierte Grafik in eine Datei, die ich dann normal über <img... anzeigen kann.

    Aber verstehen tu ich halt nicht, warum ich mittels php ohne externe Bibliothek nicht mal n Rechteck gemalt bekomme....

  • Packe ich die malende PHP-Datei in Host #2 und rufe sie im Browser auf -> Bingo -> Kunstwerk


    Lt. dieser Aussage funktioniert das Malen. Lade die malende PHP-Datei [FONT=Courier New].../assets/includes/draw_data.php[/FONT] mal direkt mit dem "von außen" Link im Browser. Dann erscheint Dein Kunstwerk. Binde dann diesen Link als [FONT=Courier New]<img src="...[/FONT] ein. Dann erscheint das Kunstwerk auch auf der WordPress Seite.

    So lernst Du die Zusammenhänge evtl. besser kennen.

    Ergänzung: Wenn Du dynamische Bildinhalte ausgeben willst, kannst Du das jeweils erzeugte Bild in [FONT=Courier New]src="...[/FONT] auch entspr. konvertiert über eine Data-URI ausgeben.

    4 Mal editiert, zuletzt von b3317133 (13. Januar 2021 um 19:32)

  • Au weia....das ist mir jetzt echt peinlich.....

    Auf alles bin ich gekommen um meine php-Datei aus meinem Template aufzurufen....alle möglichen WP-Funktionen um die URL zu ermitteln (klappte nicht), absolute Pfade auf meinem NAS (klappte, aber hässlich)....
    Aber einfach https://www......bla bla bla....darauf bin ich nicht gekommen.

    Und inzwischen kann ich auch das erste Demo aus der phplot-Bibliothek anzeigen.

    Jetzt gehts ans Tippen um die Werte aus der DB sauber in einem Chart darzustellen.

    Tausend Danke an alle hier, die mir geholfen haben!
    Nur die grauen Haare werde ich wohl nicht mehr los....

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!