I'm glad you solved your issue. I didn't know that password() was a mysql function , so of course it would need to be within your query as I now know what it does. However I doubt that this would have worked:
$sql = "insert into members
(firstname,lastname,username,password) values
(\"$firstname\",\"$lastname\",\"username\"
password(\$password\") )";
this:
$sql = "insert into members
(firstname,lastname,username,password) values
(\"$firstname\",\"$lastname\",\"username\"
password(\"$password\"))";
or the following would have worked, but not your original query hence your original issue.
$sql = "insert into members
(firstname,lastname,username,password) values
(\"$firstname\",\"$lastname\",\"username\"
password('$password'))";
Take care.