Skip to content
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: ");
Clone this wiki locally