9 EKİM 2008, PERŞEMBE
Komut Satırı ile Parola İstemi PHP
Bir komut satırı aracı benim web app yardım etmek için yazıyorum. Servise bağlanmak için bir şifre gerekiyor. Komut dosyası bir parola komut satırı bağımsız değişken olarak geçmek zorunda kalmayayım istemi göstermek istiyorum.
Bu çok kolay, ama bunu yazılı olarak ekrana şifre echo için değil istiyorum. Nasıl PHP ile bunu yapabilir miyim?
Bonus saf PHP (system('stty')
) ve *
ile karakterleri değiştirmek için puan.
DÜZENLEME:
Komut unıx gibi bir sistemde (linux veya mac) çalışır. Script PHP ile yazılmıştır ve muhtemelen öyle kalacak.
Ayrıca, kayıt için, stty
yol:
echo "Password: ";
system('stty -echo');
$password = trim(fgets(STDIN));
system('stty echo');
// add a new line since the users CR didn't echo
echo "\n";
Orada system()
aramaları için değil tercih ederim.
CEVAP
4 Kasım 2009, ÇARŞAMBA
sitepoint üzerinde bulundu.
function prompt_silent($prompt = "Enter Password:") {
if (preg_match('/^win/i', PHP_OS)) {
$vbscript = sys_get_temp_dir() . 'prompt_password.vbs';
file_put_contents(
$vbscript, 'wscript.echo(InputBox("'
. addslashes($prompt)
. '", "", "password here"))');
$command = "cscript //nologo " . escapeshellarg($vbscript);
$password = rtrim(shell_exec($command));
unlink($vbscript);
return $password;
} else {
$command = "/usr/bin/env bash -c 'echo OK'";
if (rtrim(shell_exec($command)) !== 'OK') {
trigger_error("Can't invoke bash");
return;
}
$command = "/usr/bin/env bash -c 'read -s -p \""
. addslashes($prompt)
. "\" mypassword && echo \$mypassword'";
$password = rtrim(shell_exec($command));
echo "\n";
return $password;
}
}
Bunu Paylaş:
çalıştırılacak komut satırı ile parola...
Örnekte bir DVD linux komut satırı csv...
Komut istemi muayene dosyasını yükleme...
Komut satırı ile yönlendirmeleri takip...
Grep ve XML Komut Satırı İşleme için S...