BUG+FIX: error generated in _cm_pre_updateRecord gives 'blank' screen [message #657] |
Fri, 23 February 2007 11:54 |
janalwin
Messages: 17 Registered: May 2006 Location: Groningen
|
Junior Member |
|
|
When you generate an error in _cm_pre_updateRecord function ($this->errors['xx']=...), you will get the updatescreen back but without any data.
The problem is that the fieldarray data is lost when the fieldarray is merged with the non-existant updatearray in function updateRecord
$fieldarray = array_merge($fieldarray, $updatearray);
I put this at the beginning of the updateRecord function:
$updatearray=Array();
This solves the problem, probably because $updateArray is now an array. Previously it was nothing, so PHP probably defaulted to a string.
I use PHP 5.2.0 on Mac OS X 10.4
|
|
|
Re: BUG+FIX: error generated in _cm_pre_updateRecord gives 'blank' screen [message #658 is a reply to message #657] |
Fri, 23 February 2007 12:12 |
AJM
Messages: 2369 Registered: April 2006 Location: Surrey, UK
|
Senior Member |
|
|
Thanks for spotting that. I will include the fix in the next release.
This problem did not exist in PHP 4 as the array_merge() function would automatically cast any non-array argument to an array, but one of those dunderheads in the PHP development team decided to remove this "feature" in PHP 5. His reasoning was that if a function expects an array then giving it something which is not an array is a fault. That is the way that "proper" languages work, so PHP should be just the same.
<rant>
These ideas of purity and strictness are a real PITA. PHP used to be very forgiving by automatically changing a variable's type to suit the circumstances, but now code that worked in PHP 4 does not work in PHP 5. Is it any wonder that the take-up of PHP 5 has been so slow when there have been so many unnecessary breakages in backwards compatibility.
</rant>
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
|
|
|