Hilfe bei Downlink verschlüsseln und Dateiinformationen(RS)

Nachdem ihr mir das letzte Mal so toll geholfen habt…-.- bitte ich euch nochmal um eure Hilfe und Aufmerksamkeit…
Das Ziel soll es sein, nachdem sich eingeloggt hat, Dateien hochzuladen und diese natürlich auch wieder runterzuladen… Hier kommt mein Problem… Die datei soll auf download.php nicht direkt verlinkt sein, sondern, ähnlich wie bei Rapidshare, einen verschlüsselten Link mit Dateiinformationen erhalten.

upload.php

[code]?php
if($_GET[‘action’] == “upload”) {

                     // Auf Fehler überprüfen
                if ($_FILES['datei']['error'] == UPLOAD_ERR_NO_FILE || $_FILES['datei']['error'] == UPLOAD_ERR_PARTIAL) {
                // die Datei wurde nicht oder nur teilweise hochgeladen
                die("Die Datei wurde nicht korrekt hochgeladen. Bitte versuchen Sie es erneut.");

                } elseif ($_FILES['datei']['error'] == UPLOAD_ERR_FORM_SIZE || $_FILES['datei']['error'] == UPLOAD_ERR_INI_SIZE) {
                        // die Datei ist zu groß
                die("Die hochgeladene Datei ist zu groß.");

                } else {
                        // die Datei wurde korrekt hochgeladen

                        // hier sind die mySQL Daten einzufüllen
                @mysql_connect("localhost", "root", "asdasd");
                @mysql_select_db("bildup");

                        // Temporäre Datei schreiben (ist wegen der Lese-Rechte nötig)
                        // und auf die temp-Datei Lese Rechte vergeben
                move_uploaded_file($_FILES['datei']['tmp_name'], "./tempfile.tmp");
                chmod("./tempfile.tmp", 0644);

                     // Daten aus Temp-Datei einlesen
                $zeiger = fopen("./tempfile.tmp", "rb");
                $size = $_FILES['datei']['size'];
                     // den Dateiinhalt in $data speichern
                $data = fread($zeiger, $size);
                fclose($zeiger);

                        // Temporäre Datei löschen
                @unlink("./tempfile.tmp");

                        // Damit die Datei jetzt in die mySQL Tabelle kann müssen wir sie vorher kodieren:
                $data = base64_encode($data);
                echo md5($_FILES);

                        // Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt
                $dateiname = str_replace(" ", "_", $_FILES['datei']['name']);

                         // Und ab in die mySQL Tabelle...
                $sql = "INSERT INTO files VALUES('', '".$dateiname."', '".$_FILES['datei']['type']."', '".$data."', '".$size."')";
                @mysql_query($sql);
                     header('Location:/1/upload.php');
                     //Speichere alles in die DB ->
                $link = md5("$ordner/$folder/" . $_FILES["datei"]["name"]);
                echo "Datei-Upload erfolgreich.";
                exit;
                }

                } else {
                        // Upload-Formular anzeigen
                echo "<form method=\"post\" action=\"" . $_SERVER["PHP_SELF"]. "?action=upload\" enctype=\"multipart/form-data\">
                <input type=\"hidden\" name=\"MAX_FILES_SIZE\" value=\"2097152\">
                <input type=\"file\" name=\"datei\" maxlength=\"2097152\"><br>
                <input type=\"submit\" name=\"submit\" value=\"Uploaden\">
                </form>";
                }

?> [/code]

download.php

[code]<?php

// hier sind die mySQL Daten
@mysql_connect(“localhost”, “root”, “asdasd”);
@mysql_select_db(“bildup”);
if (isset($_GET[‘hash’])) {

// Daten über die gewünschte Datei aus mySQL lesen
$sql = “SELECT * FROM files WHERE hash = '”.$_GET[‘hash’]."’ LIMIT 1";
$result = @mysql_query($sql);
$row = mysql_fetch_object($result);

// Den Browser zum Download zwingen
header(“Content-type: " . $row->filetype);
header(“Content-disposition: attachment; filename=”.$row->filename.”;");
header("Content-length: " . $row->filesize);

// Daten dekodieren und an den Browser senden
echo base64_decode($row->filecontent);

exit;
} else {
// Es wurde keine Datei ausgewählt -> alle Möglichkeiten anzeigen

$sql = “SELECT id, filename FROM files”;
$result = @mysql_query($sql);

while ($row = mysql_fetch_object($result)) {
echo “<a href=”".$_SERVER[“PHP_SELF”]."?id=".$row->hash."">".$row->filename."
";
echo “<a href=”".$_SERVER[“PHP_SELF”]."?id=".$row->id."">".$row->filesize."
";
}

}

?> [/code]

da komm ich einfach nicht weiter^^…

Hi, alleine da sind schon etwas gröbere Fehler:

[code][…]
$sql = “SELECT id, filename FROM files”;
$result = @mysql_query($sql);

while ($row = mysql_fetch_object($result)) {
echo “<a href=”".$_SERVER[“PHP_SELF”]."?id=".$row->hash."">".$row->filename."
";
echo “<a href=”".$_SERVER[“PHP_SELF”]."?id=".$row->id."">".$row->filesize."
";
}

}
[…][/code]

Du willst Daten aus der Datenbank die du nicht angefordert hast und weiter unten Dann hash= id?
Habs mal versucht zu verbessern …

[quote][…]
$sql = “SELECT id, filename, filesize, hash FROM files”;
$result = @mysql_query($sql);

while ($row = mysql_fetch_object($result)) {
echo “<a href=”".$_SERVER[“PHP_SELF”]."?hash=".$row->hash."">".$row->filename."
";
echo “<a href=”".$_SERVER[“PHP_SELF”]."?id=".$row->id."">".$row->filesize."
";
}

}
[…][/quote]

lg flo