site = $s; $this->user = $u; $this->pass = $p; $this->database = $d; $this->spojeni = @mysql_connect($s, $u, $p) or die("Omlouváme se, nelze se spojit s databázovým serverem."); @mysql_select_db($d) or die("Omlouváme se, databáze neexistuje."); @mysql_query('SET NAMES CP1250'); //if($err_stream){ // $this->error_stream = $cesta_k_data; //} else { $this->error_stream = $cesta_k_data; //} } function close(){ @mysql_close($this->spojeni); } function error($errno, $errmess) { // $errno - cislo chyby, $errmess - popis chyby echo StrFTime ("%d.%m.%Y %H:%M:%S")." > $errno > ".$errmess."\n"; @$fp = fopen($this->error_stream, "a"); @fputs ($fp, StrFTime ("%d.%m.%Y %H:%M:%S")." > $errno > ".strip_tags($errmess)."\r\n\r\n"); @fclose ($fp); } function query($s, $nezapisovat = 0){ if($nezapisovat == 0){ zapis_aplikacni_log($s); } $result = @mysql_query($s); if(!$result){ $this->error(2, "Query error in [$s]. ".mysql_error()."."); } $this->last_query = $result; return $this->last_query; } function fetch_array($q, $limit = 0){ if($limit > 0){ $q .= " LIMIT ".$limit; } if ($q) { $this->query($q); } $num = $this->num_rows($result); for ($i = 0; $i < $num; $i++) { $arr[] = @mysql_fetch_array($this->last_query); } if(is_array($arr)){ if($limit == 1 && is_array($arr[0])){ foreach($arr[0] AS $key=>$val){ $array[$key] = stripslashes($val); } $arr = $array; } return $arr; } else { return false; } } function num_rows($result = "") { if ($result == "") { return @mysql_num_rows($this->last_query); } else { return @mysql_num_rows($result); } } function affected_rows(){ return @mysql_affected_rows($this->spojeni); } function insert_id(){ return @mysql_insert_id(); } function fetch_all(){ $rows = $this->num_rows(); $a = array(); for ($i=0; $i<$rows; $i++) { $a[$i] = $this->fetch_array(); } return $a; } function exists_table($name) { $this->last_query = @mysql_query("DESCRIBE $name"); if ($this->last_query): return $this->fetch_all(); else: return false; endif; } function index_value($q, $index, $value = "") { $result = $this->query($q); if ($result) { while($row = mysql_fetch_array($result)){ $arr[$row[$index]] = stripslashes($row[$value]); } return $arr; } else { return false; } } } // endclass ?> spojeni = $s; $this->jazyk = $j; $this->preklady = array(); $this->soubor_neni_v_db = $cesta_k_data.'data/preklady_neni_v_db.txt'; $this->soubor_je_prazdny = $cesta_k_data.'data/preklady_je_prazdny.txt'; if ($m != '') { $this->pridej_modul($m); } } function pridej_modul($modul) { $query = 'SELECT kod, fraze FROM admin_preklady WHERE modul=\''.$modul.'\' AND id_jazyky='.$this->jazyk; $a = $this->spojeni->index_value($query, 'kod', 'fraze'); if (!is_array($a)) { $a = array(); } $this->preklady[$modul] = $a; } function preloz($modul_a_kod) { list($modul, $kod) = explode(":", $modul_a_kod); if (isset($this->preklady[$modul][$kod])) { return $this->preklady[$modul][$kod]; } else { $this->_zapis_kod($modul, $kod, 1); } } function _zapis_kod($modul, $kod, $typ) { if ($typ == 1) { if ($modul && $kod) { $query = 'SELECT id FROM admin_preklady WHERE modul=\''.$modul.'\' AND kod=\''.$kod.'\' AND id_jazyky='.$this->jazyk; $test = $this->spojeni->fetch_array($query, 1); if (!$test['id']) { $query = 'INSERT INTO admin_preklady(modul, kod, fraze, id_jazyky) VALUES (\''.$modul.'\', \''.$kod.'\', \'\', '.$this->jazyk.')'."\n"; $this->spojeni->query($query); } } // $fp = fopen($this->soubor_neni_v_db, 'a'); // fputs($fp, $zprava); // fclose($fp); } elseif ($typ == 2) { $zprava = date('Y-m-d H:i:s').' Nenalezen preklad (prazdna hodnota fraze) pro modul \''.$modul.'\', kod \''.$kod.'\' a jazyk \''.$this->jazyk.'\'.'."\n"; $fp = fopen($this->soubor_je_prazdny, 'a'); fputs($fp, $zprava); fclose($fp); }$this->typ = $typ; } function _je_v_prekladech($modul, $kod) { $vrat = false; foreach ($this->preklady as $key => $preklady_modul) { if ($key == $modul) { foreach ($preklady_modul as $p) { if ($p['kod'] == $kod) { $vrat = true; } } } } return $vrat; } function _je_v_modulu_prazdy($modul, $kod) { return isset($this->preklady[$modul][$kod]); /* $vrat = false; foreach ($this->preklady as $key => $preklady_modul) { if ($key == $modul) { foreach ($preklady_modul as $p) { if ($p['kod'] == $kod && $p['kod'] != '') { $vrat = true; } } } } return $vrat; */ } } ?> fetch_array($q, 1); if($pocet['pocet'] > 0){ return 0; } else{ return 1; } } function muzu_komentovat(){ global $db; $q = 'SELECT count(id) AS pocet FROM `ip_banlist` WHERE `ip` REGEXP \'^'.$_SERVER['REMOTE_ADDR'].'$\' AND zakazat_komentare = 1'; $pocet = $db->fetch_array($q, 1); if($pocet['pocet'] > 0){ return 0; } else{ return 1; } } /*************************************** * autorizace a přihlášení uživatele ***************************************/ function autorizace($uziv, $heslo) { global $db; $stav = "0"; //neprihlasen if(!muzu_prihlasit()){ return 0; } if($uziv || $heslo){ $dotaz = "SELECT id, nick, jmeno, prijmeni, email, telefon, mobil, admin, id_jazyky, pocet_zaznamu, id_admin_prava_skupiny ". " FROM uzivatele_uzivatele ". " WHERE prihlasovaci_jmeno = '".$uziv."' ". " AND uzivatelske_heslo = '".md5($heslo)."' ". " AND povolen_pristup = '1'". " AND (povolena_ip LIKE '' OR povolena_ip LIKE '000.000.000.000' OR povolena_ip LIKE '".$_SERVER['REMOTE_ADDR']."')"; $uzivatel = $db->fetch_array($dotaz, 1); if (is_array($uzivatel) && count($uzivatel)) { $stav = 1; //prihlasen // informace o prihlasenem uzivateli $_SESSION['sess_uzivatel'] = $uziv; $_SESSION['sess_uzivatel_heslo'] = $heslo; $_SESSION['sess_uzivatel_nick'] = $uzivatel['nick']; $_SESSION['sess_uzivatel_id'] = $uzivatel['id']; $_SESSION['sess_uzivatel_jmeno'] = $uzivatel['jmeno']; $_SESSION['sess_uzivatel_prijmeni'] = $uzivatel['prijmeni']; $_SESSION['sess_uzivatel_email'] = $uzivatel['email']; $_SESSION['sess_uzivatel_telefon'] = $uzivatel['telefon']; $_SESSION['sess_uzivatel_mobil'] = $uzivatel['mobil']; $_SESSION['sess_uzivatel_zaznamu_stranka'] = $uzivatel['pocet_zaznamu']; $_SESSION['sess_uzivatel_admin'] = $uzivatel['admin']; $_SESSION['sess_uzivatel_default_zeme'] = ID_ZEME_DEFAULT; $_SESSION['sess_jazyk'] = $uzivatel['id_jazyky']; $_SESSION['sess_uzivatel_skupina_prav'] = $uzivatel['id_admin_prava_skupiny']; // zapíšu pohyb $q = 'UPDATE uzivatele_uzivatele SET posledni_akce = now() WHERE id = '.intval($uzivatel['id']); $db->query($q); } } return $stav; } /*************************************** * odhlášení přihlášeného uživatele ***************************************/ function odhlasit() { session_destroy(); } /*************************************** * zapisuje akce jednotlivych uzivatelu ***************************************/ function zapis_akci_uzivatele($nazev_tabulky, $nazev_promenne, $hodnota_promenne, $popis, $sql = '') { global $db, $sess_uzivatel_id, $global_modul; $query = "INSERT INTO uzivatele_akce(id_uzivatele_uzivatele, nazev_tabulky, nazev_promenne, hodnota_promenne, modul, datum_cas, popis, ip, host, `sql`) ". "VALUES (".intval($sess_uzivatel_id).", '".$nazev_tabulky."', '".$nazev_promenne."', '".$hodnota_promenne."', '".$global_modul."', now(), '".trim($popis)."', '".$_SERVER['REMOTE_ADDR']."', '".(gethostbyaddr($_SERVER['REMOTE_ADDR']))."', '".txt2db($sql)."')"; //$db->query($query); } function nemate_opravneni() { global $db, $sess_uzivatel_id, $preklady, $cesta_k_req; echo '

'.$preklady->preloz('obecne:nemate_opravneni').'

'; // muzu to zapsat i do logu $fp = fopen($cesta_k_req.'nepovoleny_pristup.txt', 'a'); fwrite($fp, strftime("%Y.%m.%d %T").':'.$sess_uzivatel_id.':'.$_SERVER['REQUEST_URI']."\n"); fclose($fp); } function vytvor_uzivatelske_slozky($id_novy_uzivatel){ mkdir("../data/out/".$id_novy_uzivatel, 0777); mkdir("../data/out/".$id_novy_uzivatel."/export-pozadavky-na-material-xml", 0777); mkdir("../data/out/".$id_novy_uzivatel."/export-pozadavky-na-material-html", 0777); mkdir("../data/out/".$id_novy_uzivatel."/export-stavby", 0777); mkdir("../data/out/".$id_novy_uzivatel."/import-stavby", 0777); mkdir("../data/out/".$id_novy_uzivatel."/uzivatelska-data", 0777); mkdir("../data/out/".$id_novy_uzivatel."/zalohy", 0777); } function neautorizovano_data(){ $data = '$_GET >'."\n".print_r($_GET, 1)."\n\n". '$_POST >'."\n".print_r($_POST, 1)."\n\n". '$_SESSION >'."\n".print_r($_SESSION, 1)."\n\n". '$_SERVER >'."\n".print_r($_SERVER, 1)."\n\n"; return $data; } ?>