Logindaten nach erfolgreichem Login bzw. Download löschen

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

  • #16
    ahhh allet klar. jetz hab ich nur noch ein problem: er gibt mir die download.php zur speicherung?! soll doch aber datei.jpg!
    liegt es daran, dass die $download-Var. nicht beschrieben ist?

    Kommentar


    • #17
      allet klar, die filelist war nich beschrieben.
      jedoch sagt er mir nun das die File nich existiert?!

      Code:
      <?
      # $download sei der Bezeichner für die zu ladende Datei
      
      # Dieses Verzeichnis liegt außerhalb der Document_Root und
      # ist nicht per URL zuzugreifen.
      $basedir = "/srv/www/vhosts/xxx.de/subdomains/xxx/httpdocs/xxx/neu"; //dieser pfad führt in einen anderen Ordner als wo dieses script liegt
      
      # Übersetzung von Download-Bezeichner in Dateinamen.
      $filelist = array(
      "file1" => "/test_head.jpg"
      );
      
      # Einbruchsversuch abfangen.
      if ($filelist[$download] == "")
        die("Datei $download nicht vorhanden.");
      
      # Vertrauenswürdigen Dateinamen basteln.
      $filename = sprintf("%s/%s", $basedir, $filelist[$download]);
      
      # Passenden Datentyp erzeugen.
      header("Content-Type: application/octet-stream");
      
      # Passenden Dateinamen im Download-Requester vorgeben,
      # z.B. den Original-Dateinamen
      $save_as_name = basename($filelist[$download]);
      header("Content-Disposition: attachment; filename=\"".$save_as_name."\"");
      
      # Datei ausgeben.
      readfile($filename);
      ?>

      Kommentar


      • #18
        register_globals

        Kommentar


        • #19
          Sorry ich bin noch nich soooo fit in PHP, müssen die On oder Off oder wie? Kann ich des in dem Code einstellen?

          Kommentar


          • #20
            register_global

            Zukünftig vor "ich bin noch nicht so gut"-Postings bitte selbständig das Manual konsultieren.

            Kommentar


            • #21
              ok....jedoch wie kann in dem code ne variable "$download" verwendet werden, wenn dieser kein wert zugeteilt ist? da stimmt doch was nich?
              ich habe in einem anderen abgewandelten script wie schon gesagt was von $download=$_GET[""] gelesen. Wenn das so stimmen würde, was muss denn dann ins GET?

              Kommentar


              • #22
                ok....jedoch wie kann in dem code ne variable "$download" verwendet werden, wenn dieser kein wert zugeteilt ist? da stimmt doch was nich?
                ich habe in einem anderen abgewandelten script wie schon gesagt was von $download=$_GET[""] gelesen. Wenn das so stimmen würde, was muss denn dann ins GET?
                Du musst per GET übergeben, welches Element aus der Filelist verwendet werden soll.
                PHP-Code:
                $download $_GET['file']; 
                Das Skript rufst du dann mit download.php?file=file1 auf.

                Kommentar


                • #23
                  Soweit habe ich nun dank PHP-Desaster alles geschnallt und umgesetzt. Wie wohl zu erwarten stehe ich erneut von einem Problem.
                  Ich habe eine Mysql-Tabelle mit folgenden Feldern: user, pass, dltime, 001, 002. Die Felder 001 und 002 repräsentieren jeweils ein Zippackage. Hierbei wird dem User bei erlaubtem Download eine NULL oder 1 zugeteilt. Ich habe nun ein Login-Formular geschrieben, wobei an einen geglückten Login eine Auflistung der Zippackages erscheint. Diese soll aufgrund eines Datenbankabgleiches (der eben auf 1en sucht) entstehen. Problem ist, wie kann ich die Tabelle auf 1en bzw. NULL's user-spezifisch durchsuchen?
                  Ersteinmal dachte ich daran, die Zeile des Users abzurufen; in der nächsten Instanz solle dann dementsprechend geprüft werden....nur wie??? (Ja, Google lief schon heiss! )

                  P.S.: eine if-Geschichte wäre denke ich mühsam, da mit der Zeit die Felder von 001 bis 999 ansteigen können....

                  Kommentar


                  • #24
                    Wenn Tabellen algorithmisch breiter werden (neue Spalten bekommen), wurde (fast immer) nicht richtig normalisiert.
                    Dein Problem löst sich nämlich in Luft auf, wenn du dein Schema wie folgt änderst und die Abfrage per JOIN machst:

                    user (uid, name, pass)
                    downloads (did, uid, dtime)

                    Kommentar


                    • #25
                      alles klar, glaube es verstanden zu haben, der abfragedialog sähe dann denke ich so aus?!:

                      Code:
                      SELECT did FROM downloads INNER JOIN downloads ON user.uid = downloads.uid WHERE user.name = '".$_POST['username']."'
                      nochwas: gibt es eine möglichkeit, wenn auf eine did mehrere uid's kommen (und anders herum), das anders zu bauen, um nicht für jede zuordnung in downloads eine zeile schreiben zu müssen? bin mir sicher es gibt da einen weg, komme aber einfach nicht drauf...
                      Zuletzt geändert von KillUrMind; 06.01.2008, 00:12.

                      Kommentar


                      • #26
                        user (uid, name, pass, ...)
                        user_downloads (uid, did)
                        downloads (did, dtime, ...)

                        Jetzt wächst zwar die Tabelle user_downloads, aber irgendwo mußt du ja festhalten, welcher User welchen Download bekommen darf. Das geht nicht sparsamer als mit zwei INTs.

                        Kommentar


                        • #27
                          okay das mit den INT's muss ich mir nochmal zu Gemüte führen, da ich bis dato keinen genauen Plan hab was das ist un was es bezweckt, aber danke ich hoff ich komme nun klar

                          Kommentar


                          • #28
                            Ich meine den Spaltentyp INT, siehe http://dev.mysql.com/doc/refman/5.0/...ic-types.html.

                            Kommentar


                            • #29
                              hehe, alles klar, das macht sinn.....dankeeeeee
                              werd mal schauen wie ich des am besten baue, aber des bekomm ich scho hin

                              Kommentar

                              Lädt...
                              X