Hi all,
$email = $_REQUEST['email'] ;
$topic = $_REQUEST['topic'] ;
$message = $_REQUEST['message'] ;
Gah! Security risk there, if you are getting these values from a form submission, use the $_POST global, and sanitise the data, especially if your using the user generated data directly INTO a mail() function, this could result in abuse of mail headers being done.
Turn into this:-
$email = $_POST['email']; <-- try an sanities this so that only valid email addresses are sent :)
$topic = $_POST['topic'];
$message = $_POST['message'];
$_REQUEST global can be useful, but not in the public domain, always stick to the way that the data is gathered; $_POST for form submissions - though you can do $_GET, but that's another lesson another day; and $_GET for 'getting' data from URL values, very useful.
As a rule, any user submitted data needs to be sanitised before it is used within an function that can end up in a data base or email, NEVER trust the user, always think about security, diligent coding does pay off.
There are plenty of little tutorials out there for this, and if you get stuck you can always post/ask questions here, and there are lots of people who can advise or suggest ways of improving your code.
Cheers,
MRb