|

Themen:

Token erzeugen

Einen Generator von Zufallszahlen (genauer eine Wurst aus Zahlen und Buchstaben) benötigt man durchaus häufiger. Immer dann wenn man den Aufruf einer Funktion, einer Seite oder den Ablauf eines Programmes nur in einem bestimmten Moment, einer bestimmten Person, ohne ein Login oder nur temporär ermöglichen möchte ist ein Token das Mittel der Wahl. Und ein Token besteht eben (wie oben beschrieben) aus einer Wurst aus Zahlen und Buchstaben.

Ich benötige einen Token hauptsächlich in meinem Projekt ERWM. Dort wird regelmäßige eine Mail an die Veranstalter von Rennen versand. In dieser Mail ist ein Link enthalten, über den die Veranstalter die Ergebnisse des Rennens eintragen können. Damit als so ein Klick auf den Link einem bestimmten Rennen zugewiesen werden kann, erzeuge ich einen Token und der wiederum wird in der Datenbank mit dem Link verknüpft. Ein solcher Link sieht dann so aus:

http://erwm.de/index.php/ergebnisse/?token=ACDEHJNQRSTUVabcdfgijknopqrstuvwxz024689

Aber wie erzeugt man eine solche Kolonne am besten? Das obige Beispiel zeigt eigentlich eine ziemlich doofe Kolonne. Die Zahlen sind nicht wirklich schön durchgemischt und entsprechend wirkt das ganze nicht so sicher wie es sein sollte. Mit folgendem Quelltext erzielt man wesentlich bessere Ergebnisse:

<?php
 function token ($l, $c = 'ABCDEFGHIJLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678910') {
 for ($s = '', $cl = strlen($c)-1, $i = 0; $i < $l; $s .= $c[mt_rand(0, $cl)], ++$i);
 return $s;
 }

echo token(40);

?>

Zur Erklärung: Es wird die Funktion Token erzeugt, Diese Funktion enthält in der Variable $c die Zeichen die für das Token genutzt werden sollen. Hier könnte man bei Bedarf noch Sonderzeichen aufnehmen oder eben nur Zahlen oder nur Buchstaben zu lassen. Wie man möchte. Die Variable $l legt fest wie viele Zeichen lang der Token sein wird. Anschließend startet eine Schleife die eben $l mal durchläuft und dabei zufällig ein Zeichen aus $c holt und $s hinzufügt. $s wird dann am Ende der Schleife ausgegeben.

Die Funktion kommt (wie bei Funktionen üblich) an in den Kopf der PHP Datei. Der Token kann dann beliebig über token () ausgegeben werden. In Klammern kommt dann der Wert der für $l benötigt wird. Natürlich kann man den Token auch gleich in eine neue Variableschreiben zum Beispiel

$linktoken = token(20);

 


Eine Antwort

  1. […] zusammengesetzt und dann versandt. Die Empfängerinformationen kommen aus einer Datenbank, ein Token wird erzeugt und einem Link angehängt und so weiter und sofort. Und am Ende soll das ganze […]