# Zeitlich begrenzter Link(Download)



## wtamino (11. Juli 2008)

Hallo Zusammen

Ich bin auf der Suche nach einem Codesnipsel der mir ermöglicht eine E-Mail mit einem generiertem Link an einen Kunden zu senden. Dieser Link soll aber nur z.b 10 Studen funktionieren...
Möglich wäre auch eine bestimmte Anzahl von Downloadversuchen...

Ich weiß schon wie man eine e-mail verschickt oder einen Download realisieren kann.
Mein Problem ist eher das mit dem Link erstellen und Zeit begrenzen.

Bin gespannt ob mir einer bei meinem Problem helfen kann.

Danke.


----------



## Kaiser206 (11. Juli 2008)

Nun, das ist relativ einfach.

Du erstellst eine Datenbank(MySQL) mit 4 Spalten:

Zeit;Hash;email;Downloadversuche

Jetzt fügst du bei jedem Sendevorgang einer email einen Eintrag ein:
<timestamp> ; 6cd32d693314c78aa2d9a7c58e35fdbb ; max@musterman.de ; 0

-<timestamp> ist das datum im unixformat
-6cd32d69...  ist ein md5 Hash der individuell für jede email anders ist( md5($text) )
-dann kommt die emailadresse
-und danach die downloadanzahl

Der Kunde kriegt dann folgenden Link:
http://www.test.de/link.php?id=6cd32d693314c78aa2d9a7c58e35fdbb

Deine Seite wertet das aus und erhöht die individuelle downloadzahl.
Wenn du willst kannst du danach alle klicks zusammenzählen.

Das gleiche kann man auch ohne MySQL machen, dann könntest du zb XML verwenden.

Reichen dir die Hinweise oder soll ich Beispielcode posten?


----------



## wtamino (14. Juli 2008)

Das wäre echt nett von dir...
 denn das mit dem md5 Hash habe ich noch nicht ganz verstanden.


----------



## Kaiser206 (14. Juli 2008)

md5() verschlüsselt eine beliebige zeichenfolge unumkehrbar in eine andere konstanter länge.

Das war jetzt nur eine spontane idee. Es kommt ganz darauf an wofür du das brauchst. Sowas wäre in bestimmten Fällen, wie zb Registrierungsbestätigungen dumm weil vorhersehbar:
http://www.deineseite.de/download.php?id=hans@wurst.de


```
<?
$nachricht = "Work at home and make serious cash. http://www.spam.com/?id=";
$email = "abc@abc.de";

$key = "wedewdw";
$hash = md5($email. $key);
mail($email, "SPAM", $nachricht . $hash);
MYSQL_EINTRAG(time(), $hash, $email, 0);
?>
```
Der Downloadlink:
http://www.spam.com/?id=1f3870be274f6c49b3e31a0c6728957f

MYSQL_EINTRAG() kannst du ja selbst implementieren... Der Downloadlink kann nun ohne das Wissen des $key nicht generiert werden. Der Downloadskript wird dann einfach die datenbank nach $id absuchen, und falls vorhanden die Zeit vergleichen und den downloadcount hochzählen. Und nicht vergessen eine bereinigung einzubauen, damits nicht zumüllt.

//EDIT:
Hab grad gemerkt das da im code ein fehler war, habs korregiert da stand $email[$i] statt $email!


----------



## wtamino (14. Juli 2008)

Na klar! Vielen Dank.


----------

