|
|
|
|
|
|
|
#1 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 15.06.2005
Beiträge: 193
![]() |
Hallo,
ich will Daten zum Download anbieten, möchte aber nicht, dass die Datei auf anderen Seiten zum Download angeboten wird, und dies von meinem Server. Ich hab mich ein bisschen schlau gemacht, und bin zu der Lösung gekommen, dass es vielleicht recht gut wäre, die Datei mit file_get_contents in einen String zu laden. Das ist einfach, jetzt möcht ich den String aber speichern und weis nicht wie. Ich hab lösungen gefunden, die gefallen mir aber nicht, weil die Datei zuerst erstellt wird. Wenn ich die Datei jedes mal vor dem Download neu erstellen lasse, wird das wohl den Server recht beanspruchen. Kann ich die Datei nicht einfach auf dem PC des Users erstellen lassen, und den Inhalt über PHP von der ursprungsdatei laden lassen? Oder wie kann ich die Datei vor Trafficklau schützen? |
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 02.08.2005
Beiträge: 245
![]() |
Hallo,
zuersteinmal kannst du auf dem PC des Users nichts machen. Du hast PHP und somit nur die Aktionen auf dem Server in der Hand. Du kannst nur bestimmen welche Daten gesendet werden. Der Rest ist Browsersache und liegt (mit PHP) nicht in deiner Hand. Zum zweiten ist es so, dass das Internet öffentlich ist und somit jeder zumindest den Link auf deiner Seite posten kann, genauso wie du es machst. Da ist es auch egal, ob du deine Anfrage mit GET oder POST machst, den original HTML-Quellcode von deiner Seite kann man immer nachbauen. Kurz: Was du öffentlich anbietest kann immer jeder laden, egal von wo aus! Wenn der Download nur von deiner Seite aus funktionieren soll, dann könntest du z.B. eine Benutzeranmeldung abauen, und nur wer angemeldet ist kann sich die Datei herunterladen. Schreibe eine PHP-Datei die dir prüft ob eine Anmeldung vorliegt, wenn ja, öffne die Originaldatei, sende die passenden Header und leite die Originaldatei dann 1 zu 1 blos weiter. Eine andere Seite wird dann den Link von deinem Server nicht mehr anbieten, da die Benutzerverwaltung von der fremden Seite nicht umgangen werden kann. Um eine Datei nur weiterzuleiten findest du einige Code-Beispiel hier im Board über die Suche und auch die Suchmaschine deiner Wahl kann dir schnell weiterhelfen. Im PHP-Handbuch würde ich dir das Kapitel über header und in der PHP-FAQ das Kapitel über Downloads empfehlen. Gruß, Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten. |
|
|
|
|
#3 (permalink) |
|
Gast
Beiträge: n/a
|
Dafür braucht man nach meiner Meinugn keine Benutzerverwaltung.
Könnte doch einfach wo der Button zum download ist ein Code ausgeben. (CAPTCHA) Wo 4 Buchstaben in einem Bild drin sind und man muss die 4 Buchstaben in ein Feld eintragen. Das vergleicht man dann mit der Session bevor man den download startet. So bekommt man die User zumidest auf die eigene Seite. |
|
|
#4 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 02.08.2005
Beiträge: 245
![]() |
Den Unsinn von CAPTCHA kann ich nicht oft genug betonen. Ist vielleicht nur meine Meinung, aber im Internet gibt es auch viele Leute die nicht sehen können und sich Internetseiten vorlesen lassen über Vorlesebrowser und Vorlesehilfen. Solche Leute werden über CAPTCHA zu 100% ausgeschlossen, oder erzeugst du evtl noch eine MP3-Datei mit den vorlegesenen Buchstaben? Wahrscheinlich nicht. Ich arbeite momentan an so einer Lösung und das ist nicht ganz einfach!
Die Frage ist für mich eher, was in der Datei steht, damit sie von fremden Seiten nicht gelinkt werden darf?!? Aber zum Thema zurück. Wenn man keine Benutzerverwaltung möchte, kann man auf seiner Seite in eine Session ein "OK für Download" schreiben. Wenn die Datei heruntergeladen werden soll muß nur geprüft werden, ob das "OK für download" vorhanden ist. Wenn ja, gib die Datei, wenn nein, dann wehr dich! Da müsste dann niemand einen Code eingeben und in die Session kann keine andere Seite reinschreiben. Gruß, Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten. |
|
|
|
|
#5 (permalink) | |||
|
Gast
Beiträge: n/a
|
Zitat:
Zitat:
Damit haben wir ja 3 mögliche Lösungen zusammen entscheiden muss Zangelo es selber was er nutzt. Zitat:
|
|||
|
|
#6 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 02.08.2005
Beiträge: 245
![]() |
Sessions? Sind immer eine zweischneidige Sache, aber doch relativ sicher, wenn man sich ordentlich damit beschäftigt und nicht nur den Standard-"Klatsch" nimmt. Klar, wer irgendwas manipulieren will und sich die Zeit nimmt und die Arbeit macht, der kann alles irgendwie manipulieren. Aber das Thema wurde ja schon oft im Forum diskutiert und ist auch nicht ganz Bestandteil dieses Threads.
@Zangelo: Mich würde langsam ein Lebenszeichen deinerseits freuen. Welchen Weg schlägst du jetzt ein? Oder hast du eine andere Lösung für dein Problem gefunden?
__________________
SELECT * benutze ich nur um den Post kurz zu halten. |
|
|
|
|
#7 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 15.06.2005
Beiträge: 193
![]() |
Hallo,
ich möchte gerne einen art downloadservice anbieten, user können ihre daten hochladen, und den link versenden. Dann können es andere Leute wieder runterladen. Ich hab mich mit sesions noch nie beschäftigt, aber das mit dem Bild find ich nicht so toll, und das mit dem Anmelden auch nicht. angenommen dies ist meine datei: http://server.de/file.txt. Der User kommt auf die Seite, und seine IP bekommt dann durch die session die zusage. dann sieht er den Link, und läd die datei runter. Er kann den Link doch auch kopiern und im Forum anbieten, so hab ich das zumnindest verstanden: Ich kann nur beeinflussen, was der user darf, also downloaden. aber wenn er den Link hat, hat das ja wieder nichts mit php zu tun. |
|
|
|
|
#8 (permalink) |
|
Moderator
Registriert seit: 02.10.2006
Beiträge: 3.679
PHP-Kenntnisse: Fortgeschritten ![]() |
Lege die Datei in ein Verzeichnis das über HTTP nicht erreichbar ist und Schleife die Datei mit PHP druch:
http://www.php-faq.de/q/q-datei-download.html
__________________
GAGA, GOGO, TRALAFITTI! |
|
|
|
|
#9 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 15.06.2005
Beiträge: 193
![]() |
Hi,
die letzte lösung gefällt mir sehr gut. Ich hab mir das Script stark vereinfacht: PHP-Code:
Dort erstelle ich ein Ordner download. Da sind meine Dateien drin, und die trag ich dann in das Script ein. Das geht gut, die Quelle der datei ist dann domain/ordner/phpdatei Der name ist auch richtig. So jetzt möchte ich aber die Dateien via PHP in den Ordner kopieren. Das geht leider nicht, also PHP-Code:
In der php.ini fand ich nichts wo ich die Pfade angeben konnte, wo ich cgi-bin eintragen hätte können. CHMOD = 777 |
|
|
|
|
#10 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 13.11.2005
Beiträge: 2.583
![]() |
Zitat:
|
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| \copy\ \http ordner\ |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.