Esempio n. 1
0
function testcfgs()
{
    global $sd, $pr, $mycol, $mycols, $ADM, $tbl;
    global $gmheader, $gmplevel, $prauth, $prauthcnt;
    global $dbheader, $dbplevel, $prdbdata, $prdbdatacnt;
    global $edheader, $edplevel, $edcontent, $edcnt;
    global $dnheader, $dnplevel, $dncontent, $dncnt;
    global $pgheader, $pgplevel, $pgcontent, $pgcnt;
    global $stheader, $stplevel, $stcontent, $stcnt;
    global $lsheader, $lsplevel, $lscontent, $lscnt;
    global $filheader, $filplevel, $fildata, $filcount;
    $error = 0;
    $war = 0;
    $fixed = 0;
    //счетчик ошибок
    #inside func
    $mserror = "<red>==></red>";
    $mswar = "<yel>==></yel>";
    $msfixed = "<grn>==></grn>";
    echo "---------------------------<br>";
    // проверка dbdata.cfg
    $tbl = 1;
    $edit = 0;
    // edit - флаг запуска записи
    $silent = 0;
    global $silent;
    while ($tbl < $prdbdatacnt - 1) {
        $exist = 1;
        if ($prdbdata[$tbl][12] != "fdb") {
            $code = readdescripters();
            $fixmsg = $code[7];
            $warnmsg = $code[8];
            if (strlen($fixmsg) > 15) {
                echo "{$msfixed} " . $fixmsg;
                $fixed++;
            }
            if (strlen($warnmsg) > 15) {
                echo "{$mswarn} " . $warnmsg;
                $warn++;
            }
            if ($code == -1) {
                echo "{$mserror} SQL " . cmsg(A_T_DB) . " " . $prdbdata[$tbl][0], " " . cmsg(NOREP) . "<br>";
                $exist = 0;
                $error++;
                $errortables[] = $prdbdata[$tbl];
                //continue;//added cont  for test
            }
        }
        if ($prdbdata[$tbl][12] == "fdb") {
            global $mzcnt;
            //		$filbas=$prdbdata[$tbl][0];
            $mycols = 0;
            $code = readdescripters();
            $fixmsg = $code[7];
            $warnmsg = $code[8];
            if (strlen($fixmsg) > 15) {
                echo "{$msfixed} " . $fixmsg;
                $fixed++;
            }
            if (strlen($warnmsg) > 15) {
                echo "{$mswarn} " . $warnmsg;
                $warn++;
            }
            if ($code == -1) {
                echo "{$mserror} DAT  " . cmsg(A_T_DB) . " " . $prdbdata[$tbl][0] . " " . cmsg(NOREP) . "<br>";
                $error++;
                //$tbl++; именно эта параша всё сбивала.
                $errortables[] = $prdbdata[$tbl];
                //continue; remove as tes
            }
            $mycols = $mzcnt;
            $mycolsreal = $code[6];
        }
        // К этому моменту  уже должны быть базы обновлены
        if ($prdbdata[$tbl][12] == "1") {
            echo "{$msfixed} " . cmsg(TB) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_UDBT) . " -sql-<br>";
            $prdbdata[$tbl][12] = "mysql";
            $fixed++;
            $edit = 1;
        }
        if ($prdbdata[$tbl][12] === false or $prdbdata[$tbl][12] === "0") {
            echo "{$msfixed}  " . cmsg(TB) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_UDBT) . " -fdb-<br>";
            $prdbdata[$tbl][12] = "fdb";
            $fixed++;
            $edit = 1;
        }
        if ($prdbdata[$tbl][9] == "" and $prdbdata[$tbl][12] == "mysql") {
            echo "{$msfixed} " . cmsg(TB) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_NC_DEF) . " <br>";
            $prdbdata[$tbl][9] = "default";
            $fixed++;
            $edit = 1;
        }
        if ($prdbdata[$tbl][5] == "" and $prdbdata[$tbl][1] !== "") {
            echo "{$msfixed} " . cmsg(A_SF_NAMTBL) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_CPY_MIRR) . "<br>";
            $prdbdata[$tbl][5] = $prdbdata[$tbl][1];
            $fixed++;
            $edit = 1;
        }
        if ($prdbdata[$tbl][1] == "" and $prdbdata[$tbl][5] !== "") {
            echo "{$msfixed} " . cmsg(A_SF_NAMMIRR) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_CPY_NAMTBL) . "<br>";
            $prdbdata[$tbl][1] = $prdbdata[$tbl][5];
            $fixed++;
            $edit = 1;
        }
        if ($prdbdata[$tbl][0] == "" and $prdbdata[$tbl][1] !== "") {
            echo "{$msfixed} " . cmsg(A_SF_NOFLNM) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_CPY_MIRR2) . "<br>";
            $prdbdata[$tbl][0] = $prdbdata[$tbl][5];
            $fixed++;
            $edit = 1;
        }
        if ($prdbdata[$tbl][15] == $prdbdata[$tbl][11] and $prdbdata[$tbl][15] !== "") {
            $prdbdata[$tbl][15]++;
            echo "{$msfixed} " . $prdbdata[$tbl][1] . " " . cmsg("ID!=") . " " . $prdbdata[$tbl][15] . " <br>";
            $fixed++;
            $edit = 1;
        }
        if ($exist == 1) {
            if ($prdbdata[$tbl][14] == "" or $prdbdata[$tbl][14] < 0) {
                echo "{$msfixed} " . cmsg(A_R_TB) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_DEF) . "<br>";
                $prdbdata[$tbl][14] = 0;
                $fixed++;
                $edit = 1;
            }
            if ($prdbdata[$tbl][13] < $prdbdata[$tbl][14]) {
                $prdbdata[$tbl][13] = $prdbdata[$tbl][14] + 1;
                echo "{$msfixed}  " . cmsg(A_R_TB) . cmsg(T_WR) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_R_RW_ERR) . cmsg(FIXED) . "<br>";
                $fixed++;
                $edit = 1;
            }
            $writerights = $prdbdata[$tbl][13];
            if ($writerights !== "d") {
                settype($writerights, "integer");
                if ($writerights == "") {
                    $prdbdata[$tbl][13] = $prdbdata[$tbl][14] + 1;
                    echo "{$msfixed} " . cmsg(A_R_TB) . cmsg(T_WR) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_R_RW_ERR) . cmsg(FIXED) . "<br>";
                    $fixed++;
                    $edit = 1;
                }
            }
            if ($prdbdata[$tbl][10] > $mycols) {
                echo "{$mserror} " . cmsg(A_T_FROW1) . $prdbdata[$tbl][10] . ") ( " . cmsg(ITB) . " " . $prdbdata[$tbl][1] . cmsg(A_MCOLS) . "{$mycols} <br>";
                $error++;
            }
            if ($prdbdata[$tbl][11] > $mycols) {
                echo "{$mserror}  " . cmsg(A_T_CROW1) . $prdbdata[$tbl][11] . ") ( " . cmsg(ITB) . " " . $prdbdata[$tbl][1] . cmsg(A_MCOLS) . "{$mycols} <br>";
                $error++;
            }
            if ($prdbdata[$tbl][4] > $mycols) {
                echo "{$mserror}  " . cmsg(A_T_CGROW1) . $prdbdata[$tbl][4] . ") ( " . cmsg(ITB) . " " . $prdbdata[$tbl][1] . cmsg(A_MCOLS) . "{$mycols} <br>";
                $error++;
            }
            if ($prdbdata[$tbl][8] > $mycols) {
                echo "{$mswar}  " . cmsg(A_T_SCROW1) . $prdbdata[$tbl][8] . ")  " . cmsg(ITB) . " " . $prdbdata[$tbl][1] . cmsg(A_MCOLS) . "{$mycols} <br>";
                $warn++;
            }
            if ($prdbdata[$tbl][8] !== false and $prdbdata[$tbl][3] === false) {
                echo "{$mswar} " . cmsg(A_T_SCRPRS) . $prdbdata[$tbl][8] . ") " . cmsg(ITB) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_F_EMP) . "<br>";
                $war++;
            }
            $fields = count($prdbdata[$tbl]);
            if ($fields < 199) {
                //echo
                echo "{$mswar} Registered table " . $prdbdata[$tbl][1] . " have " . $fields . " header fields but must have 202 , requires run update350.php or manual fix <br>";
                $warn++;
                /*
                	$fixadd="";
                for ($a1=$fields-2;$a1++;$a1<202) {//$fixadd.="¦";// echo $a1." ";
                	$prdbdata[$tbl][$a1]="0";
                if ($a1==202) { if ($OSTYPE=="LINUX") $prdbdata[$tbl][$a1].="\n"; //  исправление соединения строк
                				if ($OSTYPE=="WINDOWS") $prdbdata[$tbl][$a1].="\r\n";
                				break;
                }
                
                //die ("a1==202 !!!!!!!!!!!!!!!!!!!!!"); возможно добавление WINDOWS вызовет баг - не проверено
                //$ax++; if ($ax>700) { echo "a1=$a1; ax=$ax; fixadd=$fixadd";exit;}
                } // F*****G SHsIT   ВИСНЕТ"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                */
            }
            //исправляем если конфиг слишком короткий. не знаю в чем дело - но автоисправление длины алиаса почему то не пашет как надо
            //
            //$plinkname=$data[12];
            //.//...$exist=0;// чезахерня?
        }
        //end EXIST list
        //ho "prb ".$prdbdata[$tbl][17]." M<br>";
        //Временно отключено после расширения глючть не будет   writefullcsv вызывает ошибку если нет \n
        if (count($prdbdata[$tbl]) > 40) {
            $a = $prdbdata[$tbl][17];
            //echo "ept 17=$a<br>";
            if (strlen(trim($a)) < 2 or $a === " ") {
                $ungroup = 1;
            }
            if (strlen(trim($a)) > 1) {
                $ungroup = 0;
            }
            if ($ungroup == 1 and $prdbdata[$tbl][12] == "mysql" and $prdbdata[$tbl][9] == true) {
                echo "{$msfixed} " . cmsg(A_SF_GRP_TBL) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_NO) . " (" . $prdbdata[$tbl][17] . cmsg(A_DEF_GRP) . $prdbdata[$tbl][9] . ")<br>";
                $prdbdata[$tbl][17] = $prdbdata[$tbl][9];
                $fixed++;
                $edit = 1;
                $ungroup = 0;
            }
            //CFG OPT FUTURE  TODO:  отключаемое 2 реж 1-база может отличатся от 2-база вс=базе.
            if ($pr[38]) {
                if ($prdbdata[$tbl][12] == "mysql" and $prdbdata[$tbl][9] !== $prdbdata[$tbl][17]) {
                    echo "{$msfixed} " . cmsg(A_SF_GRP_TBL) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_GRP_DECL) . " " . $prdbdata[$tbl][17] . ")-->(" . $prdbdata[$tbl][9] . ")<br>";
                    $prdbdata[$tbl][17] = $prdbdata[$tbl][9];
                    $fixed++;
                    $edit = 1;
                    $ungroup = 0;
                }
            }
            if ($ungroup == 1 and $prdbdata[$tbl][12] == "fdb") {
                echo "{$msfixed} " . cmsg(A_SF_GRP_TBL) . " " . $prdbdata[$tbl][1] . " " . cmsg(A_SF_NO) . " (" . $prdbdata[$tbl][17] . cmsg(A_DEF_GRP) . "fdb)<br>";
                $prdbdata[$tbl][17] = "fdb";
                $fixed++;
                $edit = 1;
                $ungroup = 0;
            }
            //CFG OPT FUTURE  TODO:  отключаемое 2 реж 1-база может отличатся от 2-база вс=базе.AS Mysql
        }
        //*/$prdbdata[$tbl][18]="\n"; поможе если все таки достигнули крайнее число колонок.
        $tbl++;
    }
    echo "<br>" . cmsg(A_SF_ALLDB) . ($prdbdatacnt - 2) . "<br>---------------------------------------<br>";
    ##проверка на факт редактирования должна быть обязательно везде - незачем постоянно делать сохранения.
    if ($edit == 1) {
        @($tempdescr = csvopen("_conf/dbdata.cfg", "w", 1));
        writefullcsv($tempdescr, $dbheader, $dbplevel, $prdbdata);
        $edit = 0;
        fclose($tempdescr);
    }
    unset($tempdescr, $dbheader, $dbplevel, $prdbdata);
    // проверкa gmdata.cfg
    // CFG OPT FUTURE  TODO:   СОЗДАНИЕ ПАПОК ПОЛЬЗОВАТЕЛЕЙ И ФАЙЛА ПО УМОЛЧАНИЮ -  В ЗАВИС ОТ ИНСТАНЦИИ ПО ТИПУ _DATA .. САП
    $cnt = 1;
    $admins = 0;
    $users = 0;
    while ($cnt < $prauthcnt) {
        if (strlen($prauth[$cnt][1]) < 32 and $prauth[$cnt][0] == true) {
            echo "{$msfixed} " . cmsg(A_SF_U_NOCYPH) . $prauth[$cnt][0] . " " . cmsg(A_SF_U_CYHP) . "<br>";
            $fixed++;
            $edit = 1;
            $prauth[$cnt][1] = hashgen($prauth[$cnt][1]);
        }
        if ($prauth[$cnt][1][0] !== "!" and $prauth[$cnt][0] == true) {
            echo "{$mswar} " . cmsg(A_SF_U_NOCYPH) . " " . $prauth[$cnt][0] . " " . cmsg(A_OLD_ENC) . "<br>";
            $war++;
        }
        $su = $su + $prauth[$cnt][42];
        $admins = $admins + $prauth[$cnt][2];
        $a = $prauth[$cnt][10];
        if ($a) {
            $users = $users + 1;
        }
        $cnt++;
    }
    echo "<br>" . cmsg(A_SU) . " {$su} " . cmsg(A_T_ADMFRUSR) . " {$admins} " . cmsg(A_IZ) . " {$users} " . cmsg(A_USRS) . ".<br>---------------------------------------<br>";
    ###rewrite cfg### :)))
    if ($edit == 1) {
        @($tempdescr = csvopen("_conf/gmdata.cfg", "w", 1));
        writefullcsv($tempdescr, $gmheader, $gmplevel, $prauth);
        $edit = 0;
        fclose($tempdescr);
    }
    unset($tempdescr, $gmheader, $gmplevel, $prauth);
    /*
    
    // проверка editor.cfg  files.cfg ???
      $cnt=1;
      while ($cnt<$edcnt) {
      $cnt++;
       if (($edcontent[$cnt][0]!=="")AND($edcontent[$cnt][1]=="")) {echo "$mswar ".cmsg (A_T_EDAT)." $cnt (".$edcontent[$cnt][0]." (".$prdbdata[$edcontent[$cnt][0]][0].")) ".cmsg (A_T_EDATEMP)."<br>";$war++;}
     } echo "<br> ".cmsg (A_T_EDCFGS)." ".($edcnt-2)."<br>---------------------------------------<br>";
    
    
       ###rewrite cfg### :)))
     if ($edit==1) {
    	 @$tempdescr=csvopen ("_conf/editor.cfg","w",1);
       writefullcsv ($tempdescr,$edheader,$edplevel,$edcontent);$edit=0;
     }
     unset ($tempdescr,$edheader,$edplevel,$edcontent);
    */
    // проверка pages.cfg
    $cnt = 1;
    while ($cnt < $pgcnt) {
        //if ($cnt>10) { echo "Страница $cnt (".$pgcontent[$cnt][1].") не может быть обслужена из за встроенных ограничений.<br>"; $war++;}
        if ($pgcontent[$cnt][1] === "") {
            echo "{$mserror}  " . cmsg(A_PAGE) . " {$cnt} (" . $pgcontent[$cnt][1] . ") " . cmsg(A_T_PGNOCONN) . ".<br>";
            $error++;
        }
        if (strpos($pgcontent[$cnt][1], "readfile.php") !== false) {
            echo "{$msfixed} " . cmsg(A_PAGE) . " {$cnt} (" . $pgcontent[$cnt][1] . ") up to 3.5.18+.<br>";
            $pgcontent[$cnt][1] = str_replace("readfile.php", "r.php", $pgcontent[$cnt][1]);
            $fixed++;
            $edit = 1;
        }
        if (strpos($pgcontent[$cnt][1], "edit.php") !== false) {
            echo "{$msfixed} " . cmsg(A_PAGE) . " {$cnt} (" . $pgcontent[$cnt][1] . ") up to 3.6.1+.<br>";
            $pgcontent[$cnt][1] = str_replace("edit.php", "login.php", $pgcontent[$cnt][1]);
            $fixed++;
            $edit = 1;
        }
        if (strpos($pgcontent[$cnt][1], "writefile.php") !== false) {
            echo "{$msfixed}  " . cmsg(A_PAGE) . " {$cnt} (" . $pgcontent[$cnt][1] . ") up to 3.5.18+.<br>";
            $pgcontent[$cnt][1] = str_replace("writefile.php", "w.php", $pgcontent[$cnt][1]);
            $fixed++;
            $edit = 1;
        }
        if ($pgcontent[$cnt][3] === "") {
            echo "{$mswar}  " . cmsg(A_PAGE) . "{$cnt} (" . $pgcontent[$cnt][1] . ") " . cmsg(A_T_PGNOHDR) . ".<br>";
            $war++;
        }
        if ($pgcontent[$cnt][6] > 0 and $pgcontent[$cnt][7] < 4) {
            echo "{$mswar}  " . cmsg(A_PAGE) . " {$cnt} (" . $pgcontent[$cnt][1] . ") " . cmsg(A_T_PGUPTM) . $dbc[7] . "<br>";
            $war++;
        }
        if ($pgcontent[$cnt][4] == 1 and $pgcontent[$cnt][2] == false) {
            echo "{$mserror} " . cmsg(A_PAGE) . " {$cnt} (" . $pgcontent[$cnt][1] . ") " . cmsg(A_T_PGRDR) . ".<br>";
            $error++;
        }
        $cnt++;
    }
    echo "<br>" . cmsg(A_T_ALLPG) . ($pgcnt - 2) . "<br>---------------------------------------<br>";
    ###rewrite cfg### :)))
    if ($edit == 1) {
        @($tempdescr = csvopen("_conf/pages.cfg", "w", 1));
        writefullcsv($tempdescr, $pgheader, $pgplevel, $pgcontent);
        $edit = 0;
    }
    unset($tempdescr, $pgheader, $pgplevel, $pgcontent);
    // проверка denywords.cfg
    $cnt = 1;
    while ($cnt < $dncnt) {
        if (strlen($dncontent[$cnt][0]) < 4) {
            echo "{$mswar} Длина слова (" . $dncontent[$cnt][0] . ") мала =" . strlen($dncontent[$cnt][0]) . ", это может вызвать ошибки <br>";
            $warn++;
        }
        $cnt++;
    }
    echo "<br>" . cmsg(A_DNW_ALL) . " " . ($dncnt - 2) . "<br>---------------------------------------<br>";
    ###rewrite cfg### :)))
    if ($edit == 1) {
        @($tempdescr = csvopen("_conf/denywords.cfg", "w", 1));
        writefullcsv($tempdescr, $dnheader, $dnplevel, $dncontent);
        $edit = 0;
        unset($tempdescr, $dnheader, $dnplevel, $dncontent);
    }
    $date = date("d.m.Y H:i:s");
    // текущая дата
    $dateinunix = strdbstounixtime($date);
    // переводим обычную dbs дату в юникс
    // прове files.cfg
    $cnt = 1;
    $edit = 0;
    while ($cnt < $filcount - 1) {
        //echo "filcount mlya $filcount , count fildata-= ".count ($fildata)."<br>";// zaebalo  gde counter?
        if ($debug) {
            echo $fildata[$cnt][4] . "=" . $fildata[$cnt][9] . "<br>";
        }
        // debug
        $downloadedfiles = $downloadedfiles + $fildata[$cnt][9];
        //
        ////if (1==1) { echo "$fildata";};  при удалении сохранять 2 в колонку об удалении
        // Извините, файл найти не удалось -  Возможно файл устарел , перемещён или не соответствует правилам хостинга
        $datarazm = $fildata[$cnt][8];
        $xdataupload = strdbstounixtime($datarazm);
        $dataskac = $fildata[$cnt][10];
        $xdatalastload = strdbstounixtime($dataskac);
        if (is_dir($fildata[$cnt][5])) {
            $fildata[$cnt][6] = 2;
        }
        //папки не имеет смысла пытаться удалять
        //важно после попытки удаления программа более не пытается удалять уже удаленные файлы помечая их флагом 2 в колонке удаления.
        $razn = $dateinunix - $xdatalastload;
        $toomanydays = 1295684 * 2;
        if ($razn > $toomanydays) {
            // echo "File <font color=blue>".$fildata[$cnt][5]."</font> (ID ".$fildata[$cnt][0]." is hosted> 30 days ($datarazm)<br>";//noaction
            // если файл есть уже 30 дней то можно проверять и дату последней скачки если она конечно же есть
            if ($debug) {
                echo "[debug] this file is dara rasm= {$datarazm} ({$xdataupload}) datascac={$dataskac}  ({$xdatalastload}) razn={$razn}<br>";
            }
            $razn2 = $dateinunix - $xdatalastload;
            if (!($fildata[$cnt][6] == 2)) {
                if ($xdatalastload < 1) {
                    echo "File  <blu>" . $fildata[$cnt][5] . "</blu> ни разу не загружался. <br>";
                }
            }
            // затычка
            if ($xdatalastload > 0 and !($fildata[$cnt][6] == 2)) {
                if ($razn2 > $toomanydays) {
                    echo "File <blu>" . $fildata[$cnt][5] . "</blu> (ID " . $fildata[$cnt][0] . " is outdated ({$dataskac})<br>";
                    $enableremove = 1;
                }
                if ($enableremove) {
                    if ($pr[88]) {
                        if (file_exists($fildata[$cnt][5])) {
                            echo "<red>Auto removing outdated file " . $fildata[$cnt][5] . "   !</red><br>";
                            logwrite("A_CHECK:Remove outdated file " . $fildata[$cnt][5]);
                            $fildata[$cnt][6] = 2;
                            $edit = 1;
                            //  знак удаленного файла - не проверяется
                            unlink($fildata[$cnt][5]);
                            $enableremove = 0;
                        }
                    }
                }
            }
        }
        if (!($fildata[$cnt][6] == 2)) {
            if (!file_exists($fildata[$cnt][5])) {
                if ($pr[85]) {
                    echo "{$msfixed} ";
                }
                echo "" . $fildata[$cnt][5] . " " . cmsg("LNK_NOT");
                if ($pr[85]) {
                    echo " " . cmsg("LNK_RMV");
                    $fildata[$cnt] = "";
                    $fixed++;
                    $edit = 1;
                }
                // ЭТОПРАВИЛЬНОЕ УДАЛЕНИЕ!!
                echo "<br>";
            }
        }
        $cnt++;
    }
    echo "<br>" . cmsg(A_FIL_DWN) . ": {$downloadedfiles}<br>";
    echo "<br>" . cmsg(A_FIL_ALL) . " " . (count($fildata) - 2) . "<br>---------------------------------------<br>";
    ###rewrite cfg### :)))
    if ($edit == 1) {
        @($tempdescr = csvopen("_conf/files.cfg", "w", 1));
        writefullcsv($tempdescr, $filheader, $filplevel, $fildata);
        $edit = 0;
        unset($tempdescr, $filheader, $filplevel, $fildata);
    }
    //-------------------------------
    //
    //
    //проверкa styles
    $cnt = 1;
    while ($cnt < $stcnt) {
        echo "";
        break;
    }
    echo "<br>" . cmsg(A_STL_ALL) . " " . ($stcnt - 2) . "<br>---------------------------------------<br>";
    //планируется стили подключать  просто как папки
    if ($edit == 1) {
        @($tempdescr = csvopen("_conf/styles.cfg", "w", 1));
        writefullcsv($tempdescr, $stheader, $stplevel, $stcontent);
        $edit = 0;
        unset($tempdescr, $stheader, $stplevel, $stcontent);
    }
    // проверка  langset
    $cnt = 1;
    while ($cnt < $lscnt) {
        echo "";
        break;
    }
    echo "<br>" . cmsg(A_LNG_ALL) . " " . ($lscnt - 2) . "<br>---------------------------------------<br>";
    if ($edit == 1) {
        @($tempdescr = csvopen("_conf/langset.cfg", "w", 1));
        writefullcsv($tempdescr, $lsheader, $lsplevel, $lscontent);
        $edit = 0;
        unset($tempdescr, $lsheader, $lsplevel, $lscontent);
    }
    global $vpropcheck;
    if ($vpropcheck > 1.0) {
        $error + 1;
        msgexiterror("cfgnewcrit", "property", "disable");
    }
    if ($vpropcheck < -1.0) {
        $error + 1;
        msgexiterror("cfgoldcrit", "property", "disable");
    }
    if ($vpropcheck > 0.8) {
        $error + 1;
        msgexiterror("cfgnewwarn", "noexit", "disable");
    }
    if ($vpropcheck < -0.8) {
        $error + 1;
        msgexiterror("cfgoldwarn", "noexit", "disable");
    }
    echo "=============================<br>=============================<br>";
    echo "" . cmsg(A_T_ALLERR) . " : " . ($error + $war + $fixed) . "<br>";
    echo "" . cmsg(A_T_FROM) . " :<br>" . cmsg(A_T_CRIT) . " {$error} <br>" . cmsg(A_T_NOCRIT) . " {$war} <br> " . cmsg(A_T_FIXED) . " {$fixed} <br>";
    if ($error + $warn > 0) {
        echo "" . cmsg(A_T_REC) . " ";
    }
    $data = "";
    if ($debug) {
        print_r($errortables);
    }
    if ($errortables) {
        echo "<form action=\"admin.php\"><br>";
        checkbox(0, "yes");
        echo count($errortables);
        for ($a = 0; $a < count($errortables); $a++) {
            $data .= $errortables[$a][0] . ";" . $errortables[$a][1] . "?";
        }
        global $sd;
        if ($sd[19] == "utf-8") {
            $data = iconvx("windows-1251", "utf-8", $data);
        }
        //if ($sd[19]=="utf-8") $data=iconvx("utf-8","windows-1251",$data);
        $data = base64_encode($data);
        $fileforerrtname = "_local" . add_endslash("") . "errt";
        unlink($fileforerrtname);
        $errtfile = fopen($fileforerrtname, "a");
        fwrite($errtfile, $data);
        fclose($errtfile);
        //hidekey ("errt",$data);
        hidekey("count", count($errortables));
        submitkey("write", "ADM_DEL_OFF_TABLES");
        echo "</form>";
        dispref();
    }
}
Esempio n. 2
0
            echo ",";
        }
        // <img src=\"_ico/admin.png\" border=0 title='".cmsg ("WF_CANCSHOW")."'>
    }
}
// copy of search r.php mode == 2
$connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
dbs_selectdb("dbscriptbk", $connect, $dbtype);
//mod
$data = readdescripters();
// получение данных заголовка массив mycol кол-во mycols
global $query, $connect;
global $mzdata, $mycols, $myrow, $findrecords, $scrcolumn;
settype($vID, "integer");
if ($vID == 0) {
    msgexiterror("needcode", $mode, "disable");
}
//default mode - select only by data last 15 days
$query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE `data` > " . $dateinunixminux15;
if ($tag) {
    $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE `gutentag` LIKE '%" . $tag . "%'";
}
if ($author) {
    $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE `user` LIKE '%" . $author . "%'";
}
//author !!!
//debug $query = "SELECT * FROM `".$prdbdata[$tbl][5]."` WHERE `data` < ".$dateinunixminux15;
echo $query . "<br>";
// CFG OPT FUTURE - это условие неплохо бы добавить в основной поиск  > < !=
//if (($prdbdata[$tbl][15]>0)AND ($vID2!=="")) { $query = $query." AND ".$mycol[$prdbdata[$tbl][15]]."= '".$vID2."'";};
//$query=$query.$addsql;// сортировка, лимит
Esempio n. 3
0
     dbs_query("SET NAMES `utf8`;", $connect, $dbtype);
 }
 if (!$c) {
     echo "connection failed<br>";
 }
 if (!$disabledesc) {
     $data = readdescripters();
 }
 // получение данных заголовка массив mycol кол-во mycols
 $cmd = $vd;
 global $printlimit;
 // модуль лимитирования вывода SQL
 if ($printlimit and $limitenable) {
     settype($printlimit, "integer");
     if ($printlimit == false) {
         msgexiterror("limit", "noexit", "disable");
     } else {
         $limit = " LIMIT {$printlimit}";
     }
 }
 // модуль лимитирования вывода SQL end
 // модуль сортировки
 if ($selectenable) {
     $group = " GROUP BY " . $field . "";
 }
 // конец модуля сортировки
 //$qw=dbs_query ($cmd,$connect,$dbtype);;echo $qw."--"; dbserr ();
 //$patterns[0]="//\'/" ;$replacements[0]="'"; //Unknown modifier '\' in
 if ($debug) {
     echo "key_s_exec check cmd - {$cmd}<br>";
 }
Esempio n. 4
0
    echo "<br>";
    echo cmsg("DBP_21") . " ";
    inputtxt("encode", 15);
    echo "<br>";
    checkbox($views, "views");
    echo cmsg("WF_LOG") . "<br>";
    checkbox($nodbs, "nodbs");
    echo cmsg("NODBS") . "<br>";
    echo "<input type=hidden name=serv2 value={$serv2}>";
    echo "<input type=hidden name=\"tableselected[]\" value=" . $tableselected . ">";
    echo "<input type=hidden name=dbtype value={$dbtype}>";
    ?>
 <input type=hidden name=dbselected value=<?php 
    echo $dbselected;
    ?>
> <?php 
    if (1 == 1) {
        submitkey("end", "KEY_S_ADD");
    }
    echo "</form>";
}
if ($end) {
    $totaltables = count($tableselected);
    $separator = "¦";
    echo " Dbscript {$dbs}  DB {$dbtype}<br>";
    echo " Total tbls " . $prdbdatacnt . "   adding :" . ($totaltables - 1) . " <br>";
    if (!$prauth[$ADM][2]) {
        msgexiterror("notrights", " administrator", "admin.php");
        exit;
    }
    if ($codekey == 7) {
Esempio n. 5
0
<?php

require_once 'dbscore.lib';
// функция подготовки к работе и авторизации
//$script="login.php";
if ($pr[36] == "on") {
    $script = "disable";
    if (!isset($_SERVER['PHP_AUTH_USER']) || $_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER']) {
        authenticate();
    }
}
if ($pr[36] !== "on") {
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        msgexiterror("anonymous", 0, "disable");
    }
}
if ($_SERVER['PHP_AUTH_USER'] == "UNKNOWN" or $_SERVER['PHP_AUTH_USER'] == "anonymous" or $_SERVER['PHP_AUTH_USER'] == false) {
    msgexiterror("notuser", 0, $script);
}
Esempio n. 6
0
function filemgr($cmd, $stroka, $path, $fileforaction, $mask, $pid)
{
    // is a part filemgr- fileio
    //hidekey ("pid",$pid);
    global $defaultpath, $protect, $prauth, $ADM, $pr, $sd;
    //..,$file
    global $filemgrmod, $daysleft, $codekey, $noscreenmode, $maxmgrs, $OSTYPE, $coreredir;
    global $multiaction, $scriptpath, $scriptpath;
    if ($codekey == 4) {
        needupgrade();
    }
    $file = $fileforaction;
    global $filscheader, $filscdata, $filscplevel, $filsccount, $languageprofile;
    if ($filscdata) {
        if ($filsccount < 1) {
            echo "Filemgr don't have configured scripts<br>";
        } else {
            echo "";
        }
        //additional keys by   filescript.cfg and starting it
        // 4.3.4добавлено: cmsg не отрабатывает теперь значения начинающиеся с точки
        // filescript для генерации кнопок исполнения скриптов ,  заданных администраторами.
        // dbscore - исправлена ошибка из за которой иногда не вычислялся count
        //версия конфигов при создании конфигурации теперь берется из ядра
        //..+++if (!$unauthorized) { //незарегистрированные в любом случае не будут видеть список пользователей ресурса в раздаче.
        // теперь репозитории работать будут раздельно, проприетарная версия будет отличатся только возможностью подключать специальные модули.
        //если вы не планируете их заказывать можно использоватьобычную версию.
        $keylanguage = 1;
        //if not detected;  function detectlanguageidfromheader
        for ($i = 0; $i < 30; $i++) {
            //echo "DEBUG ibane $filscheader[$i],  languageprofile=$languageprofile<br>";
            // echo  "iDEBUG (".substr($filscheader[$i],0,6)."==".substr($languageprofile,0,6).") <br>";
            if (substr($filscheader[$i], 0, 6) == substr($languageprofile, 0, 6)) {
                $keylanguage = $i;
            }
            // теперь хрен открутится, правда ограничились 6 знаками но пофиг , главное ?  не пролезет
            // if (strpos ($filscheader[$i],$languageprofile)) $keylanguage=$i;
            // ну вот почему всегда вместо простой функции приходится городить черт знает что.
            //  if ($filscheader[$i]==$languageprofile) $keylanguage=$i; // придется сделать по дебильному - ибо // что за ? - откуда оно взялось блджад!!!!
        }
        if ($keylanguage == 29) {
            $keylanguage = 1;
        }
        //if
    }
    //..потом добавим проверку на дебильный символ в конце любой строки с утф...вообще бы в парсере как то опознавание глючны файлов сделать
    if ($filscdata) {
        //echo "<br>DEBUG Script:$cmd Key=$keylanguage Lang=$languageprofile Selected=".$filscheader[$keylanguage]."<br>";
        for ($i = 1; $i < $filsccount; $i++) {
            // echo "debug $i = $filscdata[$i][$keylanguage]   , key=[$keylanguage]<br>";
            // plevel checking NOT added!!!!  graphical icon NOT released!  CFG OPT FUTURE disable all scripts not added
            //echo "  if (".$filscdata[$i][$keylanguage]."==$cmd) <br>";
            if ($filscdata[$i][$keylanguage] . $pid === $cmd) {
                $plevelrequired = $filscdata[$i][3];
                $directcommand = $filscdata[$i][2];
                if ($debug) {
                    echo "DEBUG Command= {$directcommand} (rightsreq={$plevelrequired})<br>";
                }
            }
            //path2 redirector?
            if (strlen($directcommand) < 2) {
                continue;
            }
            $massivedynamics = 0;
            if ($debug) {
                echo "DEBUG for (i=1;i<" . strlen($directcommand) . ");{$i}++) {<br>";
            }
            $parsedcommand = $directcommand;
            //echo "здесь должен быть выход ибо сцуко виснет ";
            for ($i = 1; $i < strlen($directcommand) + 5; $i++) {
                $a1 = strpos($directcommand, "%", $i + 0) + 1;
                if ($a1) {
                    $massivedynamics++;
                    $a2 = strpos($directcommand, "%", 0 + $a1 + 1);
                    //this is first   просто это первый , общественный российский.
                    //echo "Try to corrent schetckik -LAAA!!!$i+$a2-1!!!!!!!new $i==$a2!!!!!!!!!!!!!!!!;<br>       ";
                    $oldi = $i;
                    //$i=$i+($a2-1);  почти верно
                    $i = $a2;
                    //echo "old i=$oldi  new i=$i<br>";
                    if ($oldi > $i) {
                        //echo "Logic error, breaking cycling<br>";
                        $i = $oldi;
                        $i = 100500;
                        continue;
                    }
                    $firstcoord[$massivedynamics] = $a1;
                    $lastcoord[$massivedynamics] = $a2;
                    $cut = substr($directcommand, $a1, $a2 - $a1);
                    $cutnow[$massivedynamics] = $cut;
                    $cutwprc = substr($directcommand, $a1 - 1, $a2 - $a1 + 2);
                    $cutwpercent[$massivedynamics] = $cutwprc;
                    $md = $massivedynamics;
                    if ($debug) {
                        echo "DEBUG Parse [{$i}] param=:: f=" . $firstcoord[$md] . " ; a2-l=" . $lastcoord[$md] . ";- is cut=" . $cutnow[$md] . " = %%::<blu>" . $cutwpercent[$md] . "</blu> = <grn>" . ${$cut} . "</grn><br>";
                    }
                    $replaceto = ${$cut};
                    // fukken shit - admin.php?/   а где все остальное?  крап$parsedcommand=str_replace ($parsedcommand, $cutwprc,$replaceto, $count=1);
                    $parsedcommand = str_replace($cutwprc, $replaceto, $parsedcommand, $count = 2);
                }
                //al@al-desktop:/media# mencoder
                //mencoder: relocation error: mencoder: symbol codec_wav_tags, version LIBAVFORMAT_52 not defined in file libavformat.so.52 with link time reference
            }
        }
        if ($debug) {
            echo "DEBUG Parsed command :: {$parsedcommand}<br>";
        }
        if ($parsedcommand) {
            echo " executing (if you enable system () of course )...<br>";
            $x = system($parsedcommand);
            //ping
            $f = fopen("_logs/cmd.log", "w");
            if ($f) {
                fwrite($f, $x);
            }
            fclose($f);
            lprint("5MIN");
            if ($debug) {
                echo "DEBUG {$x}";
            }
        }
        //    ob_flush () ;
        ////exit;
    }
    //echo "ACTION:cmd=$cmd,str ok,path ok,file=$fileforaction,pid=$pid>";// -+++-
    $path = str_replace("\\\\", "\\", $path);
    // проверка на вшивость -
    //$path=str_replace ("/","\\",$path);
    if ($cmd == cmsg("FMG_CPY_F") and $prauth[$ADM][12]) {
        global $path2;
        copy($path . $fileforaction, $path2 . $fileforaction);
        echo "copy({$path}{$fileforaction},{$path2});";
        echo cmsg("CP_END");
    }
    if ($cmd == cmsg("FMG_MOV_F") and $prauth[$ADM][12]) {
        global $path2;
        copy($path . $fileforaction, $path2 . $fileforaction);
        unlink($path . $fileforaction);
        echo cmsg("MOV_END");
    }
    if ($pr[101]) {
        if ($cmd == cmsg("FMG_DOWNLOAD") and $prauth[$ADM][9]) {
            ob_clean();
            $err = sendfile($path . "/" . $fileforaction);
        }
    }
    //костыль, ибо на некоторых тупых компьютерах почему то пропадает косая и соответственно файл скачать невозможно. куда она пропадает никто не знает.
    if ($cmd == cmsg("FMG_DOWNLOAD") and $prauth[$ADM][9]) {
        ob_clean();
        $err = sendfile($path . $fileforaction);
    }
    if ($cmd == cmsg("FMG_UPLOAD") and $prauth[$ADM][36] or $cmd == cmsg("FMG_DUMP_UPLOAD") and $prauth[$ADM][36]) {
        $path = del_endslash($path);
        //	if ($codekey==7) demo ();
        //<input type="hidden" name="MAX_FILE_SIZE" value="8000000000">
        ?>
<form enctype="multipart/form-data" action="filemgr.php" method="post">
	<input name=userfile type=file class=buttonS> <input type=Submit name=go class=buttonS>
	<input type = hidden name = path value ="<?php 
        echo $path;
        ?>
"><?php 
        hidekey("pid", $pid);
        if ($cmd == cmsg("FMG_DUMP_UPLOAD")) {
            echo "Dump loading.<br>";
        }
        echo "</form>";
        hidekey("write", $cmd);
        exit;
        //moved from non-function zone
    }
    //возможно сюда присобачим кнопку удаления из админки точнее ссылки с нее из w.php :)
    //if (($cmd==cmsg("FMG_UNSHARE"))and($prauth[$ADM][36])) {    echo "not implemented";}
    if ($cmd == cmsg("FMG_SHARE") and $prauth[$ADM][36] or $coreredir == "SH_UPDD_FL") {
        $path = del_endslash($path);
        // -- SHARE STEP 1 --
        if ($multiaction) {
            global $filearrcount;
            // 0
            if ($filearrcount > 0) {
                exit;
            }
            // disables FMG_SHARE for cycle executing;  only one action allowed for one or multiaction files.
            global $fileforaction;
            $filearrcount = count($fileforaction);
        }
        // праздник главное вовремя закончить  тогда он ьудет долго помниться как приятное событие
        // multiaction==1  CFG OPT FUTURE  должен добавлять много файлов по идее, однако пока отрабатывается по файлу за раз.
        if ($multiaction) {
            echo "Multiaction mode.  Selected files={$filearrcount}<br>";
        }
        //..if ($multiaction==1) {global $filearrcount;$stroka.=$filearrcount;};
        if (!$multiaction) {
            $file = $path . "/" . $fileforaction;
        }
        if ($multiaction) {
            for ($a = 0; $a < $filearrcount; $a++) {
                $file[$a] = $path . "/" . $fileforaction[$a];
                echo "File {$a}: {$fileforaction[$a]}<br>;";
            }
            $filelistmassive = base64_encode(implode($fileforaction, "¦"));
            //список и число объектов надо передать вместе с multiaction
        }
        //лучше всего массив с файлами передать в виде одной переменной
        if ($coreredir == "SH_UPDD_FL") {
            // maybe
            if (!$multiaction) {
                global $destinationfilename, $filesizeinmb;
                $file = $destinationfilename;
            }
            if ($multiaction) {
                global $destinationfilename, $filesizeinmb;
                echo "SH_UPDD_FL unimplemented<br>";
                echo "I dont know where i take destfilename {$destinationfilename} -- {$file} (file)<bR>";
                //   $file=$destinationfilename;
            }
        }
        ?>
<form enctype="multipart/form-data" action="filemgr.php" method="post"><?php 
        if (!$multiaction) {
            echo "File: {$file}<br>";
        }
        //Sif (!$multiaction) {   echo "File: $file<br>";}
        lprint(GEN_OPT);
        echo "<br>";
        radio("share", "#GENLNK_UNREG", "GENLNK_UNREG");
        echo "<br>";
        radio("share", "FMG_UNSHARE", "FMG_UNSHARE");
        echo "<br>";
        if (!$pr[70]) {
            radio("share", "GENLNK_REG", "GENLNK_REG");
            if ($ADM < 1) {
                lprint("FILE_UNAUTH_NOTE");
            }
            echo "<br>";
            if ($ADM > 0) {
                radio("share", "GEN_PLVL_USR", "GEN_PLVL_USR");
                echo "<select name=groupplevels>";
                for ($a = 0; $a < 10; $a++) {
                    echo "<option>" . $a;
                }
                echo "</select>";
                //if ($ADM<1) lprint ("FILE_UNAUTH_NOTE"); - check unauthorized access
                echo "<br>";
                //незарегистрированные в любом случае не будут видеть список пользователей ресурса в раздаче.
                radio("share", "GENLNK_USR", "GENLNK_USR");
                echo "<br>";
                echo "<select name=\"username[]\" multiple size=15>";
                for ($a = 1; $a < count($prauth); $a++) {
                    echo "<option>" . $prauth[$a][0] . "";
                    $cnt++;
                }
                echo "</select>";
            }
            echo "<br>";
        }
        lprint(COMM);
        inputtext("commfile", 15, $commfile);
        echo "<br>";
        if ($prauth[$ADM][2]) {
            checkbox(1, "yes");
            lprint(GEN_FL_EPX);
        } else {
            hidekey("yes", 1);
        }
        checkbox(1, "srchen");
        lprint(GEN_FILENSRCH);
        echo "<br>";
        if ($coreredir == "SH_UPDD_FL") {
            hidekey("coreredir", "step2");
        }
        if (!$multiaction) {
            hidekey("file", $file);
        }
        if ($multiaction) {
            hidekey("multiactionsign", $multiaction);
            hidekey("file", $filelistmassive);
            $path = add_endslash($path);
            hidekey("pathmulti", base64_encode($path));
            hidekey("filelistmassive", $filelistmassive);
            //посылаем дважды на пробу   и каждый раз нихрена нет почему то  какого ???
            hidekey("filearrcount", $filearrcount);
        }
        submitkey("go", "FMG_SHARE");
        // кнопка раздать файл
        hidekey("pid", $pid);
        ?>
</form>
<?php 
        echo " ";
        hidekey("write", $cmd);
        if ($multiaction == 1) {
            exit;
        }
        //   !
        ////moved from non-function zone -- SHARE STEP 1 -- ENDING
        //ЭТО ОКончание первого шага раздачи
    }
    //
    //	echo "Мы получили из пред сессии  $cmd $fileforaction!<br> <BR>";   ikonki mlya !
    //echo "<br>".cmsg ("FMG_MHLP")."<br>";  ХЕЛП ОТКЛЮЧЕН
    if ($noscreenmode == false) {
        echo "";
    }
    //тут пишем команды и выполняем их
    //echo "628_Failure-- protect::";print_r ($protect); неправильно обрабатывался массив  почему то вместо него шла переменная о_О CFG OPT FUTURE
    if (is_Array($protect)) {
        if (!$prauth[$ADM][38]) {
            $protect[] = "*.php";
        }
    }
    // скрываем файлы скрипта чтобы их никто не стер.
    //$protect[]="*.key";// не снимать комментарий - безопасность снизится до 0
    //if ($OSTYPE=="LINUX") if (($sd[10])AND($ADM==0)) $path=$path."/";  //bug with unregistered users  folder lost /
    //if ($OSTYPE=="WINDOWS") if (($sd[10])AND($ADM==0)) $path=$path."\\";
    if ($OSTYPE == "WINDOWS") {
        if ($cmd == cmsg("FMG_ENTER") and $prauth[$ADM][7]) {
            $path = $path . $fileforaction . "\\";
        }
    }
    if ($OSTYPE == "LINUX") {
        if ($cmd == cmsg("FMG_ENTER") and $prauth[$ADM][7]) {
            $path = $path . $fileforaction . "/";
        }
    }
    if ($OSTYPE == "WINDOWS") {
        if ($cmd == cmsg("FMG_DRV") and $prauth[$ADM][8]) {
            $path = $stroka . ":/";
        }
    }
    if ($OSTYPE == "LINUX") {
        if ($cmd == cmsg("FMG_DRV") and $prauth[$ADM][8]) {
            $path = "/media/{$stroka}/";
        }
    }
    if ($OSTYPE == "LINUXALT") {
        if ($cmd == cmsg("FMG_DRV") and $prauth[$ADM][8]) {
            $path = "/mnt/{$stroka}/";
        }
    }
    //CFG OPT FUTURE
    if ($OSTYPE == "WINDOWS") {
        if ($cmd == cmsg("FMG_EXIT") and $prauth[$ADM][7]) {
            $path = dirname($path) . "\\";
        }
    }
    //$path=folderupdir ($path);
    if ($OSTYPE == "LINUX") {
        if ($cmd == cmsg("FMG_EXIT") and $prauth[$ADM][7]) {
            $path = dirname($path) . "/";
        }
    }
    if ($cmd == cmsg("FMG_SRCH") and $prauth[$ADM][7]) {
        $file = $path . $fileforaction;
        // далее скрипт рассчитан на эту переменную, к томуже массив стереть надо:)
        $a = searchplus($file, $fileforaction, $stroka);
        if ($pr[12]) {
            $act = "FILEMGR_SRCH {$cmd} {$file} word={$stroka}";
            logwrite($act);
        }
        // логируемся
        //if ($a==false) die ("<br>Ошибка!Файл $file не найден!!!.<br>");
        echo " <form action=filemgr.php method=post>";
        hidekey("pid", $pid);
        hidekey("write", $cmd);
        submitkey("cmd" . $pid, "FMG_RESET");
        echo "</form>";
        exit;
    }
    //If ($prauth[$ADM][2]==true) {
    // blocked commands
    if ($cmd == cmsg("FMG_MKDIR") and $prauth[$ADM][12]) {
        //if ($codekey==7) demo ();
        if ($multiaction == 1) {
            global $filearrcount;
            $stroka .= $filearrcount;
        }
        $err = mkdir($path . $stroka);
    }
    //if ($cmd==cmsg("FMG_DELALL")) $err=rmdir ($path.$fileforaction);
    if ($cmd == cmsg("FMG_JOINFIL") and $prauth[$ADM][12]) {
        if ($codekey == 7) {
            demo();
        }
        $err = joinfiles($path, $mask, $protect, $stroka);
    }
    if ($cmd == cmsg("FMG_DELALL") and $prauth[$ADM][13]) {
        // rmdir теперь  полное удаление (!)
        if ($codekey == 7) {
            demo();
        }
        if ($prauth[$ADM][5] == true) {
            if ($stroka == "accept") {
                $err = kill_dir($path . $fileforaction);
            } else {
                echo "Вы не сказали accept";
            }
        } else {
            msgexiterror("notright", "", "disable");
            exit;
        }
        // круто удаляет отключим
    }
    if ($cmd == cmsg("FMG_EXECUTE") and $prauth[$ADM][8]) {
        if ($codekey == 7) {
            demo();
        }
        echo cmsg("FMG_MOD_IN") . "<br>";
        require $filemgrmod;
        echo cmsg("FMG_MOD_OUT") . "<br>";
    }
    if ($OSTYPE == "LINUX") {
        if ($cmd == cmsg("FMG_UNRAR") and $prauth[$ADM][12]) {
            $file = $path . $fileforaction;
            //rar_open rar_list PHP by standart is unsupported!!!
            $unrared = substr($fileforaction, 0, strrpos($fileforaction, '.'));
            // elf  elfkz  удаляем расширение рар
            @mkdir($path . $unrared);
            echo "Creating folder {$unrared}<br>";
            $extractionpoint = $path . $unrared;
            echo "Extracting to " . $extractionpoint . ";<br>";
            $zip = system("unrar x \"{$file}\" \"{$extractionpoint}\"");
            echo "<br>Result={$zip}  ";
            //echo '"unrar e \"'.$file.'\" \"'.$extractionpoint.'\""'; echo " <br>";
        }
    }
    if ($OSTYPE == "LINUX") {
        if ($cmd == cmsg("FMG_RAR") and $prauth[$ADM][12]) {
            $file = $path . $fileforaction;
            //rar_open rar_list PHP by standart is unsupported!!!
            $unrared = substr($fileforaction, 0, strrpos($fileforaction, '.'));
            // elf  elfkz  удаляем расширение рар
            // @mkdir ($path.$unrared);
            // echo "Creating folder $unrared<br>";
            $extractionpoint = $path . $unrared;
            echo "Archiving to  to " . $fileforaction . ".rar;<br>";
            $zip = system("rar a \"{$fileforaction}\".rar \"{$file}\"");
            echo "<br>Result={$zip}  ";
            //echo '"unrar e \"'.$file.'\" \"'.$extractionpoint.'\""'; echo " <br>";
        }
    }
    if ($cmd == cmsg("FMG_UNZIP") and $prauth[$ADM][12]) {
        $file = $path . $fileforaction;
        //rar_open rar_list PHP by standart is unsupported!!!
        $zip = zip_open($file);
        $unrared = substr($fileforaction, 0, strrpos($fileforaction, '.'));
        // elf  elfkz  удаляем расширение рар
        @mkdir($path . $unrared);
        if ($zip) {
            while ($zip_entry = zip_read($zip)) {
                echo "Name: " . zip_entry_name($zip_entry) . "\n";
                echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
                echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
                echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
                if (zip_entry_open($zip, $zip_entry, "r")) {
                    echo "File Contents:\n";
                    $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
                    //echo "$buf\n";
                    $x = fopen($path . zip_entry_name($zip_entry), "w");
                    @fwrite($x, $buf);
                    @fclose($x);
                    zip_entry_close($zip_entry);
                }
                echo "\n";
            }
            zip_close($zip);
        }
    }
    if ($cmd == cmsg("FMG_TEST")) {
        //at this moment start new script
        echo cmsg("FMG_MOD_IN") . "<br>";
        require "mp3runonce.php";
        echo cmsg("FMG_MOD_OUT") . "<br>";
    }
    if ($cmd == cmsg("FMG_DEL") and $prauth[$ADM][13]) {
        if ($codekey == 7) {
            demo();
        }
        @($err1 = unlink($path . $fileforaction));
        @($err2 = rmdir($path . $fileforaction));
    }
    if ($cmd == cmsg("FMG_NEW") and $prauth[$ADM][12]) {
        //if ($codekey==7) demo ();
        //echo "ibane ug if ($multiaction==1) {global $filearrcount;$stroka.=$filearrcount;};<br>";
        if ($multiaction == 1) {
            global $filearrcount;
            $stroka .= $filearrcount;
        }
        @($err = fopen($path . $stroka, "r"));
        if ($err == false) {
            $err = fopen($path . $stroka, "a");
        }
    }
    if ($cmd == cmsg("FMG_REN") and $prauth[$ADM][12]) {
        if ($codekey == 7) {
            demo();
        }
        if ($multiaction == 1) {
            global $filearrcount;
            $stroka .= $filearrcount;
        }
        $err = rename($path . $fileforaction, $path . $stroka);
    }
    if ($cmd == cmsg("FMG_EDIT") and $prauth[$ADM][12]) {
        if ($codekey == 7) {
            demo();
        }
        $err = simpleedit($path . $fileforaction, $stroka);
    }
    if ($pr[12]) {
        $act = "FILEMGR_CMD {$cmd} {$file}({$path} {$fileforaction}) word={$stroka}";
        if ($cmd) {
            if ($cmd !== cmsg("FMG_ENTER") and $cmd !== cmsg("FMG_EXIT")) {
                logwrite($act);
            }
        }
    }
    // логируемся
    // } else { echo "<br><font color=red id=errfnt>".cmsg ("LIM")."</font>".cmsg ("FMG_HLP2");}
    #selectin files using  fileio.php
    if (!$path or $cmd == cmsg("FMG_RESET")) {
        $path = $defaultpath;
        $mask = "*.*";
        $file = "";
        $stroka = "";
    }
    //$path=str_replace ("//","/",$path);проверка на вшивость -
    if ($err) {
        echo "{$err} <br>";
    }
    //global disables visual menu for executing action
    if (!$multiaction) {
        // start menu show
        // маска для файла может быть поиск по части имени и поиск по формату
        //выделить обращение к директории и режим парсинга (маска)
        //насчет маски - возможно стоит ее добавить в поисковик МЕ
        if ($pid == 1) {
            if ($pr[86]) {
                if ($pr[87] or $prauth[$ADM][7]) {
                    //либо право на чтение у юзера, либо разрешение искать всем.
                    echo "<br><form action=filemgr.php method=post>";
                    lprint("SRCH_FILE");
                    inputtxt("searchfilenew", 30);
                    submitkey("start", "DALEE");
                    echo "</form>";
                    if ($searchfilenew) {
                        echo $searchfilenew;
                    }
                }
            }
        }
        echo "<form action=filemgr.php method=post>";
        hidekey("write", $cmd);
        //выделить отдельно модуль создания меню выбора файла.
        $file = getdirdata($path, $mask, $protect);
        //print_r ($file);
        if ($file) {
            asort($file);
        }
        $dircnt = count($file);
        if ($ADM > 0) {
            echo "<font color=blue>{$path}</font><br>";
        }
        hidekey("pid", $pid);
        // cобственно это и мешает многооконной идее ))   вроде теперь кое-
        for ($a = 1; $a < $maxmgrs + 1; $a++) {
            // save pid data
            $strokaname = "stroka" . $a;
            $pathname = "path" . $a;
            $fileforactionname = "fileforaction" . $a;
            $maskname = "mask" . $a;
            global ${$strokaname}, ${$pathname}, ${$fileforactionname}, ${$maskname};
            ${$pathname} = str_replace("\\\\", "\\", ${$pathname});
            ${$pathname} = str_replace("\\\\", "\\", ${$pathname});
            if ($OSTYPE == "WINDOWS") {
                $path = str_replace("\\\\", "\\", $path);
            }
            // проверка на вшивость -
            if ($OSTYPE == "LINUX") {
                $path = str_replace("\\\\", "\\", $path);
            }
            // проверка на вшивость -xc
            hidekey("stroka" . $a, ${$strokaname});
            hidekey("mask" . $a, ${$maskname});
            hidekey("path" . $a, ${$pathname});
            hidekey("fileforaction" . $a, ${$fileforactionname});
        }
        //lprint ("FMG_CREATE");
        if ($ADM > 0) {
            inputtext("stroka" . $pid, 15, $stroka);
        }
        //<textarea type = text name=stroka<?=$pid  cols= 15 rows=1 wrap=NONE><?=$stroka; </textarea>
        if ($ADM > 0) {
            $hidefolder = $prauth[$ADM][52];
        } else {
            $hidefolder = $pr[73];
        }
        if (!$hidefolder) {
            lprint("FMG_MASK");
            inputtext("mask" . $pid, 15, $mask);
        }
        //<textarea type = text name=mask<?=$pid  cols= 7 rows=1 wrap=NONE><?=$mask; </textarea> <?
        if ($noscreenmode) {
            if ($prauth[$ADM][7]) {
                //FMG.pid удален
                echo "generate cmd{$pid}<br>";
                //$cmdx="cmd".$pid;
                //работает но передает только вторую букву [1] FIXED?
                submitkey("cmd", "FMG_SRCH");
                submitkey("cmd", "FMG_ENTER");
                submitkey("cmd", "FMG_EXIT");
            }
            if ($prauth[$ADM][8]) {
                submitkey("cmd", "FMG_DRV");
                if ($filemgrmod and $prauth[$ADM][2] == true) {
                    submitkey("cmd", "FMG_EXECUTE");
                }
            }
            if ($prauth[$ADM][12]) {
                submitkey("cmd", "FMG_MKDIR");
                submitkey("cmd", "FMG_JOINFIL");
                submitkey("cmd", "FMG_UNZIP");
                submitkey("cmd", "FMG_TEST");
                if ($OSTYPE == "LINUX") {
                    submitkey("cmd", "FMG_UNRAR");
                }
                if ($OSTYPE == "LINUX") {
                    submitkey("cmd", "FMG_RAR");
                }
                submitkey("cmd", "FMG_REN");
                submitkey("cmd", "FMG_EDIT");
                submitkey("cmd", "FMG_NEW");
            }
            if ($prauth[$ADM][13]) {
                submitkey("cmd", "FMG_DELALL");
                submitkey("cmd", "FMG_DEL");
            }
            if ($prauth[$ADM][9]) {
                submitkey("cmd", "FMG_DOWNLOAD");
            }
            if ($prauth[$ADM][36]) {
                submitkey("cmd", "FMG_UPLOAD");
            }
            if ($prauth[$ADM][54]) {
                submitkey("cmd", "FMG_SHARE");
                //	 submitkey ("cmd","FMG_UNSHARE");
            }
            if (!$pr[75]) {
                submitkey("cmd", "FMG_REF");
                submitkey("cmd", "FMG_RESET");
            }
            if (!$hidefolder) {
                submitkey("cmd", "FMG_MASKAPPLY");
            }
            //scripting showkey mechanism
            if ($filscdata) {
                echo "<br>Configured scripts:<br>";
                for ($i = 1; $i < $filsccount; $i++) {
                    // echo "debug $i = $filscdata[$i][$keylanguage]   , key=[$keylanguage]<br>";
                    if ($filscdata[$i][$keylanguage] == "") {
                        continue;
                    }
                    submitkey("cmd", "." . $filscdata[$i][$keylanguage]);
                }
                //  fwrite ($a,"ID¦NAME¦Script¦Plevel¦keynames-icon¦russian¦english¦f1_russian¦f1_english¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦".$addOSenter);
                /*.*1¦mencoder %path%%file% -oac mp3lame -ovc x264 -o %path%%file%.avi¦0¦0¦перекодить в h264¦encode h264¦0¦0¦0¦0¦0
                2¦mencoder %path%%file% -oac mp3lame -ovc mpg -o %path%%file%.avi¦0¦0¦перекодить в mpeg¦encode mpeg¦0¦0¦0¦0¦0¦0
                */
            }
        }
        if ($noscreenmode == false) {
            if ($prauth[$ADM][7]) {
                submitimg("cmd" . $pid, "FMG_SRCH", "_ico/target.png");
                submitimg("cmd" . $pid, "FMG_ENTER", "_ico/openfolder.png");
                submitimg("cmd" . $pid, "FMG_EXIT", "_ico/folderup.png");
            }
            if ($prauth[$ADM][8]) {
                submitimg("cmd" . $pid, "FMG_DRV", "_ico/drv.png");
                submitimg("cmd" . $pid, "FMG_EXECUTE", "_ico/execute.png");
            }
            if ($prauth[$ADM][12]) {
                submitimg("cmd" . $pid, "FMG_MKDIR", "_ico/newfolder.png");
                submitimg("cmd" . $pid, "FMG_REN", "_ico/rename.png");
                submitimg("cmd" . $pid, "FMG_EDIT", "_ico/editfmg.png");
                submitimg("cmd" . $pid, "FMG_NEW", "_ico/newfile.png");
                submitimg("cmd" . $pid, "FMG_JOINFIL", "_ico/joinfiles.png");
                submitimg("cmd" . $pid, "FMG_UNZIP", "_ico/backup.png");
                submitimg("cmd" . $pid, "FMG_TEST", "_ico/apply_f2.png");
                if ($OSTYPE === "LINUX") {
                    submitimg("cmd" . $pid, "FMG_UNRAR", "_ico/backup.png");
                }
                if ($OSTYPE === "LINUX") {
                    submitimg("cmd" . $pid, "FMG_RAR", "_ico/backup.png");
                }
            }
            if ($prauth[$ADM][13]) {
                if ($prauth[$ADM][5] == true) {
                    submitimg("cmd" . $pid, "FMG_DELALL", "_ico/removefolder.png");
                }
                submitimg("cmd" . $pid, "FMG_DEL", "_ico/removefile.png");
            }
            if ($prauth[$ADM][9]) {
                submitimg("cmd" . $pid, "FMG_DOWNLOAD", "_ico/download.png");
            }
            if ($prauth[$ADM][36]) {
                if (!$pr[75]) {
                    submitimg("cmd" . $pid, "FMG_UPLOAD", "_ico/upload.png");
                }
                if ($pr[75]) {
                    submitimg("cmd" . $pid, "FMG_UPLOAD", "_ico/uploadalt.png");
                }
            }
            if ($prauth[$ADM][54]) {
                submitimg("cmd" . $pid, "FMG_SHARE", "_ico/w_accept.png");
                //submitimg ("cmd".$pid,"FMG_UNSHARE","_ico/w_close.png");
            }
            if (!$pr[75]) {
                submitimg("cmd" . $pid, "FMG_REF", "_ico/refresh.png");
                submitimg("cmd" . $pid, "FMG_RESET", "_ico/reset.png");
            }
            if (!$hidefolder) {
                submitimg("cmd" . $pid, "FMG_MASKAPPLY", "_ico/stargreen.png");
            }
        }
        if ($pid == 1 and $prauth[$ADM][12]) {
            // только 1 раз исполняется этот блок .  на 1 пиде.
            echo "<br>";
            echo cmsg("FMG2");
            submitimg("cmd" . $pid, "FMG_CPY_F", "_ico/copyfile.png");
            echo " ";
            submitimg("cmd" . $pid, "FMG_MOV_F", "_ico/movefile.png");
            echo " ";
            //submitimg ("cmd".$pid,"FMG_CPY_FLD","_ico/copyfolder.png");echo " ";
            submitimg("cmd" . $pid, "FMG_MOV_FLD", "_ico/movefolder.png");
            echo " ";
        }
        ?>
 <input type = hidden name = path<?php 
        echo $pid;
        ?>
 value ="<?php 
        echo $path;
        ?>
" >
<?php 
        if ($hidefolder) {
            unset($file);
        }
        //no filelist
        if ($file) {
            echo "<BR>" . cmsg("FMG_FILDB") . ":<select name =fileforaction" . $pid . "[] multiple size = " . $prauth[$ADM][49] . ">";
            sort($file);
            //нет реакции... print_r ($file); echo "Rewefkowe";
            for ($a = 0; $a < $dircnt; $a++) {
                if ($file[$a][0] === ".") {
                    continue;
                }
                if ($file[$a][0] === "..") {
                    continue;
                }
                if ($file[$a][0] === false) {
                    continue;
                }
                if ($file[$a][1]) {
                    $dir = "==>";
                } else {
                    $dir = "";
                }
                $fsizer = "";
                if ($dir !== "==>") {
                    $fsize = $file[$a][2];
                    // settype ($fsizer,"string");
                    if ($fsize < 1024) {
                        $fsizer = "[" . round($fsize, 1) . "b]";
                    }
                    if ($fsize < 1) {
                        $fsizer = "";
                    }
                    if ($fsize > 1024) {
                        $fsizer = "[" . round($fsize / 1024, 1) . "Kb]";
                    }
                    if ($fsize > 1024 * 1024) {
                        $fsizer = "[" . round($fsize / 1024 / 1024, 2) . "Mb]";
                    }
                    if ($fsize > 1024 * 1024 * 1024) {
                        $fsizer = "[" . round($fsize / 1024 / 1024 / 1024, 2) . "Gb]";
                    }
                }
                //$filesizemb=$file[$a][2]/1024;
                echo "<option value=\"" . $file[$a][0] . "\">" . $dir . $file[$a][0] . "" . $fsizer . "</option>";
            }
            // size (".$file[$a][2].")
            if ($pr[11] == 1) {
                //protected cmds
            }
            echo "</select></form>";
        }
        echo "<br>";
        $dbsdiskfree = round((int) (@disk_free_space($path) / (1024 * 1024 * 1024)), 1);
        $dbsdisktotal = (int) (@disk_total_space($path) / (1024 * 1024 * 1024));
        if ($pid == 1) {
            if ($ADM) {
                echo "Selected : Free " . $dbsdiskfree . "Gb ";
            }
            // сделать переключатель дисков или что то вроде указателя
            if ($ADM) {
                echo "\\" . $dbsdisktotal . "Gb<br>";
            }
            $disks = explode(",", $pr[79]);
            for ($a = 0; $a < count($disks); $a++) {
                $diskfree[$a] = round(@disk_free_space($disks[$a]) / (1024 * 1024 * 1024), 1);
                //Gb
                $disktotal[$a] = round(@disk_total_space($disks[$a]) / (1024 * 1024 * 1024), 1);
                //Gb
                if (!$pr[80]) {
                    echo "Disk " . $a . ":: " . $diskfree[$a] . "Gb \\ " . $disktotal[$a] . "Gb.<br>";
                }
                $avgfree = $avgfree + $diskfree[$a];
                $avgtotal = $avgtotal + $disktotal[$a];
            }
            $avgfree = $avgfree;
            $avgtotal = $avgtotal;
            echo " Summary :Free " . $avgfree . "Gb ";
            echo "\\" . $avgtotal . "Gb";
            echo "<br>";
        }
        //only pid 1 shows
    }
    // start menu show
}
Esempio n. 7
0
    exit;
}
//второе окно
##начало проверка ключа
if ($dbskeystate === false and $addkeystate === true) {
    $regresult = installnewkey($key);
}
if ($dbskeystate === false and $addkeystate === false) {
    $nokeys = 1;
}
// тут затребовать загрузку add.key
if ($dbskeystate === true and $addkeystate === true) {
    $regresult = addnewkey($key);
}
if ($regresult) {
    msgexiterror("key", $regresult, "login.php");
}
##конец проверка ключа
//END OF LIMITATIONS
echo "<cite><p>" . cmsg("WELCOME!") . " dbscript , {$_SERVER['PHP_AUTH_USER']}<br></cite>";
if ($pr[36] == "on") {
    exit;
}
if ($prauth[$ADM][16] == 0) {
    //	echo "Предыдущий логин: {$_REQUEST['OldAuth']}<br><h6>";
    print "<h" . $sd[3] . ">";
    if ($helpgo == "") {
        lprint("HELP_HELLO");
    }
    //echo " Вы можете запустить преобразование текущей базы в excel совместимый формат и скачать ее, но для обратного преобразования ее потребуется послать сюда dj--alex@yandex.ru.<br> внимание! не отделять продукт от его ID!.<br>";
}
Esempio n. 8
0
function search()
{
    global $go, $olddvID, $selectedfield, $field, $fields;
    global $commode, $multisearch, $vID, $adm;
    global $mode, $tbl, $desc, $pr, $review, $mv;
    global $site, $sd, $lock, $db, $totalbas, $k;
    global $filbas, $namebas, $scrdir, $formatscr, $category;
    global $tablemysqlselect, $hostmysqlselect, $categorymode, $scrcolumn;
    global $tblmysqlselect, $md1column, $md2column, $dbtype, $writeright;
    global $DBC, $vIDold, $mvcnt, $b, $dbc, $prdbdata, $scrnum, $mycol, $mycols;
    global $myrow;
    //bugs with screen without it
    global $res16;
    //maybe bug with res16 передаче
    global $vID2;
    global $limitenable, $selectenable, $field, $printlimit, $addsql, $kol, $dbtype, $xfgetlimit;
    //  глобализация как обычно млин
    global $oldmode;
    if ($oldmode > 7 and $oldmode < 8) {
        // затычка для случая с сбросом искомой колонки
        $x = explode(".", $oldmode);
        $kol = $x[1];
        $mode = 7;
        if ($debug) {
            echo "Reselect column for mode 7 : {$kol}";
        }
    }
    //echo "dbtype=$dbtype;"; тут он есть , где потерялся тогда??
    ###########################################################
    //MYSQLMODESEARCHSTART					NON-GLOBAL MODES //
    ###########################################################
    //процедура поиска по имени - mode 1 - SQL
    if ($mode == 1 and $prdbdata[$tbl][12] != "fdb") {
        @($connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype));
        @dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        global $query, $connect;
        global $mzdata, $mycols, $myrow, $findrecords, $scrcolumn;
        $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $mycol[$md1column] . " LIKE '%" . $vID . "%'";
        if ($prdbdata[$tbl][15] > 0 and $vID2 !== "") {
            $query = $query . " AND " . $mycol[$prdbdata[$tbl][15]] . "= '" . $vID2 . "'";
        }
        $query = $query . $addsql;
        // сортировка, лимит
        selectedprintsql($data);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    //процедура поиска по коду  - mode 2 - SQL
    if ($mode == 2 and $prdbdata[$tbl][12] != "fdb") {
        $connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
        dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        global $query, $connect;
        global $mzdata, $mycols, $myrow, $findrecords, $scrcolumn;
        settype($vID, "integer");
        if ($vID == 0) {
            msgexiterror("needcode", $mode, "disable");
        }
        $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $mycol[$md2column] . "= " . $vID;
        if ($prdbdata[$tbl][15] > 0 and $vID2 !== "") {
            $query = $query . " AND " . $mycol[$prdbdata[$tbl][15]] . "= '" . $vID2 . "'";
        }
        $query = $query . $addsql;
        // сортировка, лимит
        selectedprintsql($data);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    //mode 3 процедура SQL поиска по категории
    if ($mode == 3 and $prdbdata[$tbl][12] != "fdb") {
        $connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
        dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        if ($categorymode == false) {
            msgexiterror("nocategory", $mode, "disable");
        }
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        $myrow = $data[0];
        global $query, $connect, $mzdata, $mycols, $myrow, $findrecords, $scrcolumn;
        $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $mycol[$category] . " LIKE '%" . $vID . "%'";
        if ($prdbdata[$tbl][15] > 0 and $vID2 !== "") {
            $query = $query . " AND " . $mycol[$prdbdata[$tbl][15]] . "= '" . $vID2 . "'";
        }
        $query = $query . $addsql;
        // сортировка, лимит
        selectedprintsql($data);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    if ($mode == 9) {
        $connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
        dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        global $fullfield;
        if ($categorymode == false) {
            msgexiterror("nocategory", $mode, "disable");
        }
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        $myrow = $data[0];
        // bordf\der
        $namecategorycol = $myrow[$category];
        $query = "SELECT DISTINCT {$namecategorycol} FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $mycol[$category] . " LIKE '%" . $vID . "%'";
        if ($vID == "!101") {
            $query = "SELECT DISTINCT {$namecategorycol} FROM `" . $prdbdata[$tbl][5] . "`";
        }
        if ($fullfield) {
            $query = str_replace("LIKE", "=", $query);
            $query = str_replace("%", "", $query);
            //echo $query;
        }
        if (!$pr[8]) {
            echo "DEBUG - {$query}";
        }
        $result = dbs_query($query, $dbtype);
        while ($myrow = dbs_fetch_row($result, $dbtype)) {
            echo "<a href='r.php?tbl={$tbl}&mode=3&vID=" . $myrow[0] . "'> " . $myrow[0] . "</a><br>";
        }
        exit;
    }
    //mode 8 процедура SQL поиска по любой колонке
    if ($mode == 8 and $prdbdata[$tbl][12] != "fdb") {
        global $presettedmode;
        $mode = 6;
        $presettedmode = 3;
    }
    if ($mode == 7 and $prdbdata[$tbl][12] != "fdb") {
        //ubrat vse vybory polej ne svyazannye s tekushim mode==7( po menu)
        global $presettedmode, $res16, $mznumb, $codekey, $fullfield;
        echo "kol={$kol}";
        $field = $kol;
        global $prauth, $ADM;
        // добавлено для переключения продвинутого поиска
        //	echo "Field activated first $field<br>"; //TO DELETE AFTE
        $mode = 6;
        $mode7 = 1;
        //$presettedmode=1.1; bylo 1.1
        $eid = encodevID($vID);
        $eolddid = encodevID($olddvID);
        $selectedfield = "!1" . $field;
        // если field выбран то выполняется
        ?>
 	<form action="r.php" method=post>
<?php 
        if ($multisearch == 1) {
            // urlencode ($oldvID);serialize ($olddvID); $vID="!S".$vID;
            hidekey("vID", $eolddid);
        } else {
            hidekey("vID", $eid);
        }
        hidekey("mode", 7);
        hidekey("adm", $adm);
        hidekey("commode", $commode);
        hidekey("tbl", $tbl);
        hidekey("multisearch", $multisearch);
        hidekey("fullfield", $fullfield);
        hidekey("selectedfield", $selectedfield);
        hidekey("review", $review);
        hidekey("vID2", $vID2);
        hidekey("kol", $kol);
        //	submitkey ("go","R_SEL_ROW");// проверить чтобудет если искать по значению сортировки удаляем уже не нужно :))
        echo " </form> ";
    }
    //mode 6 процедура SQL поиска по выбранной колонке
    if ($mode == 6 and $prdbdata[$tbl][12] != "fdb") {
        $connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
        global $categorymode, $mode, $fullfield;
        global $mode6, $m6field, $m6count;
        global $mycols, $mycol, $del, $res16, $presettedmode, $selectedfield, $fields;
        global $partquery, $vID, $mznumb;
        $res16 = $prdbdata[$tbl][16];
        // Лимит колонок
        if ($mode7 == 1) {
            $res16 = $selectedfield;
        }
        $a = prefixdecode($res16);
        //echo "PREFIX $res16";
        dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        //$mycol[$md1column]".."
        $mode6 = array();
        global $query, $connect;
        global $mzdata, $mycols, $myrow;
        global $findrecords, $scrcolumn;
        decodecols();
        $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $partquery;
        if ($prdbdata[$tbl][15] > 0 and $vID2 !== "") {
            $query = $query . " AND " . $mycol[$prdbdata[$tbl][15]] . "= '" . $vID2 . "'";
        }
        //if (!$pr[8]) { echo "AFTER DECODE categorymode=$categorymode,mode=$mode,m6count=$m6count,	 mode6=$mode6,m6field=$m6field,mycols=$mycols,mycol=$mycol,del=$del,partquery=$partquery,vID=$vID<br>";}
        $query = $query . $addsql;
        // сортировка, лимит
        selectedprintsql($data);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    //MYSQLMODESEARCHEND
    ###########################################################
    //CSVMODESEARCH						NON GLOBAL MODE		 //
    ###########################################################
    //	if (($prdbdata[$tbl][15]>0)AND ($vID2!=="")) { $query = $query." AND ".$mycol[$prdbdata[$tbl][15]]."= '".$vID2."'";}; // не внедрено т.к. есть ошибка с вызовом из screen которая заставляет правильно от 1 рез.
    // процедура поиска по имени  - mode 1 - CSV
    if ($mode == 1 and $prdbdata[$tbl][12] == "fdb") {
        $findrecords = 0;
        echo cmsg("RF_RESSRCH") . $namebas . " - " . $vID . ":\n\n";
        $vIDold = $vID;
        $vID = strtolower($vID);
        // @$f=fopen ("_data/".$filbas,"r") or die ("Файл базы не найден");
        // echo ""; $z=xfgetcsv ($f,$xfgetlimit,"¦");
        // $mycol=$z;$myrow=array ();$selected=array ();//added
        //$md1column=1;$md2column=0;
        //echo "$cfgmod=cfg;$filbas=fil;$namebas=na,;$md1column=md1;$md2column=md2;<br>";
        $data = readdescripters();
        $f = $data[4];
        //echo "$cfgmod=cfg;$filbas=fil;$namebas=na,;$md1column=md1;$md2column=md2;<br>";rd вообще не возвр данные.
        rfsysdatareq();
        // возвращаем потерянные хер знает где переменные
        for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
            $k = count($dbc);
            //echo "md1=$md1column";// dbc-стр табл  к- число кол з-заголовок
            $findid = strpos(strtolower($dbc[$md1column]), strtolower($vID));
            if ($findid !== false && $dbc[$md1column] !== "") {
                //  проверка условия, не может быть удалена
                $selected[] = $dbc;
                //added
            }
        }
        // echo "selectedprintcsv ($mycol,$selected); ".$mycol[0].$selected[0]."--".$selected[0][0]."<br>"; вывод
        selectedprintcsv($data, $mycol, $selected);
        //fclose ($f);
        if ($multisearch == 0) {
            exit(1);
        }
        // $k= count($dbc) - вычисление кол-ва столбцов
    }
    //поиск по коду - mode 2 - CSV
    if ($mode == 2 and $prdbdata[$tbl][12] == "fdb") {
        $data = readdescripters();
        $f = $data[4];
        $cfgmod = $data[5];
        rfsysdatareq();
        // возвращаем потерянные хер знает где переменные
        if (!$cfgmod) {
            // сделано только для конфигурации, в остальных случаях эти базы мало отличаются
            settype($vID, "integer");
            if ($vID == 0) {
                msgexiterror("needcode", $mode, "disable");
            }
        }
        $findrecords = 0;
        echo cmsg("RF_RESSRCH") . $namebas . " - " . $vID . ":\n\n";
        for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
            $k = count($dbc);
            // dbc-стр табл  к- число кол з-заголовок
            if ($dbc[$md2column] == $vID) {
                $selected[] = $dbc;
            }
            // c проверкой
        }
        selectedprintcsv($data, $mycol, $selected);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    //mode 8 процедура CSV поиска по любой колонке
    if ($mode == 8 and $prdbdata[$tbl][12] == "fdb") {
        global $presettedmode;
        $mode = 6;
        $presettedmode = 3;
    }
    if ($mode == 7 and $prdbdata[$tbl][12] == "fdb") {
        //ubrat vse vybory polej ne svyazannye s tekushim mode==7( po menu)
        if ($debug) {
            echo "m7 Текущий vID {$vID} res16 {$res16} STR595<br>";
        }
        global $prauth, $ADM, $codekey;
        // добавлено для переключения продвинутого поиска
        global $presettedmode, $mzdata, $mzcnt, $res16, $mznumb, $mycol, $fullfield;
        if ($debug) {
            echo "kol={$kol}";
        }
        $field = $kol;
        ///	echo "encodevID  $eid;  encodevID(old) $eolddid ";
        $mode = 6;
        $mode7 = 1;
        //$presettedmode=-1; bylo 1.1
        //..	if (!$cfgmod) @$f=csvopen ("_data/".$filbas,"r","0");
        //..	if ($cfgmod==1) @$f=csvopen ("_conf/".$filbas,"r","0");echo "<br>";
        $eid = encodevID($vID);
        $eolddid = encodevID($olddvID);
        //setup id
        if ($field === false or $go == "Выбрать_колонку") {
            echo "Выберите поле для поиска:<br>";
            // Вставлено для выбора поля
            if ($debug) {
                echo "result res16={$res16} selfield {$selectedfield} STR603 a={$a} m6={$m6field['0']} , {$m6field['1']} , {$m6field['2']} <br>";
            }
            if ($debug) {
                echo " do (574) readdesc mznumb1=" . $mznumb[1] . " mycols" . $mycols . " mzdata1=" . $mzdata[1] . " plevel=" . $plevel[1] . " mycol1=" . $mycol[1] . "<br>";
            }
            $data = readdescripters();
            if ($debug) {
                echo " do (576) readdesc mznumb1=" . $mznumb[1] . " mycols" . $mycols . " mzdata1=" . $mzdata[1] . " plevel=" . $plevel[1] . " mycol1=" . $mycol[1] . "<br>";
            }
            $mznumb = $data[2];
            $mycols = $data[6];
            $mzdata = $data[0];
            $plevels = $data[1];
            $mycol = $mzdata;
            $a = prefixdecode($res16);
            decodecols($res16);
            if ($debug) {
                echo "result res16={$res16} selfield {$selectedfield} STR607 a={$a} m6={$m6field['0']} , {$m6field['1']} , {$m6field['2']} <br>";
            }
            // echo "Всего колонок $mycols - ищем значения из списка $mznumb[0];$mznumb[1];$mznumb[2];$mznumb[3]<br>";
            ?>
	<form action="r.php" method=post>
<?php 
            if ($multisearch == 1) {
                hidekey("vID", $eolddid);
            } else {
                hidekey("vID", $eid);
            }
            hidekey("mode", 7);
            hidekey("adm", $adm);
            hidekey("commode", $commode);
            hidekey("tbl", $tbl);
            hidekey("multisearch", $multisearch);
            hidekey("fullfield", $fullfield);
            //$fullfield
            hidekey("selectedfield", $selectedfield);
            hidekey("kol", $kol);
            echo " do (593) readdesc mznumb1=" . $mznumb[1] . " mycols" . $mycols . " mzdata1=" . $mzdata[1] . " plevel=" . $plevel[1] . " mycol1=" . $mycol[1] . "<br>";
            $data = readdescripters();
            //print_r ($data);
            $mznumb = $data[2];
            $mycols = $data[6];
            $mzdata = $data[0];
            $plevels = $data[1];
            //$mycol=$mzdata;
            echo "<br>do  596 readdesc mznumb1=" . $mznumb[1] . " mycols" . $mycols . " mzdata1=" . $mzdata[1] . " plevel=" . $plevel[1] . " mycol1=" . $mycol[1] . "<br>";
            echo "result res16={$res16} STR621<br>";
            $field = printfield($data, "nfield");
            ?>
	<input type = "image" name = "go" src = "_ico/find.png">
	</form><?php 
            $selectedfield = "!1" . $field;
            exit;
        } else {
            $selectedfield = "!1" . $field;
            ?>
 	<form action="r.php" method=post>
<?php 
            if ($multisearch == 1) {
                hidekey("vID", $eolddid);
            } else {
                hidekey("vID", $eid);
            }
            hidekey("mode", 7);
            hidekey("adm", $adm);
            hidekey("commode", $commode);
            hidekey("tbl", $tbl);
            hidekey("fullfield", $fullfield);
            //$fullfield
            hidekey("multisearch", $multisearch);
            hidekey("selectedfield", $selectedfield);
            hidekey("kol", $kol);
            //submitkey ("go","R_SEL_ROW");
            echo "</form> ";
        }
    }
    //mode 6 процедура CSV поиска по новой колонке  НЕ СДЕЛАНО
    // процедура поиска по имени  - mode 1 - CSV
    if ($mode == 6 and $prdbdata[$tbl][12] == "fdb") {
        if ($debug) {
            echo "m6 Текущий vID {$vID}<br>";
        }
        //echo "result res16=$res16   STR656";
        global $categorymode, $mode;
        // добавлено для совместимости с  decodecols ()
        global $mode6, $m6field, $m6count, $mycols, $mycol, $del;
        global $partquery, $vID, $mzcnt, $mznumb, $presettedmode, $xfgetlimit, $fullfield;
        $mznumb = array();
        // TEST ZONE
        $res16 = $prdbdata[$tbl][16];
        // Лимит колонок
        if ($mode7 == 1) {
            $res16 = $selectedfield;
        }
        if ($debug) {
            echo "{$res16} - ";
        }
        $a = prefixdecode($res16);
        //echo "decoded $a=$res16 $categorymode STR 668";	//декодирование строки
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        global $mzdata;
        $mzcnt = count($mzdata);
        //$mycol[$md1column]".."
        $mycol = $mzdata;
        //echo "result res16=$res16 ?STR671";
        $mode6 = array();
        decodecols();
        //echo "result res16=$res16 STR 672";
        for ($aaa = 0; $aaa < count($mode6); $aaa++) {
            $fndcolumn = $mznumb[$aaa];
            $findrecords = 0;
            //echo "Результаты поиска в ".$namebas." - по колонке ".$mzdata[$fndcolumn]."($fndcolumn) -- ".$vID.":\n\n";
            $vIDold = $vID;
            $vID = strtolower($vID);
            if ($vID == "!0") {
                $vID == "";
                $notnull = 1;
            }
            $f = $data[4];
            $data = readdescripters();
            $f = $data[4];
            //mode 6- список всех используемых в этой сессии колонок  если есть ошибки в мультипоиске можно передавать его после первой итерации
            //echo "1count mode6 ".count ($mode6) ."count=$a of $k -- fndcol=$fndcolumn; vid=$vID ; ".$dbc[$fndcolumn]."<br>";
            //$dbc=xfgetcsv ($f,$xfgetlimit,"¦");
            //echo $dbc;echo " ($f,$xfgetlimit,¦); ";
            for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
                $k = count($dbc);
                $myrow = $dbc;
                //  echo "count=$a of $k -- fndcol=$fndcolumn; vid=$vID ; ".$dbc[$fndcolumn]."<br>";
                // for ($b=0;$b<$k;$b++) {  Бла бла бла;Фэнтэзи;Комедия;Боевик  ищет фигово переключает на 1,4 films al где то производися сброс значения и оно уже не восстанавливается
                // $mode7=1 если вход был оттуда.копать здесь надо.
                if (!$fullfield) {
                    $findid = strpos(strtolower($dbc[$fndcolumn]), $vID);
                }
                if ($fullfield) {
                    if ($dbc[$fndcolumn] == $vID) {
                        $selected[] = $dbc;
                    }
                }
                if ($fullfield) {
                    if ($dbc[$fndcolumn] == false and false == $vID) {
                        $selected[] = $dbc;
                    }
                }
                //echo "$fullfield ffM<br> $findid  id";
                if ($notnull and $dbc[$fndcolumn] != "") {
                    $findid = 1;
                }
                if ($notnull and $dbc[$fndcolumn] == "0") {
                    $findid = false;
                }
                if ($findid !== false && $dbc[$fndcolumn] !== "") {
                    if (!$fullfield) {
                        $selected[] = $dbc;
                    }
                    //added  $findid=false;
                }
            }
        }
        selectedprintcsv($data, $mycol, $selected);
        //echo "result res16=$res16 STR695 END CYCLE<br>";
        if (!$pr[8]) {
            echo "AFTER DECODE categorymode={$categorymode},mode={$mode},m6count={$m6count},\t mode6={$mode6},m6field={$m6field},mycols={$mycols},mycol={$mycol},del={$del},partquery={$partquery},vID={$vID}<br>";
        }
        //	 fclose ($f);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    // поиск по категории
    // процедура ищет фразу потом ищет все коды до следующей фразы
    // проблема в $prdbdata[$a][category] - это одна и та же колонка :)
    // будет сделана после покупки
    //режим категории один - выполняется преобразование цифр
    //script update csv 2,3,4 cat to 1 else return false
    if ($mode == 3 and $categorymode == false) {
        msgexiterror("nocategory", $mode, "disable");
    }
    if ($prdbdata[$tbl][12] == "fdb") {
        if ($mode == 3 and $categorymode == 1 or $mode == 3 and $categorymode == 4) {
            echo "READFILE:OLD_CORE_MODE.<br>";
            updatedb326($filbas);
            $findrecords = 0;
            // общее количество найденных позиций
            //$category =1; категория содержится в этой переменной - this will reset category  TEST ONLY!
            if ($category === "" || $category === false) {
                msgexiterror("nocategory", $mode, "disable");
            }
            if ($vID !== "!101") {
                echo "По вашему запросу " . $vID . " было найдено:\n\n";
            }
            $vIDorig = $vID;
            $vID = strtolower($vID);
            $found = 0;
            @($f = fopen("_data/" . $filbas, "r")) or die("Не удалось выполнить подключение к базе, попробуйте позже.");
            echo "";
            $z = xfgetcsv($f, $xfgetlimit, "¦");
            // заголовок
            for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
                if ($limitenable and $findrecords > $printlimit) {
                    echo "Всего значений : {$findrecords}<br><br> ";
                    exit;
                }
                $k = count($dbc) - $tablemysqlselect;
                // удаление колонки, определено в prop
                echo "<tbody><table border=3 width=100% bgcolor=white>";
                echo "<tr>";
                for ($b = 0; $b < $k; $b++) {
                    // multithread options experimental
                    // multithread options
                    $content1 = strtolower($dbc[$category]);
                    $findid1 = strpos($content1, $vID);
                    $content2 = strtolower($dbc[$category + 1]);
                    $findid2 = strpos($content2, $vID);
                    $content1int = $content1;
                    settype($content1int, integer);
                    //	$content2int=$content2; settype ($content2int,integer);  //!!
                    if ($found == 1 and $content1 !== "" and $content1int == 0) {
                        $found = 0;
                    }
                    //	  if  (($found==2)AND($content2!=="")) { $found=0;} //OR($findid2!==false)
                    if ($findid1 !== false or $found == 1) {
                        $scrnum = $dbc[$scrcolumn];
                        $found = 1;
                        //$findrecords++; # возможно ошибка 2-раза
                        $data = wordwrap($dbc[$b], 82, "\n");
                        if ($findid1 !== false and $b == 0) {
                            echo "<bb><cite>{$data}</cite></bb></tr>";
                            continue;
                        }
                        //if (($findid2!==false)AND($b==0)) { echo "<bb><cite>$data</cite></bb></tr>"; continue; }
                        if ($hostmysqlselect == 1 && $b == 0) {
                            echo "</tr>";
                            continue;
                        }
                        if ($data == "") {
                            echo "</tr>";
                            continue;
                        }
                        echo "<td><bb>{$z[$b]}</bb>: " . "{$data}<br></td><td>";
                        //$findrecords++;
                        if ($b == 1) {
                            screen();
                        }
                        echo "</td></tr>";
                        if ($b == $k - 1) {
                            echo "<br>";
                            $findrecords++;
                        }
                    }
                    //idfound
                    if ($vID == "!101" and $content1 !== "" and $content1int == 0) {
                        $findrecords++;
                        echo "<bb><ii>" . strtoupper($content1) . "</ii></bb>";
                        ?>
				<form action="r.php" method=post><?php 
                        hidekey("go", $content1);
                        hidekey("vID", $content1);
                        hidekey("mode", 3);
                        hidekey("adm", $adm);
                        hidekey("commode", $commode);
                        hidekey("tbl", $tbl);
                        echo "</form>";
                        break;
                    }
                    //!101
                    //insertion m3c4 old
                }
                //b
            }
            // процедура сообщения об отсутствии искомого объекта  1 из 3
            // Режим категории 4 очень сильно тормозит систему. подобно основному режиму 4
            //DELETED
            if ($findrecords === 0 and $adm == 1 or $findrecords === 0 and $pr[3] == 1) {
                print "<font color=red id=errfnt><bb>Не найдено</bb><br></font>";
            }
            // restart engine m3с1
            fclose($f);
            if ($multisearch == 0) {
                echo "Всего значений : {$findrecords}<br><br> ";
                exit(1);
            }
        }
    }
    // режим категории 1  (в 4-м ищет :) )не ищет конкретные значение в отличие от режима 2 которых их пытается найти везде.
    if ($prdbdata[$tbl][12] == "fdb") {
        if ($mode == 3 and $categorymode > 1 and $categorymode !== 4) {
            updatedb326($filbas);
            // апдейтер для улучшенного формата написан
            // осталось сделать обработку файла в ноовм формате (_conv326)
            echo "READFILE:OLD_CORE_MODE.<br>";
            // общее количество найденных позиций
            //if ($vID!=="!101") { echo cmsg ("RF_RESSRCH)."".$namebas." - ".$vID.":\n\n";}
            //$category =1; категория содержится в этой переменной - this will reset category  TEST ONLY!
            if ($category === "" || $category === false) {
                msgexiterror("nocategory", $mode, "disable");
            }
            //  !101 - tablemysqlselect - hostmysqlselect - - функции из prop  потом как альт. включить  основной скрипт
            //если колонка 1findid!==false то это заголовок и он может иметь описание. только выделить его.выделяя
            //если колонка 1findid==false то проверяем колонку 2findid!==false  пишем стд модулем
            //если колонка 1==false и 2==false пишем значение 3 если уже находились такие
            //echo $findrecords;//if ($vID!=="!101") { echo "По вашему запросу ".$vID." было найдено:\n\n"; }
            $vIDorig = $vID;
            $vID = strtolower($vID);
            $found = 0;
            @($f = fopen("_data/" . $filbas, "r")) or die("Не удалось выполнить подключение к базе, попробуйте позже.");
            echo "";
            $z = xfgetcsv($f, $xfgetlimit, "¦");
            // заголовок
            for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
                if ($limitenable and $findrecords > $printlimit) {
                    echo "Всего значений : {$findrecords}<br><br> ";
                    exit;
                }
                $k = count($dbc) - $tablemysqlselect;
                // удаление колонки, определено в prop
                echo "<tbody><table border=3 width=100% bgcolor=white>";
                echo "<tr>";
                for ($b = 0; $b < $k; $b++) {
                    //	echo "_SYS_content -- ".$content." findid -- ".$findid." vID -- ".$vID."\n";
                    $content1 = strtolower($dbc[$category]);
                    $findid1 = strpos($content1, $vID);
                    $content2 = strtolower($dbc[$category + 1]);
                    $findid2 = strpos($content2, $vID);
                    if ($found == 1 and $content1 !== "") {
                        $found = 0;
                    }
                    if ($found == 2 and $content2 !== "") {
                        $found = 0;
                    }
                    if ($findid1 !== false or $found == 1) {
                        $scrnum = $dbc[$scrcolumn];
                        $found = 1;
                        //$findrecords++;
                        $data = wordwrap($dbc[$b], 82, "\n");
                        if ($findid1 !== false and $b == 0) {
                            echo "<bb><cite>{$data}</cite></bb></tr>";
                            continue;
                        }
                        if ($hostmysqlselect == 1 && $b == 0) {
                            echo "</tr>";
                            continue;
                        }
                        if ($data == "") {
                            echo "</tr>";
                            continue;
                        }
                        echo "<td><bb>{$z[$b]}</bb>: " . "{$data}<br></td><td>";
                        if ($b == 1) {
                            screen();
                        }
                        echo "</td></tr>";
                        if ($b == $k - 1) {
                            echo "<br>";
                            $findrecords++;
                        }
                    }
                    if ($vID == "!101" and $content1 !== "") {
                        $findrecords++;
                        echo "<bb><ii>" . strtoupper($content1) . "</ii></bb>";
                        ?>
				<form action="r.php" method=post> <?php 
                        hidekey("vID", $content1);
                        hidekey("mode", 3);
                        hidekey("adm", $adm);
                        hidekey("commode", $commode);
                        hidekey("tbl", $tbl);
                        hidekey("go", $content1);
                        hidekey("kol", $kol);
                        echo "</form>";
                        break;
                    }
                    // режим категории 2 позволяет смотреть колонку 2, режим 3 - не позволяет (только findid1)
                    // любое ненулевое значение первой колонки трактуется как новая категория в отличие от 1
                    if ($categorymode === 3) {
                        if ($findrecords === 0 and $adm == 1 or $findrecords === 0 and $pr[3] == 1) {
                            print "<font color=red id=errfnt><bb>Не найдено</bb><br></font>";
                            print "Среди категорий не удалось найти искомую группу.<br>Поискать среди наименований?";
                            ?>
				<form action="r.php" method=post><?php 
                            hidekey("vID", $vID);
                            hidekey("mode", 1);
                            hidekey("adm", $adm);
                            hidekey("commode", $commode);
                            hidekey("tbl", $tbl);
                            hidekey("go", $content1);
                            echo "<p align=center>";
                            submitkey("go", "YES");
                            echo "</p></form>";
                            echo "<form action=disable method=post> \t<p align=center>";
                            submitkey("go", "NO");
                            echo "</p></form>";
                        }
                    }
                    // restart engine m3с2
                    if ($categorymode == 2) {
                        if ($findid2 !== false or $found == 2) {
                            $scrnum = $dbc[$scrcolumn];
                            $found = 2;
                            $data = wordwrap($dbc[$b], 82, "\n");
                            if ($findid1 !== false and $b == 0) {
                                echo "<bb><cite>{$data}</cite></bb></tr>";
                                continue;
                            }
                            if ($hostmysqlselect == 1 && $b == 0) {
                                echo "</tr>";
                                continue;
                            }
                            if ($data == "") {
                                echo "</tr>";
                                continue;
                            }
                            echo "<td><bb>{$z[$b]}</bb>: " . "{$data}<br></td><td>";
                            if ($b == 1) {
                                screen();
                            }
                            echo "</td></tr>";
                            if ($b == $k - 1) {
                                echo "<br>";
                                $findrecords++;
                            }
                        }
                    }
                }
            }
            if ($findrecords === 0 and $adm == 1 or $findrecords === 0 and $pr[3] == 1) {
                print "<font color=red id=errfnt><bb>Не найдено</bb><br></font>";
            }
            // restart engine m3с3
            fclose($f);
            if ($multisearch == 0) {
                echo "Всего значений : {$findrecords}<br><br> ";
                exit(1);
            }
        }
    }
}