IP ändert sich ständig beim IE, bleibt beim FF aber gleich (gelöst, hab aber neue Frage)

Drrichardfahrer

Well-known member
ID: 207405
L
20 April 2006
7.060
691
Ich bin gerade dabei ein Script zu schreiben, welches die Views eines Bildes zählt. Quasi als "Reloadsperre" lass ich die letzt anfragende IP in der Datenbank speichern und erst wenn eine andere IP dieses Bild geviewt hat, zählt der eigene View wieder...das heißt, damit ein Bild erneut von einer IP gezählt wird, muss eine andere IP währenddessen angefragt haben...

Da es eine kleine Seite ist, wo pro Tag nur ca. 30 User sind, ist das für mich kein Problem.

Jetzt hab ich jedoch feststellen müssen, dass mein System beim FF 3.0 funktioniert, das heißt, einmal das Bild geviewt, erhöht sich der Zähler nicht mehr. Allerdings im IE 6.0 kann ich mit F5 reloaden, soviel ich will, jedes mal hat er eine total andere IP...habs mir auch mit $_SERVER['REMOTE_ADDR']; anzeigen lassen, die IP wird ständig geändert...und dadurch mein System für IE nicht funktioniert... :(

Weiß jemand, woran das liegt??

Liebe Grüße, Drrichardfahrer
 
Ähm, um ehrlich zu sein keine Ahnung...sind alle IPs jedoch gleich, bis auf die letzten drei Stellen, die ändern sich ständig...

Kann man das wo im IE einstellen? Bis jetzt hatte ich damit noch nie Probleme...
 
hi

hast du deine Domain evtl. bei United Domain und nutzt URL-HIDING?
Wenn ja ruft der Server die Seite auf und deswegen sieht man immer die Server IP (gibt es evtl. auch bei anderen Anbietern)

eigenartig ist es aber warum es im Firefox klappt.

Rufst du die Domain im Firefox und im ie gleich auf?

natürlich ist Proxy auch eine Möglichkeit wollte nur mal darauf hinweißen das es noch eine andere Möglichkeit gibt warum dies passiert hab daran schlaffe 2 Stunden gesucht bis ich den Fehler gefunden hab :ugly:

mfg

Chris
 
Gut, es hat tatsächlich an den IE-Eigenschaften gelegen...es war ein Proxy vorgeschaltet.

Somit kann ich nun meine Fragestellung ändern:

Ich habe (es handelt sich um eine Seite eines Fotografen) bei einem Bild zwei Kriterien: einerseits kann man das Bild bewerten (eine Voting von 1-10) und andererseits zählen die Views.

Bis jetzt hab ich es so gemacht, dass ich 3 Felder in der Tabelle "bilder" hatte, nämlich "bild_votes_summe" (Summe aller bisher abgegebenen Votings), "bild_votes_anzahl" (Anzahl der bisher abgegebenen Votings), aus deren Quotienten ich mir den Votingschnitt jeweils ausrechnen und anzeigen lassen konnte.
Desweiteren hatte ich unter "bild_votes_ip" die jeweils letzte IP gespeichert, die gevotet hat (quasi als Reloadsperre, da es ohnehin zu wenig User gibt, die voten).
Dasselbe dann noch bei den Views mit "bild_views_anzahl" und "bild_views_ip".

Da das jetzt aber durch diese Proxy-Geschichte ohnehin absolut kein Schutz ist, will ich mir etwas anderes suchen.

Muss ich deshalb jetzt zwei eigene Tabellen erstellen, um dort wie bei einem Counter eine richtige Reloadsperre zu machen oder gibt es eine bessere Alternative??

Liebe Grüße, Drrichardfahrer

PS: Ich danke allen für die schnelle und kompetente Hilfe bei meinem IP-Proxy-Problem!
 
Cookies? :think::think:

aber einen absoluten Schutz gibt es nicht:

Cookies löschen, neu einwählen bei dynamischer ip und du wirst den user kaum wiedererkennen können.

mfg

chris
 
Nein, nein, es geht mir nicht um absoluten Schutz...sonst hätte ich ja das alte System nicht gehabt. Ich will halt einfach nur das F5 verhindern...wenn sich jemand wegen sowas ständig neu einwählt, bitte ;) Ich wüsste was Besseres mit meiner Zeit.

Ich hab halt jetzt nur die Frage, wie ich das datenbanktechnisch am Besten lösen soll bzw. kann...also ob ich jetzt wirklich für die View-IPs und Voting-IPs jeweils eine neue Tabelle anlegen soll oder ob das irgendwie anders auch möglich ist...
 
hi

naja datenbanktechnisch kannst du es nicht verhindern das er mit rotierenden proxy so oft wie er proxys hat voten kann. Auch bei Countern würde das mit rotierenden proxys wohl funktionieren solange sie auf ip basieren. Da bleiben dir dann nur, wie oben schon gesagt, Cookies.

mfg

chris
 
Mach doch eine Kombination aus Cookies und IP speichern. Das dürfte vermutlich die meisten Fälle effektiv abdecken.
 
also ob ich jetzt wirklich für die View-IPs und Voting-IPs jeweils eine neue Tabelle anlegen soll oder ob das irgendwie anders auch möglich ist...
Warum sollte man das denn nicht machen?

Die IP ist nun mal das Mittel, um einen Besucher von einem anderen abzugrenzen. Bei Votes musst du mit Neueinwahlen rechnen. Zusätzlich könnten mehrere Stimmen aus einem Heimnetzwerk oder z.B. AOL-Proxy nur einfach gewertet weren. Das sind die Worst-Cases und die finde ich akzeptabel.

Speichere IP und Timestamp bei einem Vote (bzw. einem View; sind dann eben zwei Tabellen). Lösche vor der Auswahl, ob eine IP was darf, immer alle IPs, die außerhalb der Reloadsperre liegen (eine Query). Nur IPs, die danach nicht in der Tabelle stehen, können die Aktion ausführen.

Zum Thema Kekse:
Nimmt ein User einen Keks nicht an, kann er ewig voten bzw. generiert ständig Views. Würde ich nicht tun.
Kekse sind (imo) ein Mittel, um dem Benutzer einen Komfort zu bieten, z.B. Auto-Login (erspart dem Besucher das Eingeben von Username/Passwort), Warenkorb (erspart dem Besucher, dass er bei erneutem Besuch nochmal alle Artikel anklicken muss) oder Einstellungen (wetter.msn.com speichert im Keks, welche Orte zuletzt betrachtet wurden).

Sicherheitstechnische Daten, d.h. die die interne Logik der Seite steuern, haben im Keks nix verloren, da dieser immer manipuliert sein kann oder häufiger erst gar nicht angenommen wird.
 
Lösche vor der Auswahl, ob eine IP was darf, immer alle IPs, die außerhalb der Reloadsperre liegen (eine Query). Nur IPs, die danach nicht in der Tabelle stehen, können die Aktion ausführen.

Würde ich nicht so machen.
Bei jedem Seitenaufruf gleich mal was löschen lassen, bedeutet gleich wieder einen Table-Lock (bei MyIsam) und das zehrt doch ordentlich an der Performance.
Lieber den Select so bauen, dass er nur Einträge lädt, die in der Reloadsperre liegen und dann alle 5-10min die alten Dinge löschen lassen.
 
@theHacker und ice-breaker:

Ich danke euch beiden für eure langen genauen und präzisen Erklärungen :) Das hat mir wirklich weitergeholfen! Werde das demnächst umproggen...

Liebe Grüße, Drrichardfahrer