Doručenky: návrh milteru a lepšího řešení problému s chybějící hlavičkou References u doručenek.
3 require('nastaveni.php');
5 $zacatek = getMicrotime();
7 function exception_handler($exception) {
8 html("Došlo k chybě: " . $exception->getMessage());
9 //header("Location: chyba_db.php");
13 set_exception_handler('exception_handler');
16 if (empty($_SERVER['HTTP_ACCEPT'])) {
17 $mimeTyp = 'application/xhtml+xml';
19 $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' );
21 header("Content-Type: $mimeTyp");
23 /** $nadpis = titulek stránky + h1 */
24 function zahlavi($nadpis) {
27 html('<?xml version="1.0" encoding="UTF-8"?>
28 <!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
29 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
31 <meta http-equiv="content-language" content="cs"/>
32 <meta http-equiv="content-type" content="' . $mimeTyp . '; charset=UTF-8"/>
33 <meta name="GOOGLEBOT" content="NOINDEX, NOFOLLOW"/>
34 <meta name="ROBOTS" content="NOINDEX, NOFOLLOW"/>
35 <link href="styl.css" type="text/css" rel="StyleSheet"/>
36 <title>' . $nadpis . '</title>
39 <h1>' . $nadpis . '</h1>');
48 function htmlInfoKomentar() {
49 global $zacatek, $mimeTyp, $NASTAVENI;
50 $konec = getMicrotime();
52 html('Stránka: ' . $_SERVER['REQUEST_URI']);
53 html('Klient: ' . $_SERVER['REMOTE_ADDR']);
54 html('MIME: ' . $mimeTyp);
55 html("Začátek zpracování: $zacatek");
56 html("Konec zpracování: $konec");
57 html('Doba zpracování: ' . ($konec - $zacatek) . 's');
58 html('Není potřeba hackovat, zdrojáky jsou k dispozici ;-)');
59 html('http://hg.vps.frantovo.cz/veverka.ch/');
63 function htmlOdstavec($text) {
64 html("<p>\n$text\n</p>");
67 function html($text) {
69 /** Odstraníme odkazy, které vedou na tutéž stránku */
70 $text = str_replace(' href="' . $stranka . '"', '', $text);
75 function htmlZnacka($znacka, $text) {
76 html("<$znacka>$text</$znacka>");
79 function htmlTlacitkovyOdkaz($url, $text) {
80 html('<form action="' . $url . '"><fieldset><button>' . $text . '</button></fieldset></form>');
83 function sqlZjistiHodnotu($dotaz, $parametry = null) {
86 $dotaz = $db->prepare($dotaz);
88 if ($parametry != null) {
89 for($i = 0; $i < count($parametry); $i++) {
90 $dotaz->bindParam($i+1, $parametry[$i]);
95 $r = $dotaz->fetchAll();
103 function sqlDotaz($dotaz, $parametry = null) {
106 $dotaz = $db->prepare($dotaz);
108 if ($parametry != null) {
109 for($i = 0; $i < count($parametry); $i++) {
110 $dotaz->bindParam($i+1, $parametry[$i]);
115 $r = $dotaz->fetchAll();
118 } catch (PDOException $e) {
119 logujChybu("sqlDotaz($dotaz)");
123 function echoClanek($id, $nadpis = 'h2') {
124 $r = sqlDotaz("SELECT * FROM clanek WHERE id = ?", $id);
126 htmlZnacka($nadpis, $x['nadpis']);
131 function getMicrotime(){
132 list($usec, $sec) = explode(" ",microtime());
133 return ((float)$usec + (float)$sec);
136 function logujChybu($popis, $chyba = null) {
137 htmlOdstavec($popis);