23.4 Passwörter einlesen

Problem

Sie müssen einen String von der Kommandozeile lesen, so dass er beim Eingeben nicht wieder ausgegeben wird, beispielsweise beim Eingeben von Passwörtern.

Lösung

Unter Unix verwenden Sie /bin/stty, um das Echo von eingetippten Zeichen ein- oder auszuschalten:

// Das Echo abschalten.
`/bin/stty -echo`;

// Passwort lesen.
$password = readline();

// Das Echo wieder einschalten.
`/bin/stty echo`;

Unter Windows verwenden Sie w32api_register_function( ), um _getch( ) von msvcrt.dll zu importieren:

// Die W32api-Erweiterung laden und _getch() registrieren. dl('php_w32api.dll'); w32api_register_function('msvcrt.dll','_getch','int'); while(true) { // Ein Zeichen von der Tastatur holen. $c = chr(_getch()); if ( "\r" == $c || "\n" ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.