-----Original Message-----
From: Robb Kerr [mailto:rkerr.news@xxxxxxxxxxxxxxxxx] Sent: 05 May 2005 00:29
To: php-general@xxxxxxxxxxxxx
Subject: Tracking what has been changed
Here's the scenario...
I am building a site in which users will be able to create and then later edit personal information. When they edit their information, I need to keep track of what was changed so that I can inform via email a person to approve the changes. Here's the flow I'm considering...
When an UPDATE page is loaded, I build an array like...
$fields = array("table.field1" => value, "table.field2" => value, "table.field3" => value)
I then plan to save this array to a SESSION variable. Then, when the form is posted I save the new form contents to another SESSION variable. Then I compare the two arrays and save the names of the fields changed to an array saved in a third SESSION variable. Finally, when I build the email, I can parse the changed fields array to inform the person who must approve the changes.
First, does anyone have a suggestion of a better way to do this?
cron job a script for the emails... just in case you have some fool(s) trying to make 100's of updates per minute.
store the potential changes to an "UPDATE" table or something similar. admin can then commit the change by updating these proposed changes or just dump them from the table.
[EDIT] I see that you're doing this below. Nice.
-------------------------- How long do you expect people to take to approve the changes? What happens if they don't approve them? What if they are on holiday? What if someone changes the data, then someone else makes another change, then the person who approves them approves the first change?
Your problem, not mine. ;) Seriously those are good questions, but I'm not going to make policy decisions for you / your company. Your question about transactions is interesting though... do you mean you have multiple users that can change the same information?
I would recommend storing the change information in a db. Say you have a table t_personal_info
Id firstName surName Telephonenumber dateUpdated
You can then have another table t_personal_info_pending
With an additional field changeid (to handle multiple changes to the
same record)
With the same fields. When someone approves a change, update t_personal_info with the change and delete the record from t_personal_info_pending
---------------------------- Second, I can't seem to save an array to a SESSION variable. I build the array in a local variable and then set the SESSION variable equal to it. When I recall the SESSION varialbe, it's contents is "Array". Then, when I print_r() the SESSION variable, I still get "Array" as the contents. What's up?
I doubt that references are the issue, but if they are you can do this: $_SESSION['local'] = &$local;
Are you possibly emptying out the $local array some place? Or are you emptying out the $_SESSION anywhere? Heck, are you even sure that you're using the same session from request to request? Or perhaps the process you use to build the $local and / or $_SESSION['local'] is flawed and not really building anything.
Thanx in advance for any help.
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php