Hi,
ich muss zu folgendem sagen, dass ich nie zuvor mit PHP Bilder erzeugt habe, daher keinerlei Erfahrung damit habe (und ich müde bin, aber das nur am Rande *g*)
Jedenfalls habe ich für mich ein kleines Counterscript geschrieben, das sich aus einer Datenbank die Werte für den jeweiligen Counter holt. Bisher hatte ich da nur den aktuellen Stand des Counters gespeichert, jetzt wollte ich jedoch über die Datenbank auch die Maße, sowie Farbe der Schrift und des Hintergrunds anpassen können.
Das Problem ist jetzt, dass kein Bild mehr erzeugt wird, ich finde nur den Fehler nicht. Auch beim letzten mal, als ich die Werte in die Datei geschrieben hatte, kam dieser Fehler am Anfang, ich konnte ihn jedoch durch ausprobieren selbst beheben. Jetzt kriege ich das allerdings nicht hin. Es wäre nett, wenn einer mal einen Blick drauf werfen und mir sagen könnte, woran es liegt. Ich denke, ich hab einfach wieder ne Kleinigkeit übersehen.
Fehler:
counter.php:
ich muss zu folgendem sagen, dass ich nie zuvor mit PHP Bilder erzeugt habe, daher keinerlei Erfahrung damit habe (und ich müde bin, aber das nur am Rande *g*)
Jedenfalls habe ich für mich ein kleines Counterscript geschrieben, das sich aus einer Datenbank die Werte für den jeweiligen Counter holt. Bisher hatte ich da nur den aktuellen Stand des Counters gespeichert, jetzt wollte ich jedoch über die Datenbank auch die Maße, sowie Farbe der Schrift und des Hintergrunds anpassen können.
Das Problem ist jetzt, dass kein Bild mehr erzeugt wird, ich finde nur den Fehler nicht. Auch beim letzten mal, als ich die Werte in die Datei geschrieben hatte, kam dieser Fehler am Anfang, ich konnte ihn jedoch durch ausprobieren selbst beheben. Jetzt kriege ich das allerdings nicht hin. Es wäre nett, wenn einer mal einen Blick drauf werfen und mir sagen könnte, woran es liegt. Ich denke, ich hab einfach wieder ne Kleinigkeit übersehen.
Fehler:
SQL:Die Grafik "~~counter.php?counterid=1" kann nicht angezeigt werden, weil sie Fehler enthält.
Code:
CREATE TABLE `counter` (
`id` int(20) unsigned NOT NULL auto_increment,
`name` varchar(200) NOT NULL default '',
`stand` int(200) NOT NULL default '0',
`height` int(5) NOT NULL default '0',
`width` int(5) NOT NULL default '0',
`left` int(5) NOT NULL default '0',
`top` int(5) NOT NULL default '0',
`r` int(3) NOT NULL default '0',
`g` int(3) NOT NULL default '0',
`b` int(3) NOT NULL default '0',
`fr` int(3) NOT NULL default '0',
`fg` int(3) NOT NULL default '0',
`fb` int(3) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
PHP:
<?php
Header("Content-Type: image/png");
include('dbconnect.php');
function mysql_queryf()
{
$args = func_get_args();
$query = array_shift($args);
$query .= ' ';
$query = preg_replace('/([^\'"])%s([^\'"])/', '\\1"%s"\\2', $query);
$query = substr($query, 0, -1);
$args = array_map('mysql_real_escape_string', $args);
return mysql_query(vsprintf($query, $args));
}
$width = 100;
$height = 17;
$imgfalse = ImageCreate($width, $height);
$black = ImageColorAllocate($imgfalse, 0, 0, 0);
$white = ImageColorAllocate($imgfalse, 255, 255, 255);
ImageFill($imgfalse, 0, 0, $white);
if (!$counterid):
ImageString($imgfalse, 3, 25, 6, "ungültig", $black);
imagepng($imgfalse);
ImageDestroy($imgfalse);
endif;
if ($counterid):
SetCookie("counterlock","...",time()+3600);
$query = mysql_queryf("SELECT stand FROM counter WHERE id = %d", $counterid);
$row = mysql_fetch_object($query);
$counterstand = $row->stand;
$width = $row->width;
$height = $row->height;
$img = ImageCreate($width, $height);
$color = imagecolorallocate($img, $row->r, $row->g, $row->b);
$fcolor = imagecolorallocate($img, $row->fr, $row->fg, $row->fb);
Imagefill($img, 0, 0, $color);
if (!$counterlock):
$counterstand = $counterstand + 1;
$query = "UPDATE counter SET stand = ".$counterstand." WHERE id = ".$counterid;
$row = mysql_query($query);
endif;
ImageString($img, 3, $row->left, $row->top, "$counterstand", $fcolor);
imagepng($img);
ImageDestroy($img);
endif;
?>
Zuletzt bearbeitet: