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:
@@ -220,7 +220,12 @@ class db_verify
|
||||
continue;
|
||||
}
|
||||
|
||||
// echo "<h4>RAW</h4>";
|
||||
// print_a($rawSqlData);
|
||||
|
||||
$sqlDataArr = $this->getTables($rawSqlData);
|
||||
// echo "<h4>PARSED</h4>";
|
||||
// print_a($sqlDataArr);
|
||||
|
||||
$fileFieldData = $this->getFields($this->tables[$selection]['data'][$key]);
|
||||
$sqlFieldData = $this->getFields($sqlDataArr['data'][0]);
|
||||
@@ -737,15 +742,17 @@ class db_verify
|
||||
$ret = array();
|
||||
|
||||
$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 (?: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);
|
||||
|
||||
|
||||
|
||||
|
||||
$tables = array();
|
||||
|
||||
foreach($match[1] as $c=>$k)
|
||||
@@ -790,7 +797,14 @@ class db_verify
|
||||
$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 = "/^\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 />";
|
||||
|
||||
|
Reference in New Issue
Block a user