-
Notifications
You must be signed in to change notification settings - Fork 0
PHP stdin
Hunter Wu edited this page Jan 16, 2019
·
1 revision
<?php
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 str_repeat("*", mb_strlen($password)), "\n";
return $password;
}
}
function prompt($prompt = "Please input:")
{
echo $prompt;
$handle = fopen("php://stdin", "r");
$line = fgets($handle);
return trim($line);
}
?>
$email = prompt("Your email: ");
$password = prompt_silent("Your password: ");