1#!/usr/local/bin/php 2<?php 3 chdir(__DIR__); 4 require("../libraries/banshee.php"); 5 require("../libraries/security.php"); 6 7 error_reporting(E_ALL & ~E_NOTICE); 8 9 $db = new MySQLi_connection(DB_HOSTNAME, DB_DATABASE, DB_USERNAME, DB_PASSWORD); 10 if ($db->connected == false) { 11 exit("Internal error: database not available.\n"); 12 } 13 14 if (count($argv) <= 1) { 15 exit("Usage: ".$argv[0]." <username> [-t(test)]\n"); 16 } 17 $username = $argv[1]; 18 $test = ($argv[2] === "-t"); 19 20 /* Check username 21 */ 22 if ($test == false) { 23 $query = "select count(*) as count from users where username=%s"; 24 if (($result = $db->execute($query, $username)) === false) { 25 exit("Error while checking username.\n"); 26 } 27 if ($result[0]["count"] == 0) { 28 exit("User ".$username." not found.\n"); 29 } 30 } 31 32 do { 33 print "Enter password: "; 34 system("/bin/stty -echo"); 35 $password = trim(fgets(STDIN)); 36 system("/bin/stty echo"); 37 print "\n"; 38 } while ($password == ""); 39 40 $password = hash_password($password, $username); 41 42 if ($test == false) { 43 $query = "update users set password=%s where username=%s"; 44 if ($db->query($query, $password, $username) === false) { 45 exit("Database error while setting password.\n"); 46 } 47 } else { 48 printf("Password: %s\n", $password); 49 } 50?> 51