PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Adresse zu einer Datei verdecken


mabu
24.11.2004, 20:58:25
Hallo zusammen

Ich habe mittels PHP einen File-Upload gemacht. Diese Dateien werden im Verzeichnis http;//www.meineSeite.com/downloads/ gespeichert und der Pfad, eine Beschreibung und der Datei Name werden in der Datenbank gespeichert. Nun soll die Seite nur für Members zur Verfügung stehen und der Link darf weder weitergeleitet noch darf die Datei kopiert werden.

Kann mir da Jemand einen Tipp geben?

Die Seite mit den Links werden bereits auf Memberrechte überprüft. Nun könnte ich jedoch die Adresse in ein Email kopieren und die Daten weiterschicken. Dies sollte unterbunden werden.

Vielen Dank für Eure Hilfe

Gruss Markus

xabbuh
24.11.2004, 21:44:49
Wenn du die Dateien zum Download anbietest, würde ich mir diesen Artikel (http://www.php-faq.de/q/q-datei-download.html) bei php-faq.de anschauen.

mabu
25.11.2004, 11:01:10
Vielen Dank für den Tipp. Ich werde mal schauen, ob es in meine Richtung geht.

Gruss Markus

P.S. Ich werde mich melden, falls es positiv oder negativ ausgefallen ist.

mabu
25.11.2004, 20:55:22
Tja, da wäre ich wieder. Leider habe ich es nicht geschafft.

Das File wird gelesen aber leider nicht in der Wordversion.

Warum kann ich es nicht speichern?

Hier der Code:


<?php
//Beispiel von http://www.php-faq.de/q/q-datei-download.html

include("Config.php");
include("check.php");

$download = "1"; //$_GET['download'];

// Daten in DB eintragen
//Verbindung aufbauen, auswählen einer Datenbank
$link = mysql_connect($DB_HOST, $DB_USER, $DB_PASS)
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db($DB_NAME) or die("Auswahl der Datenbank fehlgeschlagen");

$query = "SELECT * FROM fdp_archiv where SID = '".$download."'";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen 1: " . mysql_error());

while($data = mysql_fetch_array ($result))
{
$Datei_Name=$data['Datei_Name'];
$Beschreibung=$data['Beschreibung'];
$Pfad=$data['Pfad'];
$Typ=$data['Typ'];
}

header("Content-Type: application/$Typ");
header("Content-Disposition: attachment; filename="$Datei_Name"");

// Datei ausgeben.
readfile("./downloads/$Datei_Name");

?>


Gruss Markus

xabbuh
26.11.2004, 16:16:48
Original geschrieben von mabu
Tja, da wäre ich wieder. Leider habe ich es nicht geschafft.

Das File wird gelesen aber leider nicht in der Wordversion.
Wie meinst du das?

Verwende außerdem mal die header, so wie sie im ersten Beispiel der Kommentare in der PHP Dokoumentation (http://de.php.net/readfile) stehen.

Warum kann ich es nicht speichern?

sniechzial
27.11.2004, 16:35:32
Hi,

also zunächstmal: Sobald du Daten an den Client weitergibst, kann der damit machen was er will. Du kannst ihm das zwar mehr oder weniger schwer machen, mehr aber auch nicht. Spätestens mit einem Proxie hole ich dir jede Datei aus einer GET Antwort.

Da der Bereich sowieso geschützt ist, wie du sagst, wie sollte dann jemand, der den Link per Mail geschickt bekommt, die Datei runterladen? Er klickt drauf und bleibt an der Authentifizierung hängen (hoffentlich).

Grüße,
simon