How can I collect data through a drupal form?
I'd let users login first to prevent spam. However you could simplify the registration&amp;login process by having users authenticate with OpenID (Google, facebook ect.) Similar as what stackexchange offers. 

This should get you started: https://drupal.org/project/openid_connect