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
<?php
/*
* Template Name: Show-Probe-Data
*
*
* @subpackage MyHamburg
* @version 1.0
* Only used for displaying environment values from "Server Room"
*
*/
get_header();
global $wpdb;
?>
<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/page/content', 'page' );
endwhile;
$wpdb = new wpdb("probevalues", "ProbeValues.4711", "probevalues", "localhost");
$rows = $wpdb->get_results("SELECT * FROM probevalues");
?>
<table>
<tr>
<th>Datum / Uhrzeit</th>
<th>Temperatur</th>
<th>Humidity</th>
</tr>
<?php foreach ($rows as $obj) : ?>
<tr>
<td><?php echo (($obj->Temp > 30 and $obj->Hum > 50) ? "<font color='#FF0000'>" : "") . $obj->Date; ?></td>
<td><?php echo ($obj->Temp > 30 ? "<font color='#FF0000'>" : "") . $obj->Temp,"°"; ?></td>
<td><?php echo ($obj->Hum > 50 ? "<font color='#FF0000'>" : "") . $obj->Hum,"%";?></td>
</tr>
<?php endforeach ?>
</table>
<?php include( get_stylesheet_directory() . '/assets/includes/draw_data.php'); ?>
</main><!-- #main -->
</div><!-- #primary -->
</div><!-- .wrap -->
<a href="#" class="topbutton"></a>
<?php get_footer();
Alles anzeigen
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)
<?php
header("Content-type: image/jpg");
// erstellen eines leeren Bildes mit 400px Breite und 300px Höhe
$bild = imagecreatetruecolor(400, 300);
// Hintergrundfarbe erstellen
imagecolorallocate($bild, 150, 150, 0);
// Farben festlegen
$farbe1 = imagecolorallocate($bild, 255, 255, 0);
$farbe2 = imagecolorallocate($bild, 0, 255, 0);
$farbe3 = imagecolorallocate($bild, 0, 0, 255);
// Viereck zeichen
// mit folgenden Kordinaten (x1, y1, x2, y2, Farbe);
imagefilledrectangle ($bild, 20, 75, 350,250, $farbe1);
imagefilledrectangle ($bild, 150, 100, 200, 280, $farbe2);
imagefilledrectangle ($bild, 220, 150, 330, 190, $farbe3);
// Ausgabe des Bildes
imagejpeg($bild);
imagedestroy($bild);
?>
Alles anzeigen
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.