i looked at this through the incident that had been created where you gave us ftp access to troubleshoot directly:
it looks like the update SQL was not getting updated properly, it is still referencing the user Level post and using that for the user ID
this code:
$updateSQL = sprintf("UPDATE visitors SET VisitorPassword=%s, VisitorFirstName=%s, VisitorLastName=%s WHERE VisitorID=%s",
GetSQLValueString($_POST['VisitorPassword'], "text"), GetSQLValueString($_POST['VisitorFirstName'], "text"), GetSQLValueString($_POST['VisitorLastName'], "text"), GetSQLValueString($_POST['userLevel'], "int"), GetSQLValueString($_POST['VisitorID'], "int"));
should have been:
$updateSQL = sprintf("UPDATE visitors SET VisitorPassword=%s, VisitorFirstName=%s, VisitorLastName=%s WHERE VisitorID=%s",
GetSQLValueString($_POST['VisitorPassword'], "text"), GetSQLValueString($_POST['VisitorFirstName'], "text"), GetSQLValueString($_POST['VisitorLastName'], "text"), GetSQLValueString($_POST['VisitorID'], "int"));
i fixed it in the visitors_Profile.php page for you and it is now updating.