It sounds a bit difficult to do all this without a database, but it sounds like you could create your PHP file to take two pieces of input:
1) a unique identifier to tell you which user is doing the clicking
2) something to indicate the url you want to redirect them to.
I can't think of any exact risks you might encounter here, but I would probably try to set up your system so that instead of providing an actual email address and an actual url to your page, you provide some kind of unique identifier instead. I have this vague idea that you should conceal your email addresses and urls.
For example, your email could contain this link:
< a href="http://yourdomain.com/track.php?u=some_user_id&s=some_url_id
Then in your PHP file track.php you could do something like this:
<?php
// you should probably add some validation to these to make sure they are in fact
// identifiers and not some kind of hack nonsense
$user_id = isset($_GET['u']) ? $_GET['u'] : NULL;
$site_id = isset($_GET['s']) ? $_GET['s'] : NULL;
// TODO: work out some way to connect $user_id to a user and $site_id to a site for now, I'll just use arrays as an example:
$users = array(
1 => 'user1@domain1.com',
2 => 'user2@domain2.com',
3 => 'user3@domain3.com'
);
$sites = array(
1 => 'www.google.com',
2 => 'www.flashmog.net',
3 => 'www.myplan.com'
);
// look up the user:
$user_who_clicked = $users[$user_id];
// TODO: write some code to "track" this user. Personally, I think a database would be quite handy for this
// look up the site to be visited
$site_to_visit = $sites[$site_id];
// TODO: track some site stats here?
// redirect the user to the site:
header('Location: http://' . $site_to_visit);
exit();
?>