/
var
/
www
/
doncode.com.ua
/
www
/
zed
/
/var/www/doncode.com.ua/www/zed
mkdir
upload
Name
Size
Mode
Actions
css/
-
0755
rm
js/
-
0755
rm
.htaccess
126
0644
edit
dl
rm
difference.php
35424
0644
edit
dl
rm
Edit:
/var/www/doncode.com.ua/www/zed/difference.php
(35424B)
<?php ini_set("display_errors","1"); error_reporting(E_ALL && ~E_NOTICE); session_start(); require_once '../obmen/include/config.php'; require_once '../obmen/include/func_mysql.php'; require_once '../obmen/include/func.php'; if(!isset($_SESSION['id_user']) or $_SESSION['id_user']!=1 and $_SESSION['id_user']!=16 and $_SESSION['id_user']!=2){ exit('Не достаточно прав для доступа к данной странице id_user='.$_SESSION['id_user'].' login='.$_SESSION['login'].' sess_id='.session_id()); } if(isset($_POST['setv'])){ // Установка версии //file_get_contents("https://g.doncode.com/get_ver.php?cmd=setv&val=".urlencode($_POST['setv'])); } if($_GET['cmd']=='sendsql'){ //sendsql $url = "https://{$_GET['rx']}/dl/fileinfo.php?cmd=sendsql&sql=".urlencode($_POST['sql']); echo "-- $url \r\n"; echo file_get_contents($url); exit; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="utf-8"> <meta http-equiv="content-language" content="ru"> <link rel="stylesheet" type="text/css" media="all" href="css/chages.css" /> <script type="text/javascript" src="js/jquery-1.6.1.min.js"></script> <!-- link rel="stylesheet" type="text/css" media="all" href="css/jquery-impromptu.3.1.css" / --> <!-- script type="text/javascript" src="js/jquery-impromptu.3.1.min.js"></script --> <!-- <script type="text/javascript" src="js/interface.js"></script> <link rel="stylesheet" type="text/css" media="all" href="css/popup.css" /> --> <link rel="stylesheet" type="text/css" media="all" href="css/popup2.css" /> <script> function show_notscan(){ ip = $("#select_tx :selected").val(); window.location.href="?cmd=show_notscan&ip="+ip; } function select_next(){ var iselected = false; $('#rx_select option').each(function(){ if(iselected){ this.selected = true; return false; } if(this.selected){ iselected = true; } }); } function select_back(){ var iselected = 0; $('#rx_select option').each(function(){ if(this.selected){ iselected--; //alert(iselected); if(iselected>=0){ $('#rx_select option:eq('+iselected+')').attr("selected", "selected"); } return false; } iselected++ }); } </script> </head> <body> <div id="popup_name" class="popup_block" style="display:fixed;left:30px;top:30px"> <h2>SQL</h2> <p>Любой текст,что душе угодно</p> </div> <!-- подсветка синтаксиса --> <link rel="stylesheet" type="text/css" media="all" href="css/SyntaxHighlighter.css" /> <script language="javascript" src="js/syntaxhighlighter/shCore.js"></script> <script language="javascript" src="js/syntaxhighlighter/shBrushSql.js"></script> <script language="javascript" src="js/syntaxhighlighter/shBrushXml.js"></script> <script language="javascript"> dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf'; dp.SyntaxHighlighter.HighlightAll('code'); </script> <?php $sql = "SELECT `dcc`.`gid`,`dcc`.`taxi_name`,`dcc`.`host`,`dcc`.`port`,`dcc`.`ver`,`city_`.`city_name_ru` FROM `doncode_dcc` as dcc JOIN `city_` ON `dcc`.`city_id`=`city_`.`id_city` WHERE `dcc`.`host`<>'' AND `deleted`='0' ORDER BY `city_`.`city_name_ru` LIMIT 1000"; $res = db_query("SET NAMES 'UTF8'"); $res = db_query($sql); $dcc = db_fetch($res, MYSQLI_ASSOC); //print_r($dcc); //echo "1";exit; if(is_array($dcc)){ foreach($dcc as $k=>$v ){ $servers[] = array('host'=>$v['host'],'port'=>($v['port']!=0?$v['port']:80),'name'=>$v['taxi_name'], 'city_name_ru'=>$v['city_name_ru'],'ver'=>$v['ver'],'gid'=>$v['gid'] ); } foreach($servers as $k=>$vala){ $Name[$k] = $vala['name']; $serversByName[$k] = $vala['host']; $city_name_ru[$k] = $vala['city_name_ru']; } //ksort($serversByName,SORT_REGULAR ); } /* echo $sql; echo db_error(); print_r($servers); */ if(is_array($servers)){ // echo '<br /><form method="POST" action="difference.php">Текущая версия: <input size="10" type="input" name="setv" value="'.file_get_contents("https://g.doncode.com/get_ver.php").'"> <input type="submit" value="Сохранить"></form>'; echo '<br /><form method="POST" action="difference.php">'; echo 'Эталон(TX):<br />'; echo '<select name="tx" id="select_tx" style="width:300px;">'; /* foreach($servers as $vala){ if($vala['host']==$_POST['tx']){ $selected='selected'; }elseif(!isset($_POST['tx']) && $vala['name'] == 'gorlovka.txt'){ $selected='selected'; }else{ $selected=''; } echo "<option value='{$vala['host']}' $selected>{$vala['name']} {$vala['host']}</option>"; } */ $selected=$valNAME=$valIP=''; foreach($servers as $key => $val){ if("{$val['host']}:{$val['port']}"==$_POST['tx']){ $selected='selected'; }elseif(!isset($_POST['tx']) && $val['gid'] == '68'){ $selected='selected'; }else{ $selected=''; } $nbsp =''; for($in=(35 - strlen($val['name'].' v'.$val['ver'])); $in>0; $in--){ $nbsp .=' '; } //$nbsp .=' '; $nbsp .='		 		'; $label = $val['name'] . $nbsp ;//valIP $strlen = strlen($label); if($lastcity != $val['city_name_ru'] ){ echo '<optgroup label="'.$val['city_name_ru'].'">'; } echo "<option value='{$val['host']}:{$val['port']}' $selected>{$val['name']}{$nbsp}{$val['host']}:{$val['port']}</option>\r\n"; if(isset($servers[($key+1)]) && $servers[$key]['city_name_ru'] != $servers[$key+1]['city_name_ru']){ echo '</optgroup>'; } $lastcity = $val['city_name_ru']; } echo '</select>'; echo "\r\n\r\n"; echo '<input type="button" value="исключения" onclick="show_notscan()" style="width:100px;"><br /><br />'; echo "\r\n\r\n"; /* foreach($servers as $vala){ if($vala['host']==$_POST['rx']){$selected='selected';}else{$selected='';} echo "<option value='{$vala['host']}' $selected>{$vala['name']} {$vala['host']}</option>"; }*/ echo 'Обновить(RX):<br />'; echo '<select name="rx" id="rx_select" style="width:300px">'; $selected=$valNAME=$valhost=''; foreach($servers as $key => $val){ if($lastcity != $val['city_name_ru'] ){ echo '<optgroup label="'.$val['city_name_ru'].'">'; } if($val['host'].':'.$val['port']==$_POST['rx']){$selected='selected';}else{$selected='';} echo "<option value='{$val['host']}:{$val['port']}' $selected>{$val['name']}{$nbsp}{$val['host']}:{$val['port']}</option>\r\n"; if(isset($servers[($key+1)]) && $servers[$key]['city_name_ru'] != $servers[$key+1]['city_name_ru']){ echo '</optgroup>'; } $lastcity = $val['city_name_ru']; } echo '</select>'; echo "\r\n\r\n"; echo '<input type="button" value="<" onclick="select_back()" style="width:50px;">'; echo '<input type="button" value=">" onclick="select_next()" style="width:50px;"><br /><br />'; echo '<br /><br />'; echo ' <input type="submit" name="submit" value="Сравнить файлы"> <input type="submit" name="submit" value="Сравнить базы">'; echo '</form><br/><br/>'; echo "\r\n\r\n"; } //редактрование файла исключений if(@$_REQUEST['cmd']=='show_notscan'){ $ctx1 = stream_context_create(array( 'http' => array( 'timeout' => 15 ) ) ); $notscan_url = 'https://'.$_REQUEST['host'] . "/dl/notscan.txt"; $notscan_txt = file_get_contents($notscan_url ,0,$ctx1); if($notscan_txt){ ?> <form action="https://<?php echo $_REQUEST['host'];?>/dl/fileinfo.php?cmd=save_notscan" method="POST"> Используються только относительные пути.<b>Без</b> использования <b>/</b> в начале и конце. Каждое правило с новой строки. <br/> <textarea name='txt' style='width:900px; height:500px;'><?php echo $notscan_txt; ?></textarea><br/> <input type="submit" value="сохранить"><br/> </form> <?php }else{ echo "Ошибка получения файла исключений.<br />$notscan_url "; } } if(!isset($_POST['submit'])){ exit('</body></html>'); } $t0 = microtime(true); //error_reporting(E_ALL & ~E_NOTICE); //таймаут на запросы $ctx1 = stream_context_create(array( 'http' => array( 'timeout' => 15 ) ) ); $ctx2 = stream_context_create(array( 'http' => array( 'timeout' => 15 ) ) ); if($_POST['submit']=='Сравнить файлы'){ require_once(dirname(__FILE__).'/todo_class.php'); $notscanURL = 'https://'.$_POST['tx'].'/dl/notscan.txt'; $tx_url = 'https://'.$_POST['tx'].'/dl/fileinfo.php'; $rx_url = 'https://'.$_POST['rx'].'/dl/fileinfo.php?notscanURL='.urlencode($notscanURL); $json1 = @file_get_contents($tx_url,0,$ctx1); $json2 = @file_get_contents($rx_url,0,$ctx2); if($json1 !== false){ $len1 = strlen($json1); echo "TX: <a href='{$tx_url}'>$tx_url</a><br /> Получено $len1 byte<br /><br />"; }else{ echo "TX: <a href='{$tx_url}'>$tx_url</a><br /> Ошибка получения файла c {$_POST['tx']} <br /><br />"; } if($json2 !== false){ $len2 = strlen($json2); echo "RX: <a href='{$rx_url}'>$rx_url</a><br /> Получено $len2 byte<br /><br />"; }else{ echo "RX: <a href='{$rx_url}'>$rx_url</a><br /> Ошибка получения файла c {$_POST['rx']} <br /><br />"; } echo '<br />'; /* echo $json1; echo $json2; */ if($json1 !== false && $json2 !== false){ $filesInfo1 = json_decode($json1, true); $filesInfo2 = json_decode($json2, true); } echo "TX DECODE: "; if(is_array($filesInfo1)){ echo " ok <br />"; }else{ echo " err <br />"; } echo "RX DECODE: "; if(is_array($filesInfo2)){ echo " ok <br />"; }else{ echo " err <br />"; } echo '<br />'; if(is_array($filesInfo1) && is_array($filesInfo2)){ $search_todo = new search_todo(); $search_todo->debug = 1; $search_todo->ignoreLastDate = true; echo "TX найдено ".count($filesInfo1)." элементов<br />"; echo "RX найдено ".count($filesInfo2)." элементов<br />"; //print_r($filesInfo1); //print_r($filesInfo2); echo '<br />'; echo "Поиск различий..."; echo '<pre>'; $history = $search_todo->search_difference($filesInfo1, $filesInfo2); echo '</pre>'; $count_new = count($history['new']); $count_chaged = count($history['chaged']); $count_deleded = count($history['deleded']); $count_nochaged = (count($filesInfo1)-($count_new+$count_chaged+$count_deleded)); $count_dateerr = 0; $count_sizeerr = 0; $count_datesizeerr = 0; //подсчет конфликтов foreach($history as $type => $fINFbyType){ foreach($fINFbyType as $k=>$arr){ if($arr['lastedit']<$arr['old']['lastedit'] && $arr['size']<$arr['old']['size']){ $count_datesizeerr++; }elseif($arr['lastedit']<$arr['old']['lastedit']){ $count_dateerr++; }elseif($arr['size']<$arr['old']['size']){ $count_sizeerr++; } } } echo "<input type=\"checkbox\" id=\"newbox\" checked onclick='checker(this)'> Новых $count_new<br/>"; echo "<input type=\"checkbox\" id=\"chagedbox\" checked onclick='checker(this)'> Изменили $count_chaged <br/>"; echo "<input type=\"checkbox\" id=\"delededbox\" disabled> Удалили $count_deleded <br/>"; echo "<input type=\"checkbox\" disabled> Без изменений $count_nochaged <br/><br/>"; echo "<input type=\"checkbox\" id=\"datesizeboxerr\" onclick='checker(this)' checked> Кофликты по дате и размеру $count_datesizeerr <br/>"; echo "<input type=\"checkbox\" id=\"dateboxerr\" onclick='checker(this)' checked> Кофликты по дате $count_dateerr <br/>"; echo "<input type=\"checkbox\" id=\"sizeboxerr\" onclick='checker(this)' checked> Кофликты по размеру $count_sizeerr <br/><br/>"; echo "Будет изменено <span id=\"updatecounter\"></span> файлов<br/>"; echo '<pre>'; //print_r($history); echo '</pre>'; /* echo '<table>'; echo '<tr><td><h1>Новые</h1></td></tr>'; foreach($history['new'] as $k => $f){ echo '<tr>'; echo "<td>{$f['sfname']}</td>"; echo '</tr>'; } echo '<tr><td><h1>Изменили</h1></td></tr>'; foreach($history['chaged'] as $k => $f){ echo '<tr>'; echo "<td>{$f['sfname']}</td>"; echo "<td>{$f['ышяу']}</td>"; echo '</tr>'; } echo '<tr><td><h1>Удалили</h1></td></tr>'; foreach($history['deleded'] as $k => $f){ echo '<tr>'; echo "<td>{$f['sfname']}</td>"; echo '</tr>'; } echo '</table>'; /*/ // echo '<pre>'; ///Форматирование таблицы if(isset($history) && is_array($history)){ //onsubmit="makepack(\''.$_POST['tx'].'\'); return false;" if($_POST['tx']=='192.168.1.243:80'){ $_POST['tx'] = 'doncode.com.ua:8080'; } ?> <form id="filesList" method="POST" action="https://<?php echo $_POST['tx']; ?>/dl/fileinfo.php" onsubmit="window.open('test.htm','updatesystem','width=900,height=600')" target="updatesystem"> <input type="hidden" name="cmd" value="makepack" > <?php echo '<input type="hidden" name="tx" value="'.$_POST['tx'].'" >'; echo '<input type="hidden" name="rx" value="'.$_POST['rx'].'" >'; echo '<input type="submit" value="СОЗДАТЬ АРХИВ >" >'; echo '<input type="submit" name="masssend" value="СОЗДАТЬ АРХИВ И ОТПРАВИТЬ НА МНОЖЕСТВО КОМПЛЕКСОВ >" >'; foreach($servers as $key => $val){ echo '<input type="hidden" name="ips['.$key.']" value="'.$val['host'].':'.$val['port'].'" >'; echo '<input type="hidden" name="names['.$key.']" value="'.$val['name'].'" >'; echo '<input type="hidden" name="city_name_ru['.$key.']" value="'.$val['city_name_ru'].'" >'; } echo '<table width="100%">'; //по дате $ccc = 0; echo "<tr class=\"tr_title\">"; echo '<td style="background-color:#FFF;"> </td>'; echo "<td><b>filename</b></td>"; echo "<td><b>size</b></td>"; echo "<td><b>lastedit</b></td>"; echo "<td><b>Конфликты</b></td>"; echo "</tr>\r\n"; foreach($history as $type => $fINFbyType){ //echo " $date => $x"; //print_r($fINFbyType); //по элементам списка foreach($fINFbyType as $k=>$arr){ echo "<tr class=\"tr_$type\">"; $checkbox_clases = 'filesbox '; $checkbox_clases .= "{$type}box "; if($type !='deleded' ){ $checked = 'checked'; }else{ $checked = ''; } $sign = ''; $err = ''; //поиск конфликта if($arr['lastedit']<$arr['old']['lastedit'] && $arr['size']<$arr['old']['size']){ $err = '<b>дата и размер</b>'; $checkbox_clases .= "datesizeboxerr "; }elseif($arr['lastedit']<$arr['old']['lastedit']){ $err = '<b>дата</b>'; $checkbox_clases .= "dateboxerr "; }elseif($arr['size']<$arr['old']['size']){ $err = '<b>размер</b>'; $checkbox_clases .= "sizeboxerr "; } echo "<td class=\"f_$type\"><input type=\"checkbox\" name=\"files[]\" class=\"$checkbox_clases\" id=\"fk{$k}\" value=\"{$arr['sfname']}\" $checked></td>"; if(isset($arr['sfname'])){ echo "<td>{$arr['sfname']}</td>"; }else{ echo "<td>{$arr['filename']}</td>"; } if(isset($arr['old']['size'])){ $razn = $arr['size'] - $arr['old']['size']; if($razn>0){$razn = '+'.$razn;} echo "<td>{$arr['size']}<b> $razn</b></td>"; }else{ echo "<td>{$arr['size']}</td>"; $razn = 0; } echo "<td>". date("H:i:s d-m-y",$arr['lastedit'])."</td>"; echo "<td>$err</td>"; echo "</tr>\r\n"; //echo "<script>document.getElementById('#fk{$k}').checked=false</script>"; } } //echo "</table>"; //echo "</td></tr>\r\n\r\n"; echo '</table>'; echo '</form>'; //echo '</pre>'; } } }elseif($_POST['submit']=='Сравнить базы'){ echo 'сравнение баз<br />'; $tx_url = 'https://'.$_POST['tx'].'/dl/fileinfo.php?cmd=dbinfo'; $rx_url = 'https://'.$_POST['rx'].'/dl/fileinfo.php?cmd=dbinfo'; $json1 = @file_get_contents($tx_url,0,$ctx1); $json2 = @file_get_contents($rx_url,0,$ctx2); if($json1 !== false){ $len1 = strlen($json1); echo "TX: <a href='{$tx_url}'>$tx_url</a><br /> Получено $len1 byte<br /><br />"; }else{ echo "TX: <a href='{$tx_url}'>$tx_url</a><br /> Ошибка получения файла c {$_POST['tx']} <br /><br />"; } if($json2 !== false){ $len2 = strlen($json2); echo "RX: <a href='{$rx_url}'>$rx_url</a><br /> Получено $len2 byte<br /><br />"; }else{ echo "RX: <a href='{$rx_url}'>$rx_url</a><br /> Ошибка получения файла c {$_POST['rx']} <br /><br />"; } if($json1 !== false && $json2 !== false){ $dbInfo1 = json_decode($json1, true); $dbInfo2 = json_decode($json2, true); }else{ exit; } echo "TX DECODE: "; if(is_array($dbInfo1)){ echo " ok <br />"; }else{ echo " err <br />"; } echo "RX DECODE: "; if(is_array($dbInfo2)){ echo " ok <br />"; }else{ echo " err <br />"; } echo '<br />'; //echo '<pre>'; //print_r($dbInfo1); echo '<pre>'; //print_r($dbInfo1['INDEX'][123]); //print_r($dbInfo1['CREATE']); echo '</pre>'; $TablesErrors = array(); $FieldsErrors = array(); $PoryadokErrors = array(); $ParamsErrors = array(); $IndexKeyErrors = array(); $UndefinedErrors = array(); $NoErrors = array(); foreach($dbInfo1['COLUMNS'] as $TableName=>$Fields){ //echo "$TableName<br />\r\n"; $err['table'] = $TableName; $err['field'] = ''; $err['param'] = ''; $err['txt'] = ''; $err['sql_fix'] = ''; $PoryadokInThisTable = true; //проверять порядок стобцов в данной таблицы if(!isset($dbInfo2['COLUMNS'][$TableName])){ $err['txt']= "нет данной таблицы "; $err['sql_fix'] = $dbInfo1['CREATE'][$TableName]; $TablesErrors[] = $err; }elseif($dbInfo1['CREATE'][$TableName]==$dbInfo2['CREATE'][$TableName]){ //полное совпадение //$err['txt'] = 'полное совпадение'; $NoErrors[] = $err; }else{ reset($dbInfo2['COLUMNS'][$TableName]); $befor_field = ''; foreach($Fields as $FieldName=>$field){ $err['field'] = $FieldName; $err['param'] = ''; if(!isset($dbInfo2['COLUMNS'][$TableName][$FieldName])){ $preg_sql_fix =''; preg_match("|`$FieldName` .+$|m", $dbInfo1['CREATE'][$TableName], $preg_sql_fix); $preg_sql_fix = trim($preg_sql_fix[0]); if(substr($preg_sql_fix,-1)==','){$preg_sql_fix = substr($preg_sql_fix,0, -1);} if($befor_field!=''){$AFTER = "AFTER `{$befor_field}`";}else{$AFTER='';} $err['sql_fix'] = "ALTER TABLE `$TableName` ADD $preg_sql_fix $AFTER"; $err['txt'] = "нет поля"; $FieldsErrors[] = $err; }else{ //проверять порядок стобцов в данной таблицы if($PoryadokInThisTable){ $e2key = key($dbInfo2['COLUMNS'][$TableName]); $e2val = current($dbInfo2['COLUMNS'][$TableName]); next($dbInfo2['COLUMNS'][$TableName]); if($e2key!=$FieldName){ $err['txt'] = "не соответствует порядое стобцов"; $PoryadokErrors[] = $err; $PoryadokInThisTable = false; } } foreach($field as $fieldParam=>$paramValue){ $err['param'] = $fieldParam; if($fieldParam == 'Key' && $dbInfo2['COLUMNS'][$TableName][$FieldName][$fieldParam]!=$paramValue){ if($paramValue=='PRI'){ $err['sql_fix'] = "ALTER TABLE `$TableName` ADD PRIMARY KEY ( `$FieldName` )"; }elseif($paramValue=='MUL'){ //$err['sql_fix'] = "ALTER TABLE `$TableName` ADD FULLTEXT ( `$FieldName` )"; $err['sql_fix'] = "ALTER TABLE `$TableName` ADD INDEX ( `$FieldName` )"; }elseif($paramValue=='UNI'){ $err['sql_fix'] = "ALTER TABLE `$TableName` ADD UNIQUE ( `$FieldName` )"; }else{ $err['sql_fix'] = "-- Не известный тип индекса"; } $err['txt'] = "Не хватает индекса. В эталоне <b>'{$paramValue}'</b>, в получателе <b>'{$dbInfo2['COLUMNS'][$TableName][$FieldName][$fieldParam]}'</b>"; //<pre>1:".var_export($dbInfo1['INDEX'][$TableName], true)."\r\n2:".var_export($dbInfo2['INDEX'][$TableName], true)."<pre>"; $IndexKeyErrors[] = $err; }elseif($dbInfo2['COLUMNS'][$TableName][$FieldName][$fieldParam]!=$paramValue){ //echo "<b>{$TableName}.{$FieldName}</b> - нет соответствует парамет <b>{$fieldParam}</b>. В эталоне <b>'{$paramValue}'</b>, в получателе <b>'{$dbInfo2[$TableName][$FieldName][$fieldParam]}'</b> <br />\r\n"; $preg_sql_fix =''; preg_match("|`$FieldName`.+$|m", $dbInfo1['CREATE'][$TableName], $preg_sql_fix); $preg_sql_fix = trim($preg_sql_fix[0]); if(substr($preg_sql_fix,-1)==','){$preg_sql_fix = substr($preg_sql_fix,0, -1);} if($befor_field!=''){$AFTER = "AFTER `{$befor_field}`";}else{$AFTER='';} $err['sql_fix'] = "ALTER TABLE `$TableName` CHANGE `$FieldName` $preg_sql_fix $AFTER"; $err['txt'] = "В эталоне <b>'{$paramValue}'</b>, в получателе <b>'{$dbInfo2['COLUMNS'][$TableName][$FieldName][$fieldParam]}'</b>"; $ParamsErrors[] = $err; //echo '<pre>'; //print_r($preg_sql_fix); //echo '</pre>'; } } } $befor_field = $FieldName; } if($err['txt'] == ''){ //не известные ошибки $err['txt'] = 'Не известная ошибка'; $err['field'] = '-'; $err['param'] = '-'; $UndefinedErrors[] = $err; } } } echo "Таблицы эталон/получатель: ".count($dbInfo1['COLUMNS'])."/".count($dbInfo2['COLUMNS'])."<br />\r\n"; echo "Отсутствуют таблицы: ".count($TablesErrors)."<br />\r\n"; echo "Отсутствуют столбцы: ".count($FieldsErrors)."<br />\r\n"; echo "Не соответствует порядок стобцов: ".count($PoryadokErrors)."<br />\r\n"; echo "Не соответствуют параметры: ".count($ParamsErrors)."<br />\r\n"; echo "Не хватает ключа: ".count($IndexKeyErrors)."<br />\r\n"; echo "Не известные ошибки: ".count($UndefinedErrors)."<br />\r\n"; echo "Идентичные таблиц: ".count($NoErrors)."<br />\r\n<br />\r\n"; //class=\"tr_title\" echo '<table border="0" width="100%">'; echo "<tr class=\"tr_title\">\r\n"; echo "<td width='22'> </td>\r\n"; echo "<td>Таблицы</td>\r\n"; echo "<td>Столбец</td>\r\n"; echo "<td>Свойство</td>\r\n"; echo "<td>Описание</td>\r\n"; echo "<td>FIX</td>\r\n"; echo "</tr>\r\n"; if(is_array($TablesErrors)){ foreach($TablesErrors as $ERR_KEY=>$ERR){ echo "<tr class=\"tr_notab\">\r\n"; echo "<td class=\"f_notab\"><input type=\"checkbox\" name=\"sql_fix[]\" class=\"$checkbox_clases\" id=\"TablesErr{$ERR_KEY}\" value=\"{$ERR['sql_fix']}\" checked></td>"; echo "<td>{$ERR['table']}</td>\r\n"; echo "<td>{$ERR['field']}</td>\r\n"; echo "<td>{$ERR['param']}</td>\r\n"; echo "<td>{$ERR['txt']}</td>\r\n"; echo "<td><a href='javascript:show_sql_fix(\"TablesErr{$ERR_KEY}\");'>СОЗДАТЬ</a> |<a href='javascript:show_sql_create(\"{$ERR['table']}\");'>показать создание</a></td>\r\n"; echo "</tr>\r\n"; //<pre style='height:20px;overflow:hidden;' onclick='this.style.height=\"\"'>{$ERR['sql_fix']}</pre> } } if(is_array($UndefinedErrors)){ foreach($UndefinedErrors as $ERR_KEY=>$ERR){ echo "<tr class=\"tr_undef\">\r\n"; echo "<td class=\"f_undef\"><input type=\"checkbox\" name=\"sql_fix[]\" class=\"$checkbox_clases\" disabled id=\"UndefinedErr{$ERR_KEY}\" value=\"{$ERR['sql_fix']}\" ></td>\r\n"; echo "<td>{$ERR['table']}</td>\r\n"; echo "<td>{$ERR['field']}</td>\r\n"; echo "<td>{$ERR['param']}</td>\r\n"; echo "<td>{$ERR['txt']}</td>\r\n"; echo "<td><a href='javascript:show_sql_create(\"{$ERR['table']}\");'>показать создание</a></td>\r\n"; echo "</tr>\r\n"; } } if(is_array($FieldsErrors)){ foreach($FieldsErrors as $ERR_KEY=>$ERR){ echo "<tr class=\"tr_nofield\">\r\n"; echo "<td class=\"f_nofield\"><input type=\"checkbox\" name=\"sql_fix[]\" class=\"$checkbox_clases\" id=\"FieldsErr{$ERR_KEY}\" value=\"{$ERR['sql_fix']}\" checked></td>\r\n"; echo "<td>{$ERR['table']}</td>\r\n"; echo "<td>{$ERR['field']}</td>\r\n"; echo "<td>{$ERR['param']}</td>\r\n"; echo "<td>{$ERR['txt']}</td>\r\n"; echo "<td><a href='javascript:show_sql_fix(\"FieldsErr{$ERR_KEY}\");'>ALTER</a> | <a href='javascript:show_sql_create(\"{$ERR['table']}\");;'>показать создание</a></td>\r\n"; echo "</tr>\r\n"; } } if(is_array($PoryadokErrors)){ foreach($PoryadokErrors as $ERR_KEY=>$ERR){ echo "<tr class=\"tr_por\">\r\n"; echo "<td class=\"f_por\"><input type=\"checkbox\" name=\"sql_fix[]\" class=\"$checkbox_clases\" id=\"PoryadokErr{$ERR_KEY}\" value=\"{$ERR['sql_fix']}\" $checked></td>\r\n"; echo "<td>{$ERR['table']}</td>\r\n"; echo "<td>{$ERR['field']}</td>\r\n"; echo "<td>{$ERR['param']}</td>\r\n"; echo "<td>{$ERR['txt']}</td>\r\n"; echo "<td><a href='javascript:show_sql_fix(\"PoryadokErr{$ERR_KEY}\");'>ALTER</a> | <a href='javascript:show_sql_create(\"{$ERR['table']}\");;'>показать создание</a></td>\r\n"; echo "</tr>\r\n"; } } if(is_array($ParamsErrors)){ foreach($ParamsErrors as $ERR_KEY=>$ERR){ echo "<tr class=\"tr_param\">\r\n"; echo "<td class=\"f_param\"><input type=\"checkbox\" name=\"sql_fix[]\" class=\"$checkbox_clases\" id=\"sqlParamsErr{$ERR_KEY}\" value=\"{$ERR['sql_fix']}\" checked></td>\r\n"; echo "<td>{$ERR['table']}</td>\r\n"; echo "<td>{$ERR['field']}</td>\r\n"; echo "<td>{$ERR['param']}</td>\r\n"; echo "<td>{$ERR['txt']}</td>\r\n"; echo "<td><a href='javascript:show_sql_fix(\"sqlParamsErr{$ERR_KEY}\");'>ALTER</a> | <a href='javascript:show_sql_create(\"{$ERR['table']}\");'>показать создание</a></td>\r\n"; echo "</tr>\r\n"; } } if(is_array($IndexKeyErrors)){ foreach($IndexKeyErrors as $ERR_KEY=>$ERR){ echo "<tr class=\"tr_keyIndex\">\r\n"; echo "<td class=\"f_keyIndex\"><input type=\"checkbox\" name=\"sql_fix[]\" class=\"$checkbox_clases\" id=\"sqlkeyIndex{$ERR_KEY}\" value=\"{$ERR['sql_fix']}\" checked></td>\r\n"; echo "<td>{$ERR['table']}</td>\r\n"; echo "<td>{$ERR['field']}</td>\r\n"; echo "<td>{$ERR['param']}</td>\r\n"; echo "<td>{$ERR['txt']}</td>\r\n"; echo "<td><a href='javascript:show_sql_fix(\"sqlkeyIndex{$ERR_KEY}\");'>ADD KEY</a> | <a href='javascript:show_sql_create(\"{$ERR['table']}\");'>показать создание</a></td>\r\n"; echo "</tr>\r\n"; } } if(is_array($NoErrors)){ foreach($NoErrors as $ERR_KEY=>$ERR){ echo "<tr class=\"tr_ok\">\r\n"; echo "<td class=\"f_ok\"><input type=\"checkbox\" name=\"sql_fix[]\" class=\"$checkbox_clases\" id=\"sqlNoErr{$ERR_KEY}\" value=\"{$ERR['sql_fix']}\" disabled></td>\r\n"; echo "<td>{$ERR['table']}</td>\r\n"; echo "<td> </td>\r\n"; echo "<td> </td>\r\n"; echo "<td>OK</td>\r\n"; echo "<td></td>\r\n"; echo "</tr>\r\n"; } } echo "</table>"; //echo '</pre>'; ?> <script type="text/javascript"> var tx = '<?php echo $_POST['tx'];?>'; var rx = '<?php echo $_POST['rx'];?>'; var dbCREATE1 = <?php echo json_encode($dbInfo1['CREATE']); ?>; var dbCREATE2 = <?php echo json_encode($dbInfo2['CREATE']); ?>; </script> <?php } $t99 = microtime(true); $t = $t99 - $t0; echo "Время Выполнения $t сек"; ?> <script type="text/javascript"> //Когда вы нажмете на ссылку с классом poplight и HREF начинается с a # function show_popup(popID,popWidth) { // Добавить кнопку "Закрыть" в наше окно, прописываете прямой путь к картинке $('#' + popID).fadeIn().prepend('<a href="#" class="close"><img src="close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a>'); //Определяет запас на выравнивание по центру (по вертикали по горизонтали)мы добавим 80px к высоте / ширине, значение полей вокруг содержимого (padding) и ширину границы устанавливаем в CSS var popMargTop = ($('#' + popID).height() + 80) / 2; var popMargLeft = ($('#' + popID).width() + 80) / 2; //Устанавливает величину отступа на Popup $('#' + popID).css({ 'margin-top' : -popMargTop, 'margin-left' : -popMargLeft }); //Fade in Background $('body').append('<div id="fade"></div>'); //Add the fade layer to bottom of the body tag. $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); //Постепенное исчезание слоя - .css({'filter' : 'alpha(opacity=80)'}) используется для фиксации в IE , фильтр для устранения бага тупого IE return false; } //Закрыть всплывающие окна и Fade слой $('a.close, #fade').live('click', function() { //When clicking on the close or fade layer... $('#fade , .popup_block').fadeOut(function() { $('#fade, a.close').remove(); //fade them both out }); return false; }); </script> <script> function countSlected(){ //подсчет всего $('#updatecounter').text($('.filesbox:checked').size()); //подсчет новых cnewboxALL = $('.newbox').size(); cnewbox = $('.newbox:checked').size(); if(cnewboxALL==cnewbox && cnewboxALL!=0){ $("#newbox").attr("checked", "checked"); }else{ $("#newbox").removeAttr("checked"); } //подсчет измененых cchagedboxALL = $('.chagedbox').size(); cchagedbox = $('.chagedbox:checked').size(); if(cchagedboxALL==cchagedbox && cchagedboxALL!=0){ $("#chagedbox").attr("checked", "checked"); }else{ $("#chagedbox").removeAttr("checked"); } //подсчет конфликта даты и размера cdatesizeboxerrALL = $('.datesizeboxerr').size(); cdatesizeboxerr = $('.datesizeboxerr:checked').size(); if(cdatesizeboxerrALL==cdatesizeboxerr && cdatesizeboxerrALL!=0){ $("#datesizeboxerr").attr("checked", "checked"); }else{ $("#datesizeboxerr").removeAttr("checked"); } //подсчет конфликта даты cdateboxerrALL = $('.dateboxerr').size(); cdateboxerr = $('.dateboxerr:checked').size(); if(cdateboxerrALL==cdateboxerr && cdateboxerrALL!=0){ $("#dateboxerr").attr("checked", "checked"); }else{ $("#dateboxerr").removeAttr("checked"); } //подсчет конфликта размера csizeboxerrALL = $('.sizeboxerr').size(); csizeboxerr = $('.sizeboxerr:checked').size(); if(csizeboxerrALL==csizeboxerr && csizeboxerrALL!=0){ $("#sizeboxerr").attr("checked", "checked"); }else{ $("#sizeboxerr").removeAttr("checked"); } } function checker(obj){ if(obj.checked){ $("."+obj.id).attr("checked", "checked"); // make checkbox or radio checked }else{ $("."+obj.id).removeAttr("checked"); } } setInterval('countSlected()', 500); function makepack(ip){ alert('makepack '+'https://'+ip+'/dl/pack.php'); //$('#filesList').serialize() $.getJSON('https://'+ip+'/dl/pack.php', function(data){ alert('getJSON'); alert(data); }); } function show_sql_fix(id){ $('#popup_name').html('<form action="difference.php?cmd=sendsql&rx='+rx+'" id="sendsql_form" ><input type="hidden" id="Now_fix_ID" value="'+id+'" /><textarea name="code" id="sendsql_source" class="sql">' + $("#"+id).val() + '</textarea><div id="sendsql_result_div"></div><input type="button" id="button_sendsql" value="Выполнить" onclick="sendsql(); this.value=\'Подождите...\'; this.disabled=\'true\';" "></form>'); show_popup('popup_name'); dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf'; dp.SyntaxHighlighter.HighlightAll('code'); $('#popup_name').css('margin-top',''); $('#popup_name').css('margin-left',''); //$('#sendsql_source').hide(); } function show_sql_create(tablename){ $('#popup_name').html('<table class="popuptable"><tr><td width="50%">Эталон:<br><textarea style="width:90%" name="code" class="sql">' + dbCREATE1[tablename] + '</textarea>'+'</td><td width="50%">Получатель:<br><textarea style="width:90%" name="code" class="sql">' + dbCREATE2[tablename] + '</textarea></td></tr></table>'); show_popup('popup_name'); dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf'; dp.SyntaxHighlighter.HighlightAll('code'); $('#popup_name').css('margin-top',''); $('#popup_name').css('margin-left',''); } function sendsql(){ //alert('Функция в разработке'); var url = $('#sendsql_form').attr('action'); var sendsql_source = $('#sendsql_source').val(); var Now_fix_ID = $('#Now_fix_ID').val(); //setTimeout("dp.SyntaxHighlighter.HighlightAll('code2');",1000); $.post(url, {sql:sendsql_source}, function(data){ //+'-- '+url +"\r\n"+ html = '<textarea name="code2" id="sendsql_result" class="sql">'+data+'</textarea>'; $('#sendsql_result_div').html(html); $('#'+Now_fix_ID).removeAttr('checked'); $('#'+Now_fix_ID).parent().parent().css('text-decoration','line-through'); $('#button_sendsql').hide(); dp.SyntaxHighlighter.HighlightAll('code2'); //$('#sendsql_result').html(data); }); } </script> <style> #popup_name{ width:90%; } .popuptable{ width:100%; overflow:auto; } .dp-highlighter{ width:100%; overflow:auto; } </style> </body></html>
Save
cmd:
run