bräuchte dringenst hilfe mit einem benutzer-download-system

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Constantin
Mitglied
Beiträge: 28
Registriert: 18.02.2003 21:43

bräuchte dringenst hilfe mit einem benutzer-download-system

Beitrag von Constantin »

Ich muss für einen Kunden eine Seite machen, auf der registrierte User einige Dateien zur auswahl haben und einfach auf Kaufen drücken und diese datei dann runterladen können (sie erscheint dann im portofilio, kann von dort aus beliebig oft wieder aufgerufen werden und am ende des monats bekommt er eine rechnung). das ist ja alles schön und gut, kein problem. aber wie mach ich es, dass nicht jeder dann einfach den link kopieren und den dateinamen ändern kann? und wie mach ich es, dass nur leute die auch auf kaufen geklickt haben die datei runterladen können?

ich hab noch absolut keinen plan über sessions, das ganze teil soll mit ner flatfile-db laufen.

wär sehr nett wenn jemand helfen könnte,
ist nämlich sehr wichtig!
vielen Dank schonmal im Vorraus!!

Gruß Constantin
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Als das mit dem Download ist zwar ein kleines Problem, allerdings könnte das man mit JS schnell und einfach erledigen evtl. sogar mit PHP aber da müsste ich mir mal mehrere Gedanken machen.

Lösung mit JS:

den Kaufbutton oder Link auf eine Seite verlinken die mit einem JS ausgestattet ist welches überprüft ob man eingeloggt ist, wenn ja dann soll es automatisch im neuen Fenster die Datei zum Download aufrufen

Code: Alles auswählen

windows.open("http://DOMAIN.de/DOWNLOAD-FILE.zip");
Ich bin net grad sehr gekonnt mit JS, aber denke mal das es so in der Art klappen sollte. Im Notfall guckst du mal hier: SELFHTML.

Damit die User die lediglich auf Kaufen gedrückt haben auch die File runterladen können, kannste das auch über ein Formular machen und es über POST weiterschicken.

z.B.

Code: Alles auswählen

<form action="DATEI.php" method="POST">
<input type="hidden" name="kauf" value="1">
<input type="submit" value="Kaufen">
Damit würde über das Protokoll der Wert TRUE (also 1) mit der Variable $HTTP_POST_VARS['kauf'] weitergegeben. Wenn nun jemand die URL kopiert und dies dann nochmal versucht, wird es nicht klappen, wenn du in der nachfolgenden PHP-File folgende Kontrollschleife machst:

Code: Alles auswählen

if($HTTP_POST_VARS['kauf'])
{

//Anweisung zum Download

}

Ich hoffe ich konnte ein bissl weiterhelfen.


Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Du kannst die Datei folgendermassen zum Download anbieten:

Code: Alles auswählen

<?php
if(benutzer_eingeloggt_und_hat_auf_kaufen_geklickt()) {
    header("Content-type: image/jpeg");
    readfile("blub.jpg");
}
else {
    die("Schwirr ab");
}
?>
Dann kann man nur darauf zugreifen, wenn man berechtigt ist.
Constantin
Mitglied
Beiträge: 28
Registriert: 18.02.2003 21:43

Beitrag von Constantin »

es handelt sich aber nicht um jpgs sondern um zip-dateien! geht das mit denen auch? wenn ci hdas java-script nehme habe ich ja das problem dass z.B: in einem download-manager trotzdem die url angezeigt wird!
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

ich denke mal das du das Problem mit der URL im Downloadmanager egal wie du es machen wirst immer hast ;)

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Constantin
Mitglied
Beiträge: 28
Registriert: 18.02.2003 21:43

Beitrag von Constantin »

naja es sei dem ich habe so eine art antileech drin, nur eben auch zusätzlich so, dass nur bestimmte user runterladen können...

hab den mime-type mal auf application/zip gestellt, aber beim downloadfenster kommt dann "interner fehler". shit!
Constantin
Mitglied
Beiträge: 28
Registriert: 18.02.2003 21:43

Beitrag von Constantin »

ich hab jetzt das hier irgendwo gefunden:
aber da iwrd irgendwie alles zerstückelt, das zip bringt nen fehler
und mit nem mp3 und entsprechendem mime typ habn ichs auch probiert, das ist dann total zerstückelt!

Code: Alles auswählen

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=1.zip;");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize("1.zip"));

readfile("1.zip"); 
exit(); 
Antworten

Zurück zu „Coding & Technik“