Zur Navigation

Einmaliger Download

1 rockford

Hallo zusammen,

ich weiß nicht genau, ob ich bei php richtig bin. Ich möchte einen Download anbieten, der durch ein Kennwort geschützt ist.
Dass Kennwort wird nur durch mich vergeben. Aber an mehrere Personen. Also mit Login und Passwortabfrage.

Sobald sich das Passwort korrekt eingegeben wird, öffnet sich die Downloadmöglichkeit. Wenn der eingeloggte Benutzer die Datei einmal runtergeladen hat, soll sein Passwort nutzlos werden. So dass er dieses nicht weitergeben kann.


Hat jemand eine Idee, wie sich das umsetzen lässt?


Gruß

Rockford

23.09.2005 15:45

2 Jörg Kruse

Wenn du Username und Password in einer Datenbank speicherst, könntest du noch eine weitere Spalte einrichten, die anzeigt, ob der User sich schon mal eingeloggt hat. Bei einem erfolgreichen Login wird der Wert in diesem Feld entsprechend geändert

23.09.2005 16:37

3 Rockford (Gast)

hast Du auch ein paar Ratschläge, wie ich das mache? Denn von MySQL und phpMyAdmin hab' fast keinen Plan *eingesteh*

23.09.2005 20:15

4 Jörg Kruse

Das einfachste wäre es, ein vorhandenes Login-Script anzupassen. Über Google findet man einige PHP-Scripte, die auf MySQL aufsetzen - du kannst ja mal schauen, welches dir davon zusagt. Das können wir anschließend so abändern, dass ein Login nur einmal möglich ist

23.09.2005 23:26 | geändert: 23.09.2005 23:28

5 rockford

Hi,

also ich hab jetzt fast alles ausprobiert, aber das richtige ist noch nicht dabei. Irgendwie gestaltet sich das schwerer als ich dachte.

Mein Latein ist langsam am Ende... :-(

26.09.2005 15:16

6 Jörg Kruse

Welches Script entspricht denn am ehesten deinen Vorstellungen? vielleicht kann man dies ja deinen Bedürfnissen noch anpassen bzw. es als Vorlage zu nutzen, dabei kann ich dir dann helfen. Was fehlt konkret bzw. wo gibt es Probleme?

26.09.2005 22:14

7 rockford

Hi Jörg,


das Problem ist, dass die ganzen LogIn Scripte einen tieferen Sinn haben. Ich habe keine Ahnung, wie ich diese irgendwo einbauen kann.

Im Grunde entpricht nichts dem, was ich brauche... Dass macht das ganze ja so verzwickt....


Gruß

Rockford

30.09.2005 23:08

8 Jörg Kruse

Hallo Rockford,

die Komplexität der Scripte rührt z.T. auch daher, dass sie sicherheitsrelevant sind.

Am übersichtlichsten ist vielleicht das auf ayom.com beschriebene, ich denke, das kann man leicht anpassen:

Login-Skript mit Sessions, PHP und MySQL

dazu benötigst du phpMyAdmin und eben MySQL

Die SQL Codes fügt man über phpMyAdmin ein (Menüpunkt SQL)
Der erste SQL Code installiert die Datenbank, über den zweiten kann man jeweils einen User mit Password und Email anlegen

INSERT INTO users SET UserName='Name', UserPass=MD5('Password'), 
UserMail='Email'

Dann kommen die PHP-Dateien, die alle in dem gleichen Verzeichnis wie die zu schützenden Seiten untergebracht werden:

login.php ist die Login-Seite. Die muss man nicht direkt verlinken, da sie automatisch verlinkt wird, wenn jemand nicht eingeloggt ist

den Code von soll-geschuetzt-werden.php fügt man an den Anfang der Seite(n) ein, die man schützen möchte, diese sollten auch die Endung .php aufweisen (z.B. download.php)

logout.php braucht man in diesem Fall nicht

in sessionhelpers.inc.php müssen noch die Zugangsdaten für MySQL eingetragen werden, Zeile 4 und 5:

$con= mysql_connect('Servername','Benutzer','Passwort') or die(mysql_error()); 
mysql_select_db('Datenbank',$con) or die(mysql_error());

und wenn alles funktioniert, kann man sich daran machen, das Script weiter anzupassen

und wenn irgendwelche Unklarheiten bestehen bei der Installation, frag ruhig nach :)

01.10.2005 09:36 | geändert: 01.10.2005 09:37

9 rockford

Hi Jörg,

Das sieht schon sehr vielversprechend aus. Vielen Dank (!)


Ich habs jetzt soweit eingebaut, wie beschrieben. Aber:

Wenn ich die zu schützende Seite aufrufe, kommt folgende Meldung:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /srv/www/htdocs/web27/html/test/index.php:7) in /srv/www/htdocs/web27/html/test/index.php on line 66

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /srv/www/htdocs/web27/html/test/index.php:7) in /srv/www/htdocs/web27/html/test/index.php on line 66
Sie sind nicht eingeloggt.


Unter der Meldung wird dann der eigentliche Inhalt angezeigt. stimmt scheinbar etwas nicht. Hast Du ne Idee, was das sein kann?


Gruß

Dario

01.10.2005 12:26

10 Jörg Kruse

Der PHP Code muss in die allererste Zeile, bevor etwas anderes ausgegeben wird. Auch eine Leerzeile am Anfang kann derartige Fehlermeldungen erzeugen

01.10.2005 13:02