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(); $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."); }