PHP Update to 8.2
Next month (Tuesday, May 6, 2025 from 6-8 AM), the SMPH REDCap Production server is scheduled to undergo an upgrade of the version of PHP software that supports the REDCap application, from PHP v7.4 to PHP v8.2. This upgrade is part of the essential security maintenance program that ensures the SMPH REDCap installation is current with the latest security updates.
What does this mean for me?
The new version of PHP affects some types of logic used within REDCap projects, which means it will behave differently from logic in the current version.
This affects how the new PHP version treats empty or null fields when comparison operators (<, >) are included in logic statements. This may, in some cases, affect the sending out of communications from a REDCap project, the results within reports or some @CALCTEXT calculations when a referenced field may have a blank value (empty).
Records that were previously not included by existing logic, may in some circumstances, now be triggered to be sent out for communications from the REDCap project.
Where could my logic be impacted?
|
- Automated Survey Invitations (ASIs) which send out emails/Mosio text messages
- Alerts and Notifications which send out emails/Mosio text messages
- Reports
- @CALCTEXT calculations when a referenced field may have a blank value (empty)
|
Will my project(s) be impacted?
|
Projects may be affected if they include ALL 3 of the following:
- Use logic in ASIs, Alerts, Reports or using @CALCTEXT calculations AND
- The logic/calculation uses comparison operators such as > (greater than) or < (less than) AND
- The logic/calculation does not include a statement/s to check if a field is empty or null (blank) such as [variable] <> “”
Example Affected:
- [variable]>2
- [variable]<=2
- [variable]<>2
- More complex logic which includes comparisons as above
- E.g. [variable_a]=1 and [variable_b]>17
- @CALCTEXT(if([variable]<-2, "True", "False"))
- NOTE: affected if [variable] field is empty – has no value
Not affected:
- [variable]>2 and [variable] <> “”
- [variable]<=2 and [variable] <> “”
- [variable]<>2 and [variable] <> “”
- [variable_a]=1 and [variable_b]>17 and [variable_a] <> “” and [variable_b] <> “”
- @CALCTEXT(if([variable]<-2 and [variable]<>””, "True", "False"))
|
Action Required!
|
- Review your project: If you are responsible for the management, design, build or maintenance of your REDCap project, review your project as soon as possible.
- Check for comparisons < and > and whether empty or null (blank fields) have been excluded in ASIs, Alerts, Reports and @CALCTEXT fields. If your project’s logic uses comparisons and does not explicitly check if a field is empty or null (blank), update the logic to exclude empty or null (blank) values by adding and [variable] <> “” to the logic.
- Check for multiple variables. You need to have explicitly excluded empty/null for every variable in your logic statement.
- Test any changes you make. We recommend creating reports using your current and then updated logic to allow you to see what records meet the different criteria. (See the following 2 documents for testing and update recommendations.)
|
Alerts and ASIs - Checking Logic Syntax
Checking @CALCTEXT Calculations