hotti: Bild erzeugen mit GD => Einbetten in HTML

Beitrag lesen

hi,

Mach ich ja. Das der Quelltext oben ist ein Script mit den 3 steps..

  1. Bild erzeugen
  2. Ausgabe Client ( print html )
  3. Bild löschen

Geht das in einem script ode nicht?

Nicht in Deiner Reihenfolge. Beachte die Antwort vom Chris, er hats gut erklärt.

Untenstehend noch eine andere Variante, es dennoch mit einem Script zu machen. Wir müssen davon ausgehen, dass es zwei Requests sind. Daher kriegt die IMG-Ressource, die vom gleichen Script erstellt werden soll, einen Parameter. Beachte, dass eine Fehlerbehandlung nur übers Error_Log des Webservers möglich ist, z.B. wenn ein die($!) auftritt (no such file...).

Hotti

#~~~~~~~~~~~~~~~~~~~~~~ script ~~~~~~~~~~~~~~~~~~~~~+

  
#!/usr/bin/perl  
  
use strict;  
use warnings;  
use myConfig qw($cfg);  
use IO::File;  
use CGI;  
  
my $u = CGI->new;  
  
# dieser Teil erzeugt die Grafik  
# es ist ein Request mit Parameter  
# Fehlerbehandlung nur per error_log des Webservers!!!!  
if($u->param('img')){  
	binmode STDOUT;  
	print $u->header('image/gif');  
	# IMG-Datei wird eingelesen, wenn vorhanden  
	if(-f "$cfg->{path}->{filedir}/red.gif"){  
		my $fh = new IO::File "$cfg->{path}->{filedir}/red.gif", O_RDONLY|O_BINARY;  
		die $! if not defined $fh; # error_log gucken!!!  
		read $fh, my $bin, -s _;  
		print $bin;  
		$fh->close;  
	}  
	else{ die $! } # siehe error_log!  
}  
# dieser Teil erzeugt die Ausgabe von HTML  
# das ist ein Request ohne Parameter  
else{  
	print $u->header('text/html; charset=UTF-8'), qq(  
		<h2>Grafik mit Text</h2>  
		  
		<p>Untenstehend die gewünschte Grafik:</p>  
		  
		<p>  
			<img src="$ENV{SCRIPT_NAME}?img=1" alt="Ein Bild!" width='127' height='38' title="BildDings">  
		</p>  
	);  
  
}