kostenloser Webspace werbefrei: lima-city


Reload-Sperre

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jaecksn

    jaecksn hat kostenlosen Webspace.

    Hallo,

    ich habe mir einen gerade eine Umfrage gebastelt. Mich interessiert jetzt, wie ich mir da eine Reload-Sperre einbauen kann. Hat jemand eine Idee, wie sowas geht?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Was meinst genau mit reload-sperre?
    Dass man, wenn man [F5] dr?ckt, nicht nochmal postet?
  4. d*****s

    Hallo,

    ich habe mir einen gerade eine Umfrage gebastelt. Mich interessiert jetzt, wie ich mir da eine Reload-Sperre einbauen kann. Hat jemand eine Idee, wie sowas geht?

    Quelle: www.jex-treme.de (solltest du aber besser mit einer ip-sperre kombinieren, da cookies alleine leicht zu umgehen sind.
    <?php
      ob_start();
      // unterdr?ckt Header-Output-fehler
      $time = 12*60*60;
      // 12 Stunden
    
      if(!empty($_COOKIE['kleine_sperre'])) {
        echo "Du warst hier bereits";
      }
      else {
        setcookie("kleine_sperre","war da",time()+$time);
      }
    ?>

    falls du mit user-login arbeitest kannst du auch ein flag in die db setzen, dass der user schon gevotet hat.
  5. Autor dieses Themas

    jaecksn

    jaecksn hat kostenlosen Webspace.

    Hi, danke schon mal f?r die Antworten. Ich meinte schon F5 und noch einmal posten, richtig.
    Wie bekomme ich denn eine ip-sperre hin?
  6. Also dass mit F5 verhinderst du wie folgt:
    Du baust 2 Seiten auf, eine Eingabe.html und eine Modify.php
    Bei der erste Seite gibt der User die Daten ein, sendet die dann ab, und landet auf der zweiten Seite, der Modify.php.
    Dort werden dann die Daten in die Datenbank eingef?gt, und am Ende leitest du dann mit header("Location: Eingabe.html"); wieder auf die erste Seite zur?ck.
    Wenn der User nun F5 dr?ckt, reloadet er nur die erste Seite, es werden keine Daten eingef?gt.

    Eingabe.html --- HTML-Formular ---> Modify.php
    ^ |
    `-- Header("Location: Eingabe.html");--?

    IP-Sperre: Zuerst mal muss ich sagen, dass ich da nicht so viel Erfahrung habe, und nicht wei?, ob dass, was ich jetzt poste alles stimmt!

    Mit dem Super-Array $_SERVER[] bekommst du mit dem Wert 'REMOTE_ADDR' die Remote-IP heraus! Diese musst du dir dann irgendwie merken, ich w?rde DB vorschlagen! Allerdings wei? ich nicht, was du machst, wenn z.B. mehrere Rechner auf einem Proxy h?ngen und du die Proxy-IP speicherst! Denn dann gewinnt der erste, der postet und bei allen anderen funkts. nicht mehr.

    Ich hoffe, ich habe dir geholfen!

    cy
    :thumb:
  7. Das mit den Zwei Seiten funktioniert nicht, denn bei einem Reload wird vom IE usw. auch noch mal der POST der Formulardaten ?bermittelt.

    Das Mit den Cockis funktioniert leider nicht, wenn die Cockies geblockt werden.

    Die Sache mit den IP-Adressen was oben beschrieben wird ist ne ganz gute idee, aber was passiert bei NAT-Netzen, wo mehrere PCs die gleiche IP haben? Nur ein PC kann dann Voten. Und wie lange willst du die IP-Daten dann aufbehalten? Auch ne interessante Fragen.

    Ich w?rde PHP-Sessions verwenden!! In der PHP-Dokumentation (auch in deutsch auf http:/www.php.net) ist in den API-Beschreibungen (Bibliothek Sessions und dann einfach einen Befehl anklicken) sind vollst?ndige, einfache Beispiele.

    Das sollte dann wie folgt funktionieren (glaube ich):
    startsession();
    if(isset(_POST['voting'])) {
      //..voting speichern
      _SESSION_VARS['schon_gevotet'] = true;
    } else {
    if(_SESSION_VARS['schon_gevotet'] == true) {
      echo 'Sie haben schon gevotet.';
    } else {
      //... Voting-Formular.
    }
    }


    Die genauen Bezeichnungen sind bitte in der API-Doku nach zu lesen!
  8. Also nochmal zum MITDENKEN: Ich habe auf der ersten Seite ein Formular mit action="modify.php" method="post" und einen Button type="submit" name="senden". Nun gibt man Daten ein, bet?tigt dann den Button Senden worauf hin die Datei modify.php die Daten aus dem $_POST[] Array ausliest, diese dann in die DB einf?gt, und anschlie?end auf die erste Seite zur?ckleitet (mit header("Location: Seite1.html");)!
    Dr?ckt der User nun F5 wird die erste Seite neu aufgebaut! Nat?rlich sind die Daten von vorher noch immer vorhanden, aber der Post wird nicht nochmal abgesetzt, da der User erst wieder den Senden-Button bet?tigen muss!

    Zum Thema mit den IP-Adressen:

    sastra schrieb: Die Sache mit den IP-Adressen was oben beschrieben wird ist ne ganz gute idee, aber was passiert bei NAT-Netzen, wo mehrere PCs die gleiche IP haben? Nur ein PC kann dann Voten.

    Ich schrieb: Allerdings wei? ich nicht, was du machst, wenn z.B. mehrere Rechner auf einem Proxy h?ngen und du die Proxy-IP speicherst! Denn dann gewinnt der erste, der postet und bei allen anderen funkts. nicht mehr.

    Ist doch irgendwie dasselbe, oder? :confused:

    sastra schrieb: Und wie lange willst du die IP-Daten dann aufbehalten? Auch ne interessante Fragen.

    Dass ist wirklich mal eine interessante ?u?erung! Aber dass muss jeder f?r sich bestimmen, ich w?rde die Daten solange aufheben, wie das Voting l?uft!
    Damit ist halbwegs, ich wiederhole halbwegs sichergestellt, dass der User nur einmal gevotet hat!
    Bei Sessions kann er doch auch mehrmals voten, wenn er eine neue Session ?ffnet, sprich, nach z.B. 10 Minuten surfen wieder auf diese Seite kommt, eine neues Session hat, und dann nochmals votet!
  9. d*****s

    falls das voting nur f?r angemeldete user ist, kannst du die ip-sperre vollst?ndig umgehen. :wink:
    bringt aber auch nur sinn, falls es noch mehr features ausser dem voting gibt... (wer meldet sich schon *nur* f?r ein voting an?!)

    zu den ?bermittelten daten aus dem formular:
    du kannst nat?rlich die superglobale $_POST[] benutzen, aber es geht auch (jedenfalls hier auf lima und auch auf meinem privaten web-server) indem du die variablen mit ihren namen direkt ansprichst.
    also das textfeld <input type="text" name="user_name" /> kannst du auch ?ber die variable $user_name ansprechen.

    zur ip-sperre:
    man muss gar nicht so kompliziert denken, um die schwachstelle dabei zu entdecken. das mit dem proxy oder dem nat-router ist mittlerweile zwar schon was verbreiteter, doch es kann auch noch mehr befallen. heutzutage hat wohl kaum jemand ne standleitung, d.h. bei jedem neuen einw?hlen ins netz bekommt man vom dhcp-server des provs ne neue ip. nat?rlich kann es da sein, dass die ip bereits von einem anderen, der schon gevotet hat benutzt wurde...
    andersrum gesehen, kann jeder, der sich ein paar gedanken gemacht hat, (fast) so oft voten, wie er will...
  10. Schon mal was von Sicherheitsl?cken geh?rt, wenn globals_register auf ON ist?!
    Ich w?rde empfehlen, immer aus dem $_POST[] Array auszulesen, vorallem, wenn die globals_register mal irgendwo auf einem anderen Server auf OFF stehen, oder Lima-City diese auf OFF stellt!

    Wie auch immer, ich w?rde das mit dem Sperren lassen, denn wer votet schon mehrmals?!
    Denjenigen muss wirklich langweilig sein!
    Das mit der Reload-Sperre w?rde ich aber auf jeden Fall einbauen!
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!