FMS with PHP Enable Record Data Pre-validation Rejects All Valid Dates
OS X or Windows
If you enable record data pre-validation on FMS and choose strict data type 4-digit year date for the field validation it will reject all valid dates when submitting a date through a web form.
1. Turn on enable record data pre-validation on FMS.
2. Check the box for strict data type 4-digit year date for the date field in the database.
3. Create a web form with PHP that will submit a date field to the database. When you edit the record, make sure the code uses the following code sample to force the record pre-validation to run on the web server before the data is committed to the database and the code is executed:
$result = $edit->validate();
Then execute the request.
If the date is correct, such as 8/7/2012 it should update the records correctly. If the date is incorrect, such as 2/31/2010, it should throw an error because that is not a valid date.
No matter what date you use, it throws an error. This has been a known problem with pre-validation since FileMaker Server 10 and it is still present in FileMaker Server 12!
When I trap for errors it returns error # 4 for the date field:
Number of Errors: 1
Field Name: Date, Error Code: 4, Value: 8/7/2012
As you can see, 8/7/2012 is a valid date!
There is no work around for this bug. You should pre-validate any data entry using PHP rather than relying upon FMS.