Tôi đã dành vài giờ cố gắng tìm một phương tiện viết một lời nhắc mật khẩu nền tảng chéo trong php mà giấu mật khẩu được người dùng nhập vào. Trong khi điều này có thể dễ dàng thực hiện trong môi trường Unix thông qua việc sử dụng stty -echo, tôi đã thử các phương thức khác nhau của các cuộc gọi passthru() và system() để làm cho các cửa sổ làm điều tương tự để không có kết quả.Có thực sự không thể viết một lời nhắc mật khẩu php cli mà giấu mật khẩu trong cửa sổ?
Tôi đã thử:
passthru('set /p pass=Password: ');
system('echo %pass% > out.txt');
$pass = file_get_contents('out.txt', 'r');
Điều này dường như treo trên passthru ('set/p vượt qua = Mật khẩu:'); dòng mà không cho phép tôi nhập bất kỳ văn bản nào và phải bị giết bằng Ctrl-c.
Tôi cũng đã thử các phương pháp khác nhau của fgetc và fgets và in các ký tự backspace để ẩn đầu vào vì thao tác này hoạt động ở các ngôn ngữ khác. Tuy nhiên, PHP không xuất hiện để có thể tương tác với văn bản trước khi trở về vận chuyển.
Tôi thực sự muốn tìm một cách để thực hiện công việc này, đây có phải là một nhiệm vụ không thể hoặc là điều này có thể được thực hiện? Lưu ý rằng tôi biết rằng tôi có thể bọc tập lệnh php trong một tập tin thực thi và chuyển mật khẩu như một đối số dòng lệnh, nhưng điều đó không có tác dụng đối với tôi trong trường hợp này.
Tôi nghĩ rằng anh ấy đang tìm kiếm sự hỗ trợ của Windows không hỗ trợ. –
Ngữ cảnh là gì? Câu trả lời rõ ràng sẽ là sử dụng một hộp văn bản với mật khẩu echo, nhưng dường như bạn - những gì - nhắc đến một giao diện điều khiển trên máy chủ? – dkretz
@doof: Vâng, OP cho biết anh ta đang chạy một tập lệnh CLI. Anh ta không nói riêng Windows, nhưng anh ta đã nói "batch file" là giao diện Windows. –