Hallo zusammen,
ich hab folgendes Counter-Skript programmiert, das (wie ihr seht) den Counterstand aus der DB ausliest und dann in eine Grafik umsetzt.
Da das Skript im Rahmen eines Counterservices laufen soll, muss es natürlich soweit wie möglich ressourcenschonend sein.
Leider kann ich das selbst nicht beurteilen.
Kann mir jemand von euch zum Ressourcenverbrauch dieser Zeilen etwas sagen bzw., was man besser machen könnte?
Danke und viele Grüße,
Kai
ich hab folgendes Counter-Skript programmiert, das (wie ihr seht) den Counterstand aus der DB ausliest und dann in eine Grafik umsetzt.
Da das Skript im Rahmen eines Counterservices laufen soll, muss es natürlich soweit wie möglich ressourcenschonend sein.
Leider kann ich das selbst nicht beurteilen.
Kann mir jemand von euch zum Ressourcenverbrauch dieser Zeilen etwas sagen bzw., was man besser machen könnte?
PHP-Code:
$benutzername = $_GET['benutzername'];
session_start();
if (!isset($_SESSION['gezaehlt']))
{
// Besucher wurde noch nicht gezählt => Counter++
$timestamp = time();
$aufrufurl = $_SERVER["HTTP_REFERER"];
$sql = "UPDATE USERTAB SET Counterstand = Counterstand+1, Aufrufurl = '$aufrufurl', ";
$sql .= "Letzteraufruf = '$timestamp' WHERE Benutzername = '$benutzername'";
mysql_query($sql);
// Session auf gezaehlt setzen
$_SESSION["gezaehlt"] = true;
}
// Counterstand anzeigen
$sql = "SELECT * FROM USERTAB WHERE Benutzername = '$benutzername'";
if ($res = mysql_query($sql))
{
while($data = mysql_fetch_array($res))
{
$counterstand = $data["Counterstand"];
$counterlaenge = $data["Counterlaenge"];
$counterbild = $data["Counterbild"];
}
$laenge_akt = strlen($counterstand);
// Nullen anhängen, damit der Counter die richtige Länge hat
for ($n=1; $n<=$counterlaenge-$laenge_akt;$n++)
{
$counterstand = "0".$counterstand;
}
// Counterbild generieren
$masse = GetImageSize("http://www.meinedomain.de/digits/$counterbild/1.gif");
$breite = $masse[0];
$hoehe = $masse[1];
$gesamtbreite = $breite*$counterlaenge;
$counter = ImageCreateTrueColor($gesamtbreite,$hoehe);
for ($n=1; $n<=$counterlaenge; $n++)
{
$ziffer[$n] = substr ($counterstand, $n-1, 1);
$bild[$n] = ImageCreateFromGif("http://www.meinedomain.de/digits/$counterbild/$ziffer[$n].gif");
imagecopymerge ($counter, $bild[$n], $xpos, 0, 0, 0, $breite, $hoehe, 100);
$xpos = $xpos + $breite;
}
}
Header("Content-type: image/gif");
ImageGIF($counter);
ImageDestroy($counter);
Kai
Kommentar