anzahl der downloads begrenzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • anzahl der downloads begrenzen

    Hallo

    frage1:
    ich bitte auf meiner Page Videos an .. nun gibts es "Sammler" die mir die Seite "Leer saugen". das möchte ich verhindern , indem ich einer IP in der Sektion Videos z.b. nur 10 Downloads erlaube.

    wie kann ich das realisieren ?

    Frage 2:
    ich befürchte .. dass ich dann z.b. bei AOL-Usern (die haben oft die gleiche IP (evtl. nen anderen Proxy oder so, aber die IP iss gleich) den Download unberechtigter Weisse verbiete.

    Kann man zu der IP noch weitere signifikante Eigenschaften abfragen ??

    wie frage ich Browser, Betriebssystem ab ?? würde das helfen ?

    BURNI
    PHP - ich weiß zwar nicht wie es funzt .. aber ich finds geil (bin noch Anfänger)

  • #2
    versuchs mit cookies + ip..

    speichere es in ner db ab und aktualisiere die zahl der downloads..

    vor den download tust du ne abfrage starten, die schaut, ob der user schon 10 downloads hat, dann schreibst du: DOWNLOAD LIMIT FÜR HEUTE ERREICHT oder so...

    Kommentar


    • #3
      Original geschrieben von harakiri
      versuchs mit cookies + ip..

      speichere es in ner db ab und aktualisiere die zahl der downloads..

      vor den download tust du ne abfrage starten, die schaut, ob der user schon 10 downloads hat, dann schreibst du: DOWNLOAD LIMIT FÜR HEUTE ERREICHT oder so...
      Hallo

      ich möchte es ohne Cookies und DB realisieren

      BURNI
      PHP - ich weiß zwar nicht wie es funzt .. aber ich finds geil (bin noch Anfänger)

      Kommentar


      • #4
        Hmm irgendwo wirst du aber die Information speichern muessen, wer wann was runtergeladen hat.

        PHP ist nur wenn es aufgerufen wird aktiv und kann sich bei beendigung des Scripts keine Zustaende merken, also weiss es auch nicht mehr welche IP wieviel runtergeladen hat.

        Kommentar


        • #5
          es würde noch mit ner textdatei gehen - aber da ich immer alles mit db/cookies machen, habe ich davon jetzt keine ahnung..

          aber wenn du das auch noch ausschlägst, dann kannste auch gleich fragen: "ich will das und das bewerkstelligen, ohne aber irgendetwas zu nutzen.."

          Kommentar


          • #6
            Original geschrieben von harakiri
            es würde noch mit ner textdatei gehen - aber da ich immer alles mit db/cookies machen, habe ich davon jetzt keine ahnung..

            aber wenn du das auch noch ausschlägst, dann kannste auch gleich fragen: "ich will das und das bewerkstelligen, ohne aber irgendetwas zu nutzen.."
            Hallo

            verzeihung .. wusste nicht .. dass es üblich ist gleich mit Coockies und DB zu arbeiten .. bzw, dass es hier in dieser Anfrage "nötig" ist

            dennoch danke für die Mühe

            BURNI
            Zuletzt geändert von Burni; 17.11.2002, 14:50.
            PHP - ich weiß zwar nicht wie es funzt .. aber ich finds geil (bin noch Anfänger)

            Kommentar


            • #7
              Schau dir mal die Funktionen:
              fopen
              fread
              fwrite
              fclose
              im PHP Handbuch an.

              Damit kannst du dann die Sachen in eine Datei schreiben und musst dann aber immer die Datei durchforsten um zu sehne ob der oder die schon seine 10 Downloads für heute voll hat. Es geht natürlich mit einer Datenbank einfacher.

              Grob umrissen was du machen mußt.

              Du startest eine Session und liest die IP des Users aus. Speichert das zusammen mit der Session, dem Datum und einem Wert für die Downloads in der Datei wenn er einen Download gemacht hat.
              Macht er einen weiteren Download öffnest du die Datei und schaust ob der User schon eingetragen ist. Wenn ja setzt du den Zähler um eins hoch. Wenn er schon bei 10 ist, gibst du eine Meldung aus.

              Ist aber mit TXt Dateien mehr aufwand als mit einer Datenbank.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar


              • #8
                Original geschrieben von Burni
                verzeihung .. wusste nicht .. dass es üblich ist gleich mit Coockies und DB zu arbeiten .. bzw, dass es hier in dieser Anfrage "nötig" ist
                ist ja auch nicht geht ja auch, siehe meinem post, mit textdateien

                Kommentar


                • #9
                  Mach es doch mit session_register ...

                  das in deine index.php:

                  PHP-Code:
                  session_start();
                  session_register(dlanzahl);
                  $dlanzahl 0
                  So, jetzt hast du überall wo du deine Session auf der Seite startest die Variable "dlanzahl" verfügbar. Wenn jetzt jemand einen Download tätig mach einfach

                  PHP-Code:
                  $dlanzahlneu $dlanzahl++;
                  $dlanzahl $dlanzahlneu
                  So (oder ähnlich) könnte man das auch machen. Cookies sind halt doch davon abhängig ob der User solche aktiviert hat.

                  Kommentar


                  • #10
                    @arkim: das wuerde nicht funktionieren ... wenn man in einem neuen Browser-fenster das Script oeffnet bekommt man auch eine neue Session-Id und schon waere man wieder bei 0 Downloads ... im uebrigen ist session_register() veraltet

                    Kommentar


                    • #11
                      Stimmt in dem Falle nicht. Im diesem Falle wird dein Session übergeben an das neu Fenster. Es sei den du machst erst ein Fenster auf und rufst dann die Datei auf.
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Kommentar


                      • #12
                        Original geschrieben von Wotan
                        Stimmt in dem Falle nicht. Im diesem Falle wird dein Session übergeben an das neu Fenster. Es sei den du machst erst ein Fenster auf und rufst dann die Datei auf.
                        Genau das meinte ich damit. Es bringt ja nix wenn ich in dieser Session nur 10 mal downloaden kann wenn ich mit einer neuen wieder 10 mal downloaden kann. Hier soll ja erreicht werden das jemand ueberhaupt nur 10 mal etwas herunterladen kann ... allerdings ist dies nur ueber clientseitige sachen zu erreichen und die koennen halt immer variieren: neu einwaehlen -> neue ip, anderen browser verwenden, cookie loeschen ...

                        Kommentar


                        • #13
                          Danke für das Vertrauen . Ne, stimmt schon ... Aber die Variablen könnte man ja auch mit URL übergeben wenn man schon ein Fenster neu öffnet. Alles andere hängt halt davon ab ob der User Cookies akzeptiert ...

                          Kommentar


                          • #14
                            du könntest versuchen den User an Hand seines Systems zu ermitteln:

                            als Kontrolle dient hier der Browser/OS + IP, und eins von beiden muß er wechseln um nochmal was downloaden zu können

                            PHP-Code:
                            <?
                            // speichern des Arrays in eine Datei
                            function write_download( &$downloads )
                            {
                                $fp = fopen ( 'meineDaten.php', 'w' );
                                fwrite( $fp, "<?\n\$download=array(\\n" );
                                $x = count( $downloads );
                                $i = 0;
                                reset( $downloads );
                                while ( list( $key, $value ) = each( $cacheconf ) ) {
                                    ++$i;
                                    fwrite( $fp, "\t'$key'=>'$value'" . ( $i == $x?"":"," ) . "\n" );
                                } 
                                fwrite( $fp, ");\n?>" );
                                fflush( $fp );
                                fclose( $fp );


                            // Daten des Users ermitteln
                            $ip = $_SERVER['REMOTE_ADDR'];
                            if ( ( $ip == "127.0.0.1" ) && ( $_SERVER['HTTP_X_FORWARDED_FOR'] != "" ) )
                                $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
                            $agent = getenv( "HTTP_USER_AGENT" );
                            $x = md5( $ip . $agent );

                            // alte Daten lesen
                            include ( 'meineDaten.php' );

                            // Anzahl prüfen
                            if ( isset( $downloads[$x] ) ) {
                                if ( $downloads[$x] >= 10 ) {
                                    // hier zur Fehlermeldung springen !
                                    exit();
                                } 
                                $downloads[$x]++;
                            } else
                                $downloads[$x] = 1;

                            // neue Daten speichern
                            write_download( $downloads );

                            // hier Download starten
                            // ...
                            ?>
                            PS: aber ohne Funktionstest ! Nur schnell hingetippt, des wegen Tipfehler bitte selber finden
                            TBT

                            Die zwei wichtigsten Regeln für eine berufliche Karriere:
                            1. Verrate niemals alles was du weißt!


                            PHP 2 AllPatrizier II Browsergame

                            Kommentar

                            Lädt...
                            X