/cgi-bin/data.lib
$datadir = "/home/friendnet/data";
sub make_safe {
$_ = shift;
s/([^\x20-\x7e])/sprintf("%%%02X", $1)/eg;
$_;
}
sub unmake_safe {
$_ = shift;
s/%([A-F0-9]{2})/chr(hex(2))/eg;
$_;
}
sub profile_load {
($username) = @_;
%profile = ();
open PROFILE, "$datadir/profiles/$username";
while (<PROFILE>) {
chomp;
($key, $value) = split(/\s*=\s*/);
$profile{$key} = unmake_safe($value);
}
return %profile;
}
sub profile_save {
($username, %profile) = @_;
open PROFILE, ">$datadir/profiles/$username";
while (($key, $value) = each %profile) {
print PROFILE "$key = ", make_safe($value), "\n";
}
close PROFILE;
}