Installer Class missing array variable check
authorAp.Muthu <apmuthu@usa.net>
Mon, 8 Apr 2013 17:59:19 +0000 (8 23:29 +0530)
committerbradymiller <bradymiller@users.sourceforge.net>
Sat, 13 Apr 2013 09:17:15 +0000 (13 02:17 -0700)
Fixes:
PHP Warning:  substr() expects parameter 1 to be string, array given in /var/www/openemr/library/classes/Installer.class.php on line 311, referer: http://openemr.example.com/setup.php?site=default

Explained in Forum Post:
https://sourceforge.net/p/openemr/discussion/202506/thread/848c1507/

library/classes/Installer.class.php

index 74cc57d..a227905 100644 (file)
@@ -308,7 +308,7 @@ $config = 1; /////////////
     foreach ($GLOBALS_METADATA as $grpname => $grparr) {
       foreach ($grparr as $fldid => $fldarr) {
         list($fldname, $fldtype, $flddef, $flddesc) = $fldarr;
-        if (substr($fldtype, 0, 2) !== 'm_') {
+        if (is_array($fldtype) || substr($fldtype, 0, 2) !== 'm_') {
           $res = $this->execute_sql("SELECT count(*) AS count FROM globals WHERE gl_name = '$fldid'");
           $row = @mysql_fetch_array($res, MYSQL_ASSOC);
           if (empty($row['count'])) {