]> wagnertech.de Git - timetracker.git/blobdiff - dbinstall.php
Fixed a critical issue with previous commit (hard-coded timestamp for testing).
[timetracker.git] / dbinstall.php
index 2b8755181f0857043d989471582ebf832dc57fc4..46fc0fc7484a94c79e28ef873f59ecc6400537cb 100755 (executable)
@@ -55,6 +55,16 @@ if ($request->isGet()) {
   // Require the configuration file with application settings.
   if (file_exists(APP_DIR."/WEB-INF/config.php")) {
     echo('WEB-INF/config.php file exists.<br>');
   // Require the configuration file with application settings.
   if (file_exists(APP_DIR."/WEB-INF/config.php")) {
     echo('WEB-INF/config.php file exists.<br>');
+
+    // Config file must start with the PHP opening tag. We are checking this because
+    // a Unicode editor may insert a byte order matk (BOM) before it. This is not good as it will
+    // spit white space before output in some situations such as in PDF reports.
+    $file = fopen(APP_DIR."/WEB-INF/config.php", "r");
+    $line = fgets($file);
+    if (strcmp("<?php\n", $line) !== 0) {
+      echo('<font color="red">Error: WEB-INF/config.php file does not start with PHP opening tag.</font><br>');
+    }
+    fclose($file);
   } else {
     echo('<font color="red">Error: WEB-INF/config.php file does not exist.</font><br>');
   }
   } else {
     echo('<font color="red">Error: WEB-INF/config.php file does not exist.</font><br>');
   }
@@ -67,6 +77,14 @@ if ($request->isGet()) {
     echo('<font color="red">Error: DSN value is not defined. Check your config.php file.</font><br>');
   }
 
     echo('<font color="red">Error: DSN value is not defined. Check your config.php file.</font><br>');
   }
 
+  // Check if PHP version is good enough.
+  $required_version = '5.2.1'; // Something in TCPDF library does not work below this one.
+  if (version_compare(phpversion(), $required_version, '>=')) {
+    echo('PHP version: '.phpversion().', good enough.<br>');
+  } else {
+    echo('<font color="red">Error: PHP version is not high enough: '.phpversion().'. Required: '.$required_version.'.</font><br>');
+  }
+
   // Depending on DSN, require either mysqli or mysql extensions.
   if (strrpos(DSN, 'mysqli://', -strlen(DSN)) !== FALSE) {
     if (extension_loaded('mysqli')) {
   // Depending on DSN, require either mysqli or mysql extensions.
   if (strrpos(DSN, 'mysqli://', -strlen(DSN)) !== FALSE) {
     if (extension_loaded('mysqli')) {
@@ -700,7 +718,7 @@ if ($_POST) {
     setChange("OPTIMIZE TABLE tt_fav_reports");
     setChange("OPTIMIZE TABLE tt_invoices");
     setChange("OPTIMIZE TABLE tt_log");
     setChange("OPTIMIZE TABLE tt_fav_reports");
     setChange("OPTIMIZE TABLE tt_invoices");
     setChange("OPTIMIZE TABLE tt_log");
-    setChange("OPTIMIZE TABLE tt_monthly_quota");
+    setChange("OPTIMIZE TABLE tt_monthly_quotas");
     setChange("OPTIMIZE TABLE tt_project_task_binds");
     setChange("OPTIMIZE TABLE tt_projects");
     setChange("OPTIMIZE TABLE tt_tasks");
     setChange("OPTIMIZE TABLE tt_project_task_binds");
     setChange("OPTIMIZE TABLE tt_projects");
     setChange("OPTIMIZE TABLE tt_tasks");