Soll da irgendwo ein "flock" hin ??

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

  • Soll da irgendwo ein "flock" hin ??

    Hallo,

    ich habe mir ein kleines Downloadscript gecodet, welches wie folgt aussieht:


    PHP-Code:
    <?php
    if(isset($self)) {
        
    $file=$self2;
    }
    elseif(
    $_GET["file"]) {
        
    $file=$_GET["file"].".txt";
    }   
    else {   
        
    $file="datei.txt";
    }   

    $ids=file($file);

    $getid=$_GET["id"];

    for (
    $i=0$i<count($ids); $i++) {
        
    $e=explode("|--|"$ids[$i]);
        if (
    $e[0] == $getid) {
            
    $e[2]+=1;
            
    unlink($file);
            
    $ids[$i]=$e[0]."|--|".$e[1]."|--|".$e[2];
            
    $d=1;
            foreach (
    $ids as $temp) {
                
    $temp=str_replace("\r\n","",$temp);
                
    $temp=str_replace("\n","",$temp);
                if(
    $d==1) {
                    
    $write=$temp;
                }
                else {
                    
    $write="\n".$temp;
                }   
                
    $fp=fopen($file"a+");
                
    fputs($fp$write);
                
    fclose($fp);
                
    $d++;
            }

            echo 
    '<Meta HTTP-Equiv=Refresh Content="0; URL='.$e[1].'">';
           
        }
    }
    // .....
    ?>
    das script wird dann um Wallpaper zu loaden so aufgerufen:

    ....download.php?id=wallpaper1&file=wallpaper

    und die wallpaper.txt sieht so aus:

    Code:
    wp1|--|../../download/wallpaper/Nsane_ghost.zip|--|0
    wp2|--|../../download/wallpaper/n_sane_blue.zip|--|0
    wp3|--|../../download/wallpaper/cubic.zip|--|0
    wp4|--|../../download/wallpaper/bump_mapping_wallpaper.zip|--|0
    wp5|--|../../download/wallpaper/nsane1.zip|--|0
    wp6|--|../../download/wallpaper/nsane_grunge.zip|--|0
    Jetzt zu meiner eigentlichen Frage:

    Sollte ich da noch irgendwo ein flock einbauen, für den Fall, dass mehrere User auf einmal die download.php aufrufen, um aus einer Datei was zu saugen ??
    Wenn ja, wo und welches ??

    Danke im vorraus !!

  • #2
    Re: Soll da irgendwo ein &quot;flock&quot; hin ??

    Original geschrieben von firstlord18
    PHP-Code:
            echo '<Meta HTTP-Equiv=Refresh Content="0; URL='.$e[1].'">'
    [/B]
    Mal abgesehen, dass du das via header-Weiterleitung um einiges eleganter gestalten könntest, stellt sich mir die Frage, warum nicht mehrere zeitgleich ein Wallpaper downloaden können??

    Wenn du keine plausiblen Gründe hast (Traffic, Serverauslastung, u.ä.) können getrost 1000 User das Bild zur selben Zeit loaden. Das hat mit PHP rein gar nichts zu tun. Das ist - wenn überhaupt - ein Problem des Servers, wobei alle aktuellen Server (Apache, IIS) genau dafür ausgelegt sind, mehrere Anfragen bearbeiten zu können.

    Kommentar


    • #3
      @Indigo: ich glaub er meinte das nur 1ner die Datei öffen kann und die für andere in dem moment gesperrt sind. ich finde er sollte ne mysql tabelle verwenden
      Sunshine CMS
      BannerAdManagement
      Borlabs - because we make IT easier
      Formulargenerator [color=red]Neu![/color]
      Herkunftsstatistik [color=red]Neu![/color]

      Kommentar


      • #4
        Original geschrieben von Benny-one
        @Indigo: ich glaub er meinte das nur 1ner die Datei öffen kann und die für andere in dem moment gesperrt sind. ich finde er sollte ne mysql tabelle verwenden
        Ich habe das insoweit verstanden, dass er irgendeine Befürchtung hegt, dass es zu Problemen kommen könnte, wenn zwei oder mehr User ein Bild zur gleichen Zeit downloaden würden.

        Wenn er wirklich nur einen einzigen Download erlauben will, würde theoretisch bereits eine txt-Datei genügen, welche er beim Aufruf der Datei anlegt und bei den darauffolgenden Aufrufen überprüft, ob diese txt bereits existiert (wobei mich dann das "dass mehrere User auf einmal die download.php aufrufen" dann doch etwas irritiert )...

        Kommentar


        • #5
          ich wollte eigentloich verhindern, dass der 1. user die download.php aufruft, dann werden die daten ausgelesen, die datei wird gelöscht, ** und dann die daten neu geschrieben, mit erhöhung des dl-counters...

          an der stelle **:
          hier ruft ein zweiter user die datei auf, dann existiert die date mit den downloadeinträgen nicht, also funzt der download niccht !!!

          wisst ihr, was ich meine ??i

          Kommentar


          • #6
            Es ist nicht besonders resourcenschoned ein Download-Skript für größere Dateien anzufertigen....(außer man erwartet wenige User...)

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Original geschrieben von firstlord18
              ich wollte eigentloich verhindern, dass der 1. user die download.php aufruft, dann werden die daten ausgelesen, die datei wird gelöscht, ** und dann die daten neu geschrieben, mit erhöhung des dl-counters...

              an der stelle **:
              hier ruft ein zweiter user die datei auf, dann existiert die date mit den downloadeinträgen nicht, also funzt der download niccht !!!

              wisst ihr, was ich meine ??i
              Sorry, aber ICH verstehe momentan nur Bahnhof. Selbst nach mehrmaligem Lesen erschließt sich mir noch immer nicht der Sinn und Zweck deines Vorhabens...

              Kommentar


              • #8
                ehrlich gesagt , weiß ich net, wie ich des besser erklären soll........... also wenn man halt en lock draufsetzt, sobald die datei ausgelesen wird, dann wird so eine situation , wie ich sie oben beschrieben habe, nicht passieren, oder sehe ich des falsch ??

                Kommentar


                • #9
                  Original geschrieben von firstlord18
                  ehrlich gesagt , weiß ich net, wie ich des besser erklären soll........... also wenn man halt en lock draufsetzt, sobald die datei ausgelesen wird, dann wird so eine situation , wie ich sie oben beschrieben habe, nicht passieren, oder sehe ich des falsch ??
                  d.h. du willst in der Textdatei einen Counter mit reinmachen und befürchtest, dass während du den Counter erhöst, ein anderes Skript versucht diese Textdatei zu lesen?
                  Das kann nicht passieren, wegen Dateisystem-Lock (grade deshalb ist das noch schwachsinniger mit dem Download-Skript bei vielen Usern, weil das nämlich dann endlos langsam wird, aber egal....)

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    acjhso, naja, dann lass ichs eben !! Vielleicht regele ich dann das ganze per DB, wäre wohl um einiges schlauer !!!

                    Kommentar


                    • #11
                      Original geschrieben von firstlord18
                      acjhso, naja, dann lass ichs eben !! Vielleicht regele ich dann das ganze per DB, wäre wohl um einiges schlauer !!!
                      *nick nick*, vor allem auch einfach zu proggen!

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar

                      Lädt...
                      X