log->error( 'Not enough parameters!' . PHP_EOL . 'Argument 1: New password.' . PHP_EOL . 'Argument 2: ID or username of the user.' . PHP_EOL ) ); } $password = $argv[1]; $identifier = $argv[2]; if (is_numeric($password)) { exit($pdo->log->error('Password cannot be numbers only!')); } $field = (is_numeric($identifier) ? 'id' : 'username'); $user = $pdo->queryOneRow( sprintf( "SELECT id, username FROM users WHERE %s = %s", $field, (is_numeric($identifier) ? $identifier : $pdo->escapeString($identifier)) ) ); if ($user !== false) { $users = new Users(['Settings' => $pdo]); $hash = $users->hashPassword($password); $result = false; if ($hash !== false) { $hash = $pdo->queryExec( sprintf( 'UPDATE users SET password = %s WHERE id = %d', $hash, $user['id'] ) ); } if ($result === false || $hash === false) { $pdo->log->error('An error occured during update attempt.' . PHP_EOL); } else { $pdo->log->headerOver("Updated {$user['username']}'s password hash to: ") . $pdo->log->primary("$hash"); } } else { $pdo->log->error("Unable to find {$field} '{$identifier}' in the users. Cannot change password."); }