Hallo ihr lieben Experten!
Ich habe für meine Homepage (
http://www.fotorama.net.tf) in den Galleries einen Klick-Counter installiert.
Das habe ich folgendermaßen gemacht:
Ich lese meine Bilder von einer Datenbank aus. Im Link zum Bild habe ich eine PHP Datei dazwischengeschaltet (count_index.php), die sich mit einer GET-Abfrage den Link von der Gallery holt. Danach durchsucht sie die Datenbank, ob dieser Link vorhanden ist und zählt 1 hinzu.
Hier poste ich mal den Gallery-Quelltext mit dem Link:
Code:
$sql = 'SELECT id, beschreibung, bild_thumb, bildname, kategorie, count FROM fotorama_bildername ORDER BY RAND() LIMIT 1';
$res = mysql_query($sql);
if($res) {
while(list($id, $beschreibung, $bild_thumb, $bildname, $kategorie, $count) = mysql_fetch_row($res) ) {
echo "<a href='count_index.php?url=bildupload/fotos/$bildname' rel='lightbox[next_button]' title='| Bild-ID: $id | Kategorie $kategorie | $beschreibung'><img src='bildupload/fotos/$bild_thumb' alt=' Bild-ID: $id | Kategorie $kategorie | $beschreibung' title='Bild-ID: $id | Kategorie $kategorie | $beschreibung | Klicks: $count ' border='1'/></a>";
}
}
else {
echo 'Ein Fehler ist aufgetreten!';
}
?>
Mein Problem ist jetzt folgendes:
Jedes mal, wenn ich auf ein Bild klicke, werden 3 URLs übergeben und folglich auch 3x +1 gezählt. Ich habe auch herausgefunden, woran es liegt. Es liegt an der Lightbox. Diese hat nämlich diese bekannten NEXT/PREV Button. Und da ich bei rel='lightbox[next_button] eingetragen habe, werden die 3 URLs übertragen.
Jetzt frage ich euch, ob Ihr eine Lösung zu meinem Problem wisst. Ich habe schon einige Galleries mit Klick-Counter und Lightbox gesehen, die richtig funktionieren.
Hier poste ich noch den Quelltext meiner "count_index.php"
Code:
<?php
$url = addslashes($_GET['url']);
$url_final = $url;
$array = explode("/",$url);
$url_final1 = $array[2];
// Verbindung zum MySQL-Server aufbauen
$db = @mysql_connect($host, $user, $pass);
if ($db) {
if (@mysql_select_db($datab, $db)) {
// Eintrag fuer die übergebene URL um 1 erhöhen.
$query = "UPDATE $table SET count = count + 1 WHERE bildname = '$url_final1'";
@mysql_query($query);
// Noch kein Eintrag für die URL vorhanden?
/*
$sql_insert = "INSERT INTO fotorama_gallery_klicks (url, count) VALUES ('$url_final1', '1')";
@mysql_query($sql_insert);
*/
}
}
// Auf übergebene URL weiterleiten
header("Location: ". $_GET['url']);
?>
Vielen Danke für Eure Hilfe!