Seite 1 von 1
bräuchte dringenst hilfe mit einem benutzer-download-system
Verfasst: 12.01.2004 20:41
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
Verfasst: 12.01.2004 21:04
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
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
Verfasst: 12.01.2004 21:14
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.
Verfasst: 12.01.2004 21:20
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!
Verfasst: 12.01.2004 21:23
von MrMind
ich denke mal das du das Problem mit der URL im Downloadmanager egal wie du es machen wirst immer hast
Mfg
MrMind
Verfasst: 12.01.2004 21:36
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!
Verfasst: 13.01.2004 16:33
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();