Jeder Programmierer der früher oder später eine Registration erstellen will, wird um eines nicht herum kommen: Ein Passwortgenerator. Die meisten dürften wissen, wie zufällige Zahlen generiert werden – ganz anders sieht es jedoch bei Buchstaben aus. Hier ein Beispiel mit der Funktion chr():

function password($length = 10)
{
 
	$pass = "";
 
	for ($i = 0; $i < $length; $i++) {
 
		$rand = rand(0, 1) ? rand(65, 90) : rand(97, 122);
 
		$pass .= chr($rand);
 
	}
 
	return $pass;
 
}

Was passiert genau? Beim Funktionsaufruf wird erstmal ein leerer String namens “pass” erstellt. Danach wird in einer for-Schleife Buchstaben für Buchstaben an “pass” angehängt. Dazu wird eine zufällige Zahl zwischen 65-90 oder 97-122 generiert, die wir danach an chr() übergeben. Die Funktion chr() erwartet den Indexwert eines ASCII-Zeichens. Ein weiterer Weg um ein Zufallspasswort zu generieren sieht wie folgt aus:

function password($length = 10)
{
 
	$pass = "";
 
	$char = array_merge(range("a", "z"), range("A", "Z"));
 
	for ($i = 0; $i < $length; $i++) {
 
		$rand = array_rand($char);
 
		$pass .= $char[$rand];
 
	}
 
	return $pass;
 
}

Das zweite Beispiel ist ziemlich ähnlich wie das erste. Zuerst wird ein leerer String namens "pass" erstellt. Danach werden 2 Arrays (a-z, A-Z) zu einem zusammengeführt (array_merge()). In der Schleife wird dann jeweils ein zufälliger Index des neuen grossen Arrays ausgesucht und im nächsten Schritt den Wert von ihm an "pass" angehängt. Verwendet werden unsere Funktionen übrigens folgendermassen:

$pwd = password();
/*
In $pwd befindet sich jetzt ein zufälliges Passwort.
Die Standardlänge ist, wie oben ersichtlich, 10.
Mittels Argument können wir das ganze auch selber bestimmen:
*/
$pwd = password(12);
// Jetzt befindet sich in $pwd ein Passwort mit der Länge 12.

Welches der Funktionen du verwendest ist geschmackssache und somit letztlich dir überlassen. Es empfiehlt sich aber für das Verständniss mindestens einmal beide auszuprobieren.