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(); } }
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;// сортировка, лимит
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>"; }
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) {
<?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); }
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 }
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>"; }
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); } } } }