Mailinglisten-Archive |
Aloha, > From: Roland Tapken <ml at lalamuhkuh.de>@phpbar.de on 20.08.2004 13:54 ZE2 > > Was man dagegen tun kann, ist vom verwendeten Betriebssystem abhängig. > > Unter Linux kann man das Terminal vor der Eingabe in einen > > No-Echo-Modus schalten, so daß keine Ausgaben erfolgen und dann per > > PHP ein * für jedes Zeichen ausgeben. > > Hinterher wieder Echomodus einschalten. > Ok, weiß jemand wie das (unter Linux) geht :)? mit etwas googeln und kurzem Test: #!/usr/bin/php4 -q <? $sTermconfig = `stty -g`; `stty -echo`; echo "Bitte Passwort eingeben:\n"; $rF = fopen('php://stdin', 'r'); $sPasswort = ''; while ( false !== ( $sZeichen = fgetc($rF) ) ) { if ( $sZeichen == "\n" ) { break; } $sPasswort .= $sZeichen; echo '*';# tut hier nicht wirklich mit der Zeichen- flush(); # weisen Ausgabe der Sterne :-// } echo "\nDas Passwort ist: $sPasswort\n"; `stty $sTermconfig`; ?> man beachte, daß mit den ` (genannt Backticks) das zu- grundelegende Betriebssystemkommando ausgeführt wird und die Ausgabe dessen zurückgegeben wird. Warum auch immer klappt das mit der Zeichenweise Ausgabe der Sterne NICHT - trotz flush() *grumpf* Sachdienliche Hinweise werden gerne noch entgegengenommen. Grüße, Mathias
php::bar PHP Wiki - Listenarchive