Do you think your users would be willing to type in their zip code? If so, you can eliminate the Google Map API entirely and just query a mySQL table to get their latitude and longitude. I found a few free zip code tables (using google) that had lat, lon values in them. Well, actually they were .csv files, but mySQL can import them just fine.
Using PHP, you can display the users within a given radius like this. Modify this as you wish.
<?
// Define your parameters. Usually, you'd get these from a db or passed in from a form.
$zip = "80233";
$distance = 10; // In miles
// Open up a connection to the poc database
$dbh = mysql_connect ("localhost", "zipcodeDB", "YourDBPassword");
$db = mysql_select_db ("zipcodeDB", $dbh);
// Get the latitude and longitude of the zipcode that was passed
$query = "SELECT * FROM zipcodes WHERE zip=$zip LIMIT 1";
$result = mysql_query($query);
$row = mysql_fetch_object($result);
$knownLat = $row->latitude;
$knownLon = $row->longitude;
// Get a range of latitudes and longitudes to limit the search by
// so we don't have to search the entire zipcodes table
$latRange = $distance / 69.0499;
$longRange = $distance / (69.0499 * COS(deg2rad($knownLat)));
$latMinRange = $knownLat - $latRange;
$latMaxRange = $knownLat + $latRange;
$longMinRange = $knownLon - $longRange;
$longMaxRange = $knownLon + $longRange;
// Get all of the users within the passed distance
$query = "SELECT * FROM users
JOIN zipcodes ON users.zip=zipcodes.zip
AND ((latitude >= $latMinRange AND latitude <= $latMaxRange AND longitude >= $longMinRange AND longitude <= $longMaxRange) AND
((2*3960*ASIN(SQRT(POWER(SIN((RADIANS($knownLat-latitude))/2),2)+COS(RADIANS(latitude))*COS(RADIANS($knownLat))*POWER(SIN((RADIANS($knownLon-longitude))/2),2))))) < $distance)";
$result = mysql_query($query);
// Display the users that are within the set distance
while($row = mysql_fetch_object($result)) {
echo $row->UserName . "<br>";
}
// Close the database
mysql_close($dbh);
exit;
?>