Andre: Voting Script

Hallo,
ich habe heute echte Probleme mit einem simplen Voting-Script:

$datei = "votings.php";
$array = file($datei);
$ip = $_SERVER[REMOTE_ADDR];
if (in_array($ip, $array))  echo "Du hast leider schon abgestimmt!";

In der Datei "votings.php" sind die IPs gespeichert, das Auslesen des Arrays funktioniert.
Nur das Vergleichen (in_array) will nicht...

Hat jemand eine Idee??

Danke und beste Grüsse,
Andre

  1. Hallo!

    $datei = "votings.php";
    $array = file($datei);
    $ip = $_SERVER[REMOTE_ADDR];
    if (in_array($ip, $array))  echo "Du hast leider schon abgestimmt!";

    In der Datei "votings.php" sind die IPs gespeichert, das Auslesen des Arrays funktioniert.
    Nur das Vergleichen (in_array) will nicht...

    Liegt wahrscheinlich daran dass die Array Einträge mit einem \n abschließen, $_SERVER['REMOTE_ADDR'] aber nicht. Da fällt mir auch auf, dass die Hochkommas bei $_SERVER['REMOTE_ADDR'] fehlen, wenn ich mal davon ausgehe, dass du REMOTE_ADDR nicht definiert hast.

    Ist dir Bewußt, dass du mit deiner Überprüfung auf die IP viele User vom Voting ausschließt? zb. wenn eine ganze Firma/Uni, ... über diesselbe IP ins Netz geht? Dann kann dort nur einer voten.

    mfg
      frafu

    1. Hi,
      vielen Dank für die Information!
      Hier ist sicher der Fehler zu suchen.

      Es handelt sich um eine Art Kinderspiel, nichts wirklich ernstes ;-)
      Vielleicht sollte ich die IPs nach einer Stuned löschen lassen, will hat nur nicht, das da jemand stundenlang "abstimmt" ;-)

      Danke und beste Grüsse!

      1. DANKE,
        das wars ;-)

      2. Hallo,

        Vielleicht sollte ich die IPs nach einer Stuned löschen lassen, will hat nur nicht, das da jemand stundenlang "abstimmt" ;-)

        wenn derjenige ein AOL-Kunde ist, kann er das bei deiner Lösung trotzdem. AOL betreibt ein ganzes Rudel von Proxies, und es ist keine Seltenheit, dass ein AOL-User bei nahezu jedem Request wieder eine andere IP hat.

        So long,
         Martin

        --
        Fettflecke werden wieder wie neu, wenn man sie regelmäßig mit etwas Butter einschmiert.
    2. Hi,

      Ist dir Bewußt, dass du mit deiner Überprüfung auf die IP viele User vom Voting ausschließt? zb. wenn eine ganze Firma/Uni, ... über diesselbe IP ins Netz geht? Dann kann dort nur einer voten.

      Auch wenns nicht wirklich zum Thema passt, aber welche Alternativen gibt es denn? Mir fällt, ausser eine Registrierung (bei einfachen Votings völlig überzogen), Cookies (lassen sich löschen/ablehnen) oder IP-Sperre (Problem bei Netzwerken)

      Ich hab bei meinem Voting (Eine Top-Liste für Webradios) eine IP-Sperre eingebaut. Wenn allerdings jermand eine optimale Lösung hat, immer her damit, bin auch gerne bereit, für die Userfreundlichkeit grössere Programmierarbeiten in Kauf zu nehmen.

      1. Hallo!

        Auch wenns nicht wirklich zum Thema passt, aber welche Alternativen gibt es denn? Mir fällt, ausser eine Registrierung (bei einfachen Votings völlig überzogen), Cookies (lassen sich löschen/ablehnen) oder IP-Sperre (Problem bei Netzwerken)

        Das ist das Problematischen bei Online Abstimmungen. Es kommt darauf an, wieviel Aufwand man treiben möchte. Möchte man eine Sicherheit die an die 100% grenzt, dass keine Person doppelt abstimmt, dann braucht man eine Registrierung, Sicherheitscode der am besten per Post geschickt wird, usw.

        Ich hab selbst auch schon mal so ein Voting für eine Bildergalerie geschrieben. Das ist aber eher als ein Jux zu sehen. Da ist mir die Sicherheit ziemlich wurscht. Wenn jemand glaubt, er muss hundert mal abstimmen, soll er halt. Realisiert hab ichs, in dem ich die IP und den HTTP_USER_AGENT gespeichert und überprüft habe. Zusätzlich hab ich noch ein Cookie gesetzt. Außerdem hab ich noch einen Mechanismus eingebaut, der ein Voting- Flooding erkennt. Dann muss man sich das halt anschauen und nötigenfalls Stimmen wieder aus der Datenbank löschen.

        Für ernsthafete Zwecke würde ich niemals ein Online Voting verwenden.

        mfg
          frafu

  2. Hi,

    Nur das Vergleichen (in_array) will nicht...

    welche Werte stehen denn in Deinem Array drin?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Nur das Vergleichen (in_array) will nicht...

      welche Werte stehen denn in Deinem Array drin?

      Cheatah

      ..die IPs.
      Das eintragen in die Datei sowie das auslesen funktionieren, nur beim Vergleichen gibts Probleme...

      1. Hi,

        Nur das Vergleichen (in_array) will nicht...
        welche Werte stehen denn in Deinem Array drin?
        ..die IPs.

        gut. Und wie lauten die Werte, die in Deinem Array stehen?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Nur das Vergleichen (in_array) will nicht...
          welche Werte stehen denn in Deinem Array drin?
          ..die IPs.

          gut. Und wie lauten die Werte, die in Deinem Array stehen?

          Cheatah

          Hi
          habs jetzt, mir fehlte das "\n".

          Vielen Dank für die tolle Hilfe, dieses Forum hat mir schon sehr weitergeholfen.
          (meistens aber beim "Durchstöbern" der Beiträge ;-) )
          Hier findet man oft echte Wissens-Schätze!