diff -r 000000000000 -r 74a6a363ff9e php/heslo/lib/funkce.inc.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/php/heslo/lib/funkce.inc.php Tue May 05 17:08:09 2009 +0200 @@ -0,0 +1,325 @@ +getMessage()); + //header("Location: chyba_db.php"); + exit(); +} + +set_exception_handler('exception_handler'); + +session_set_cookie_params(0, $NASTAVENI['cookie_cesta']); +session_start(); + + +$strankaP = split('/', $_SERVER['REQUEST_URI']); +$stranka = $strankaP[count($strankaP)-1]; + + +if (empty($_SERVER['HTTP_ACCEPT'])) { + $mimeTyp = 'application/xhtml+xml'; +} else { + $mimeTyp = (( stristr( $_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml' ) && !preg_match("/application\/xhtml\+xml;\s*q=0(\.0)?\s*(,|$)/",$_SERVER['HTTP_ACCEPT']) ) ? 'application/xhtml+xml' : 'text/html' ); +} +header("Content-Type: $mimeTyp"); +//header("Content-Type: text/html"); +//header("Content-Type: application/xhtml+xml"); + +/** $nadpis = titulek stránky + h1 */ +function zahlavi($nadpis, $autorizace = true) { + global $mimeTyp; + if ($autorizace) { + overPristup(); + } + + html(' + + + + + + + + + + + ' . $nadpis . ' + + +

' . $nadpis . '

'); +if ($autorizace) { +html('

Uživatel: ' . $_SESSION['login'] . '

'); +} +} + +/** $zobrazitNabidku = zobrazí postranní menu */ +function zapati($zobrazitNabidku = true) { + if ($zobrazitNabidku) { + html('

Obsah

+ +'); +htmlInfoKomentar(); +html(''); + } else { + html(''); + htmlInfoKomentar(); + html(''); + } + +} + +function htmlInfoKomentar() { + global $zacatek, $mimeTyp, $NASTAVENI; + if ($NASTAVENI['ladiciKomentare']) { + $konec = getMicrotime(); + html(''); + } +} + +function htmlOdstavec($text) { + html("

\n$text\n

"); +} + +function html($text) { + global $stranka; + /** Odstraníme odkazy, které vedou na tutéž stránku */ + $text = str_replace(' href="' . $stranka . '"', '', $text); + + echo("$text\n"); +} + +function htmlZnacka($znacka, $text) { + html("<$znacka>$text"); +} + +function htmlTlacitkovyOdkaz($url, $text) { + html('
'); +} + +function escapuj($text, $delka = 256) { + $text = str_replace("\n", "[br]", $text); + $text = substr(mysql_escape_string(htmlspecialchars($text)), 0, $delka); + $text = str_replace("[br]", "
", $text); + //$retezec = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "\\0", $retezec); + return $text; +} + +function htmlIkonaKontrolyIP () { + global $NASTAVENI; + if ($NASTAVENI['kontrolovatIPadresu']) { + html('Kontrola IP'); + } +} + +/** volá se na všech strákách, které vyžadují autorizaci (všechny kromě prihlaseni.php) */ +function overPristup() { + global $NASTAVENI; + + if ($_SESSION['login'] == null || !isset($_SESSION['login']) || ($NASTAVENI['kontrolovatIPadresu'] && $_SERVER['REMOTE_ADDR'] != $_SESSION['ip_adresa_klienta'])) { + header("Location: prihlaseni.php"); + exit(); + } +} + +/** volá se v prihlaseni.php */ +function zkontrolujUzivatele($jmeno, $heslo) { + global $db, $NASTAVENI; + + if ($NASTAVENI['hashovatHesla']) { + $dotaz = $db->prepare("SELECT * FROM bg_uzivatel WHERE login = ? AND sha1(concat(?, heslo)) = ?"); + $dotaz->bindParam(1, $jmeno); + $dotaz->bindParam(2, $_SESSION['hesloBordel']); + $dotaz->bindParam(3, $heslo); + $dotaz->execute(); + $r = $dotaz->fetchAll(); + } else { + $dotaz = $db->prepare("SELECT * FROM bg_uzivatel WHERE login = ? AND heslo = sha1(?)"); + $dotaz->bindParam(1, $jmeno); + $dotaz->bindParam(2, $heslo); + $dotaz->execute(); + $r = $dotaz->fetchAll(); + } + + foreach ($r as $x) { + $_SESSION['login'] = $x['login']; + $_SESSION['ip_adresa_klienta'] = $_SERVER['REMOTE_ADDR']; + return true; + } + + $_SESSION['login'] = null; + return false; +} + + +function sqlZjistiHodnotu($dotaz, $parametry = null) { + global $db; + + $dotaz = $db->prepare($dotaz); + + if ($parametry != null) { + for($i = 0; $i < count($parametry); $i++) { + $dotaz->bindParam($i+1, $parametry[$i]); + } + } + + $dotaz->execute(); + $r = $dotaz->fetchAll(); + + foreach ($r as $x) { + return $x[0]; + } + return null; +} + +function sqlDotaz($dotaz, $parametry = null) { + global $db; + try { + $dotaz = $db->prepare($dotaz); + + if ($parametry != null) { + for($i = 0; $i < count($parametry); $i++) { + $dotaz->bindParam($i+1, $parametry[$i]); + } + } + + $dotaz->execute(); + $r = $dotaz->fetchAll(); + + return $r; + } catch (PDOException $e) { + logujChybu("sqlDotaz($dotaz)"); + } +} + +function getMicrotime(){ + list($usec, $sec) = explode(" ",microtime()); + return ((float)$usec + (float)$sec); +} + +function sqlHtmlTabulka($dotaz, $hlavicky = null, $parametry = null, $htmlID = null) { + global $db; + + $dotaz = $db->prepare($dotaz); + + if ($parametry != null) { + for($i = 0; $i < count($parametry); $i++) { + $dotaz->bindParam($i+1, $parametry[$i]); + } + } + + $dotaz->execute(); + $r = $dotaz->fetchAll(); + + if ($htmlID == null) { + $htmlID = getMicrotime(); + } + + + html(''); + if ($hlavicky != null) { + html(''); + foreach ($hlavicky as $h) { + htmlZnacka('td', $h); + } + html(''); + $pocet = count($hlavicky); + } else { + $pocet = null; + } + html(''); + + foreach ($r as $x) { + html(''); + if ($pocet == null) { + /** děleno 2 protože jsou tam číselné i řetězcové klíče */ + $pocet = count($x) / 2; + } + + for ($i = 0; $i < $pocet; $i++) { + htmlZnacka('td', $x[$i]); + } + html(''); + } + html('
'); +} + + +function htmlTabulkaUzivatelu() { + sqlHtmlTabulka('SELECT concat(concat(concat(concat(\'\'),login),\'\'), jmeno, prijmeni, email FROM bg_uzivatel', array('Login', 'Jméno', 'Příjmení', 'e-mail')); +} + +function htmlTabulkaProduktu() { + sqlHtmlTabulka('SELECT kod, nazev, popis FROM bg_produkt', array('Kód', 'Název', 'Popis')); +} + + +function sqlHtmlTabulkaBugu($r) { + if (count($r) > 0) { + $htmlID = getMicrotime(); + html(''); + html(''); + htmlZnacka('td', 'Číslo'); + htmlZnacka('td', 'Název'); + htmlZnacka('td', 'Zadavatel'); + htmlZnacka('td', 'Řešitel'); + //htmlZnacka('td', 'Datum'); + html(''); + + foreach ($r as $x) { + html(''); + htmlZnacka('td', '' . $x['id'] . ''); + htmlZnacka('td', $x['nazev']); + htmlZnacka('td', odkazNaUzivatele($x['zadavatel'])); + htmlZnacka('td', odkazNaUzivatele($x['resitel'])); + //htmlZnacka('td', $x['datum']); + html(''); + } + html('
'); + } else { + htmlOdstavec('Nic nenalezeno.'); + } +} + +function odkazNaUzivatele($uzivatel) { + if ($uzivatel == '-') { + return '-'; + } else { + return '' . $uzivatel . ''; + } +} + +function logujChybu($popis, $chyba = null) { + htmlOdstavec($popis); +} + +?>