MD5 запись в Mysql...?
Используя такой код $query = "INSERT INTO $userstable VALUES('$name','$email', '$preference')"; вы должны быть уверены, что первые три поля таблицы $usertable должны быть name, email и preference, остальные должны иметь значения по умолчанию. Это во-первых. Во-вторых - плохая практика писать запросы со вставкой переменных прямо в строку запроса (почитайте про SQL-инъекции). В третьих, по всей видимости - вместо $email = md5($params['password']) ожидается $password = md5($params['password']). В четвертых - как пароль может сохранится, если вы его не вставляете в базу вообще?
полный Код формы и обработчика  в студию и что приходит в запрос туда же