mirror of
https://github.com/e107inc/e107.git
synced 2025-08-04 13:47:31 +02:00
Fixes #1255 Database Verification false positive.
This commit is contained in:
@@ -219,9 +219,14 @@ class db_verify
|
|||||||
// echo "missing table: $tbl";
|
// echo "missing table: $tbl";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// echo "<h4>RAW</h4>";
|
||||||
|
// print_a($rawSqlData);
|
||||||
|
|
||||||
$sqlDataArr = $this->getTables($rawSqlData);
|
$sqlDataArr = $this->getTables($rawSqlData);
|
||||||
|
// echo "<h4>PARSED</h4>";
|
||||||
|
// print_a($sqlDataArr);
|
||||||
|
|
||||||
$fileFieldData = $this->getFields($this->tables[$selection]['data'][$key]);
|
$fileFieldData = $this->getFields($this->tables[$selection]['data'][$key]);
|
||||||
$sqlFieldData = $this->getFields($sqlDataArr['data'][0]);
|
$sqlFieldData = $this->getFields($sqlDataArr['data'][0]);
|
||||||
|
|
||||||
@@ -735,16 +740,18 @@ class db_verify
|
|||||||
}
|
}
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
|
|
||||||
$sql_data = preg_replace("#\/\*.*?\*\/#mis", '', $sql_data); // remove comments
|
$sql_data = preg_replace("#\/\*.*?\*\/#mis", '', $sql_data); // remove comments
|
||||||
|
// echo "<h4>SqlData</h4>";
|
||||||
|
// print_a($sql_data);
|
||||||
// $regex = "/CREATE TABLE `?([\w]*)`?\s*?\(([\s\w\+\-_\(\),'\. `]*)\)\s*(ENGINE|TYPE)\s*?=\s?([\w]*)[\w =]*;/i";
|
// $regex = "/CREATE TABLE `?([\w]*)`?\s*?\(([\s\w\+\-_\(\),'\. `]*)\)\s*(ENGINE|TYPE)\s*?=\s?([\w]*)[\w =]*;/i";
|
||||||
|
|
||||||
$regex = "/CREATE TABLE (?:IF NOT EXISTS )?`?([\w]*)`?\s*?\(([\s\w\+\-_\(\),'\. `]*)\)\s*(ENGINE|TYPE)\s*?=\s?([\w]*)[\w =]*;/i";
|
$regex = "/CREATE TABLE (?:IF NOT EXISTS )?`?([\w]*)`?\s*?\(([\s\w\+\-_\(\),:'\. `]*)\)\s*(ENGINE|TYPE)\s*?=\s?([\w]*)[\w =]*;/i";
|
||||||
|
|
||||||
$table = preg_match_all($regex,$sql_data,$match);
|
$table = preg_match_all($regex,$sql_data,$match);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$tables = array();
|
$tables = array();
|
||||||
|
|
||||||
@@ -790,8 +797,15 @@ class db_verify
|
|||||||
$mes = e107::getMessage();
|
$mes = e107::getMessage();
|
||||||
|
|
||||||
// $regex = "/`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*(auto_increment|default .*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\s*?\n/im";
|
// $regex = "/`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*(auto_increment|default .*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\s*?\n/im";
|
||||||
$regex = "/^\s*?`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*(auto_increment|default [\w'.-]*)?[\s]?(comment [\w\s'.-]*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\s*?\n/im";
|
$regex = "/^\s*?`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*(auto_increment|default|AUTO_INCREMENT|DEFAULT [\w'\s.\(:\)-]*)?[\s]?(comment [\w\s'.-]*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\s*?\n/im";
|
||||||
|
|
||||||
|
if(e_DEBUG)
|
||||||
|
{
|
||||||
|
// e107::getMessage()->addDebug("Regex: ".print_a($data,true));
|
||||||
|
// e107::getMessage()->addDebug("Regex: ".$regex);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// echo $regex."<br /><br />";
|
// echo $regex."<br /><br />";
|
||||||
|
|
||||||
// $regex = "/`?([\w]*)`?\s*(int|varchar|tinyint|smallint|text|char|tinyint) ?(?:\([\s]?([0-9]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(NOT NULL|NULL)?[\s]*(auto_increment|default .*)?[\s]?,/i";
|
// $regex = "/`?([\w]*)`?\s*(int|varchar|tinyint|smallint|text|char|tinyint) ?(?:\([\s]?([0-9]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(NOT NULL|NULL)?[\s]*(auto_increment|default .*)?[\s]?,/i";
|
||||||
|
Reference in New Issue
Block a user