Views zählen - Schwer?
Inga + Tim
- programmiertechnik
Hallo!
Wir haben eine Gallerie mit Thumbnails, wo per javascript die einzelnen Bilder aufpoppen lassen. Nun würden wir gerne einen Views-Zähler einbauen, so dass in der Gallerie unter den Thumbnails die Views pro Bild angezeigt werden und pro Popup eines Bildes +1 View gezählt wird (am besten noch Doppelview-Schutz durch IP-Bestimmung).
Ist dass relativ einfach zu realisieren, oder benötigen wir eine Datenbank (womit wir uns bisher nicht auskennen), um die Views zu speichern? Wenn es eine vertretbar einfache Lösung gibt, vielleicht hat ja jemand einen Link mit einem Bespiel, oder kann hier eines posten...
Hier die momentane Javascript-Funktionen zum Bild-popup:
function ClickPic(Picture,Breit,Hoch)
{
OpenNewWindow(Picture,Breit,Hoch);
return (counter+1);
}
function OpenNewWindow(Picture,Breit,Hoch)
{
xsize = Breit+35;// Zusatz für Rand rechts und links
ysize = Hoch+110; //Zusatz für Rand oben und unten - damit Button angezeit werden kann
ScreenWidth = screen.width;
ScreenHeight = screen.height;
xpos = 1;
ypos = 1;
NewWindow=window.open("","Picture","height="+ysize+",width="+xsize+",scrollbars=no,resizable=no,top="+ypos+",left="+xpos+"");
NewWindow.document.write ("<html><head><title>BILDANZEIGE");
NewWindow.document.write ("</title></head>");
NewWindow.document.write ("<body bgcolor='#cccccc' onload='focus()'>");
//NewWindow.document.write ("<body bgcolor='#cccccc'>");
NewWindow.document.write ("<table align='center'><tr>");
NewWindow.document.write ("<td align='center' valign='top'>");
NewWindow.document.write ("<table border='1' bgcolor='#000000' cellpadding='0' cellspacing='1'><tr><td align='center'>");
NewWindow.document.write ("<img src=");
NewWindow.document.write (Picture);
NewWindow.document.write (">");
NewWindow.document.write ("</tr></table>");
NewWindow.document.write ("</td></tr><tr>");
NewWindow.document.write ("<td align='center' valign='bottom'>");
NewWindow.document.write ("<br><center><form><input type='button' value='FENSTER SCHLIESSEN' style='font-family: Verdana; font-size: 10px' onClick='self.close()'>");
NewWindow.document.write ("</td></tr></table>");
NewWindow.document.write ("</form></body></html>");
NewWindow.document.close();
NewWindow.resizeTo(xsize,ysize);
}
MfG und Danke im Vorraus,
Inga + Tim
Hallo Inga + Tim,
Ist dass relativ einfach zu realisieren, oder benötigen wir eine Datenbank (womit wir uns bisher nicht auskennen), um die Views zu speichern?
Eine Datenbank wird nicht zwingend benötigt, sie dürfte aber empfehlenswert sein. Alternativ könnt ihr auch Textdateien nehmen, allerdings weiß ich nicht, wie viel Erfahrungen ihr im Bearbeiten von diesen habt.
Wenn es eine vertretbar einfache Lösung gibt, vielleicht hat ja jemand einen Link mit einem Bespiel, oder kann hier eines posten...
Prinzipiell kann man Views nur über eine serverseitige Technik zählen. Clientseitiges JavaScript fällt also weg. Ihr müsst, wenn Ihr das Fenster öffnest, nicht eine HTML-Seite mit JavaScript erzeugen (so wie Ihr es jetzt tut) Ihr müsst stattdessen ein serverseitiges Script in das Fenster laden, das dann das Zählen der Views übernimmt.
Prinzipiell müsst ihr so vorgehen:
Ihr braucht zwei Datenbestände (seien diese nun in einer Datenbank oder in Textdateien oder sonstwo):
1. Bild-Nr/Name, IP-Adresse, Zugriffszeit
2. Bild-Nr/Name, Anzahl Views
Die erste wird verwendet, um die IP-Sperre zu realisieren. Bei jeder Ansicht prüft das serverseitige Script, ob ein Zugriff auf dieses Bild von dieser IP-Adresse innerhalb einer Gewissen Zeit schon stattgefunden hat. Wenn das der Fall ist, wird einfach nur das Bild ausgegeben. Wenn das *nicht* der Fall ist, wird ein Eintrag in *beide* Datenbestände gemacht, einmal für die IP-Sperre und zum anderen wird die Anzahl an Views für dieses Bild um eines erhöht. Danach wird das Bild ausgegeben.
Viele Grüße,
Christian
Hi ihr Christians!
DANKE für die Tipps!
Bis zum nächsten Mal (vielleicht wissen wir ja auch irgendwann Bescheid und können euch anderen Leuden auch Mal helfen ;-)
I+T
Hi,
Für den Counter braucht ihr serverseitige techniken. Also am besten PHP. Irgendwo müsst ihr die natürlich speichern. am besten natürlich in einer Datenbank. Aber textdateien tun es auch, ist am m.E. viel umständlicher.
ihr könnt entweder beim klicken das PHP-Skript aufrufen oder unauffälliger in der Datei, die das Bild enthält. (bzw. bei euch in das document.write() einbauen, da ihr das ja dynamisch erzeugt.
Ein trick, wie man ein Skript ausführen kann, ohne das auf es redirectet wird, ist z.B. so:
<img src="phpskript.php?bild_id=3">
oder so ähnlich.
Im PHP müsst ihr dann für das Bild Nr. 3 eins hochzählen.
Gruß
Christian