Mailinglisten-Archive |
Aloha, > From: Roland Tapken <ml at lalamuhkuh.de>@phpbar.de on 20.08.2004 01:47 ZE2 > Ich will gerade mit PHP eine kleine Passworteingabe basteln... aber > dummerweise zeigt PHP die Eingaben sofort an. Kann ich das irgendwie > verhindern? Hier der Code: > if(!defined("STDIN")) > define("STDIN", fopen('php://stdin','r')); > $password = trim(fread(STDIN, 1024)); Das Problem liegt nicht daran, daß PHP die Eingabe anzeigt, sondern daß das Terminal deine Eingabe anzeigt. D.h. wenn du das Passwort eintippst, dann wird das (wie alle anderen Eingaben auch) vom Terminal angezeigt. PHP liest zwar die Eingabe über STDIN, schieb sie aber nicht wieder auf STDOUT raus. 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. Dazu müsstest du aber auch dein Script noch etwas ändern, so daß die Eingabe in einer Schleife Zeichenweise (Ende bei \n) und nicht Zeilenweise gelesen wird. Grüße, Mathias
php::bar PHP Wiki - Listenarchive