EDIT: Ich bin Irritiert, nun funktioniert es - das Problem lag nur in den ersten zwei IDs in der Datenbank o_O
Hallo,
ich hab da so ein paar Sorgen mit einem Script, dass ein Bild erstellen soll und dabei einen Wert aus der Datenbank auslesen, +1 rechnen und wieder in die Datenbank schreiben soll. So weit so gut - nur sobald ich den ganzen CreateImage Kram drumgebaut habe, rechnet er nicht mehr +1, sondern +2
Um moegliche Fehler beim Rechnen zu vermeiden habe ich also $hits++; rausgenommen und das direkt beim Updatebefehl eingebaut:
aber auch das fuehrt zum gleichen Ergebnis.
Ist das ein PHP Bug oder habe ich einen Denkfehler?
Hier das gesamte Script (Link zum Bild)
[code]<?php
Header(“Content-Type: image/jpeg”);
error_reporting(E_ALL ^ E_NOTICE);
if($_SERVER[‘HTTP_REFERER’] != “”){
$referer = $_SERVER[‘HTTP_REFERER’];
}else{
$referer = “none”;
}
//Bild aus Bild erstellen
$img = ImageCreateFromJPEG(‘www/files/images/hotlink.jpg’);
$timestamp = time();
// reset stuff
$hits = “”;
//notwendige Farben in Variablen schreiben
$black = ImageColorAllocate($img, 0, 0, 0);
$white = ImageColorAllocate($img, 255, 255, 255);
$red = ImageColorAllocate($img, 255, 0, 0);$zahl = “1”;
$zahl = “1”;
// Load database stuff
include("…/picturer/include/config.inc.php");
$connect = mysql_connect($server, $user, $pass);
mysql_select_db($database);
// Look up Offset ...
$query = "SELECT * FROM ".$hotlink." WHERE url LIKE '".$referer."' LIMIT 0,1";
$query = mysql_query($query);
$result = mysql_fetch_object($query);
if($result == true){
$id = $result->id;
$last_hit = $result->last_hit;
$hits = $result->hits;
$write = "UPDATE hotlink SET hits=hits+1, last_hit='".$timestamp."' WHERE id='".$id."'";
$write = mysql_query($write) or die(mysql_error());
}elseif($result = false){
$hits = "1";
$last_hit = $timestamp;
$write = "INSERT INTO hotlink (url, last_hit, hits) VALUES ('".$referer."', '".$last_hit."', '".$hits."')";
$write = mysql_query($write) or die(mysql_error());
}
//Grammatik, um Text sauber anzuzeigen
if($hits == 1){ $times = "Hit"; }else{ $times = "Hits"; }
$last_hit = date('d.m.Y, H:m:s', $last_hit);
//Bild generieren
$font = “/www/picturer/fonts/harrington.ttf”;
// Dynamischer Datenbanktext
imagefttext($img, '18', 0, 20, 590, $black, $font, $times.' from this URL');
imagefttext($img, '18', 0, 220, 590, $red, $font, $hits);
imagefttext($img, '18', 0, 400, 590, $white, $font, 'Last access was');
imagefttext($img, '18', 0, 600, 590, $black, $font, $last_hit);
ImageJPEG($img, NULL, 100);
ImageDestroy($img);
?>[/code]