public function __destruct() { $sql_generating = $generating = microtime(true) - $this->start; $sql_table = "<style type='text/css'>table td, table th { border: 1px #000000 solid; padding: 5px } table {border-collapse: collapse; width: 100%;}</style>"; $sql_table .= "<div><table><caption>SQL dotazy</caption>"; $sql_table .= "<tr><th>Pořadí</th><th>Typ</th><th>SQL dotaz</th><th>Čas vyřízení v ms</th><th>Status</th></tr>"; $queue = 1; foreach ($this->db->getExecutedQueries() as $sql => $row) { $sql_table .= "<tr><td>" . $queue++ . "</td><td>" . e_html($row['type']) . "</td><td><code>" . e_html($sql) . "</code></td><td>" . e_html($this->toMiliseconds($row['duration'])) . "</td><td>" . $row['status'] . "</td></tr>"; $sql_generating -= $row['duration']; } $sql_table .= "</table></div><br />"; if ($errors = class_exists('ErrorHandler', false)) { // $sql_table .= "<div><table><caption>Zachycené chyby při generování HTML</caption>"; // $sql_table .= "<tr><th>Pořadí</th><th>Typ</th><th>text chyby</th><th>soubor</th><th>řádka</th></tr>"; // foreach(ErrorHandler::$catched_errors as $key => $row) // $sql_table .= "<tr><td>".($key+1)."</td><td>".e_html($row['type'])."</td><td>".e_html($row['text'])."</td><td>".e_html($row['file'])."</td><td>".e_html($row['line'])."</td></tr>"; // $sql_table .= "</table></div><br />"; } $sql_table .= "<code>Doba vyřizování všech SQL dotazů: " . $this->toMiliseconds($generating - $sql_generating) . " ms<br />"; $sql_table .= "Doba generování stránky: " . $this->toMiliseconds($generating) . " ms<br />"; $sql_table .= "Použitá paměť: " . round(memory_get_peak_usage(true) / 1024 / 1024, 2) . " MB<br />"; $sql_table .= "Operační systém: " . php_uname() . "<br />"; $sql_table .= "Verze php na serveru je: " . PHP_VERSION . "<br />"; $sql_table .= "Databázový driver: " . $this->db->getDriverName() . "<br />"; $sql_table .= "Web server: " . $_SERVER['SERVER_SOFTWARE'] . "<br />"; $sql_table .= "Načtené soubory: "; $sql_table .= "<ul style='margin:0; padding-top:0; padding-left:15px;'>"; foreach (get_included_files() as $value) { $sql_table .= "<li>" . str_replace(getcwd(), ".", $value) . "</li>"; } $sql_table .= "</ul></code>"; echo "<script type='text/javascript' src='" . _PATH_ . "js/popupWindow.js'></script>"; echo '<a id="debug_link" href="javascript: void(0);" ', $errors ? 'style="background-color: #EE2244; color: black;"' : '', 'onclick="popupWindow(\'' . htmlentities(addslashes($sql_table), ENT_QUOTES, "UTF-8") . '\', this); return this.parentNode.removeChild(this);">Debug okno</a>'; }
function formatSequenceTitle($row) { if ($row['title'] != 'Untitled') { return e_html($row['title']) . ' (#' . $row['id'] . ')'; } else { return 'Sequence #' . $row['id']; } }
<?php require 'app/sequencer.php'; $autoplay = 0; if (isset($_GET['random'])) { $id = db_result(db_query('SELECT id FROM sequences WHERE deleted=0 AND scale>=0 AND LENGTH(data) > 500 ORDER BY RAND() LIMIT 1'), 0); $autoplay = 1; } if ($id != 0) { $result = db_query('SELECT * FROM sequences WHERE deleted=0 AND id="' . e_mysql($id) . '" LIMIT 1'); if (mysqli_num_rows($result) == 0) { output_message('Error', 'Unknown sequence: ' . e_html($id)); exit; } $row = mysqli_fetch_array($result); $title = formatSequenceTitle($row); $nav_right = formatSequenceInfo($row); } if ($id != 0) { $cname = $id; } if ($id == 0) { $showFeatured = true; } output_header($id == 0 ? 'Make music online' : $title, false, $id); ?> <style type="text/css"> #main { bottom: 0; } </style>
$tmpl->addMessage($hlasky, Template::MESSAGE_ERROR); } else { try { $db->beginTransaction(); $event_key = Event::newKey(); Event::add($db, $event_key, $user->user_id, Event::EMAIL_CHANGE_OLD, time() + 24 * 3600, $_POST['new_email']); // 1 day $html = '<html> <head></head> <body> <div> Vážený uživateli,<br><br> ' . format_string('na Vašem uživatelském účtě %s byla změněna e‑mailová adresa na %s.', '<b>' . e_html($user->nick) . '</b>', '<b>' . e_html($_POST['new_email'])) . '</b><br>Pro potvrzení změny e‑mailové adresy přejděte na následující odkaz:<br><br> <a href="' . e_html(_DOMAIN_ . _PATH_) . 'email/old?key=' . e_html($event_key) . '&nick=' . e_html($user->nick) . '">' . e_html(_DOMAIN_ . _PATH_) . 'email/old?key=' . e_html($event_key) . '&nick=' . e_html($user->nick) . '</a><br><br> <b>Pro dokončení změny e‑mailové adresy, je nutné změnu potvrdit i na nové e‑mailové adrese.<br><br> S pozdravem,<br> Tým Todolist </div> </body> </html>'; $alt = 'Vážený uživateli,\\r\\n \\r\\n' . format_string('na Vašem uživatelském účtě %s byla změněna e‑mailová adresa na %s.', $user->nick, $_POST['new_email']) . '\\r\\n' . 'Pro potvrzení změny e‑mailové adresy přejděte na následující odkaz:\\r\\n \\r\\n' . _DOMAIN_ . _PATH_ . 'email/old?key=' . $event_key . '&nick=' . $user->nick . '\\r\\n \\r\\n' . 'S pozdravem, \\r\\n' . 'Tým Todolist'; require_once 'lib/send_mail.php'; if (send_mail($user->email, 'První část potvrzení změny e‑mailové adresy', $html, $alt)) { $tmpl->addMessage('Změnu e‑mailové adresy, je nutné potvrdit na současné i nové e‑mailové adrese, jinak bude změna ignorována.', Template::MESSAGE_SUCCESS); $db->commit(); } else { $tmpl->addMessage('Nepodařilo se změnit email.', Template::MESSAGE_ERROR); $db->rollback();
if ($chunk instanceof FileHeader) { $a = $chunk->getData(); $timeDivision = $a[2]; } } } } } } } ?> <script type="text/javascript"> function preview() { var selects = document.getElementsByTagName('select'); var url = "/app/sequencer.php?frame=1&title=<?php echo e_html($name); ?> &import=<?php echo $file; ?> &"; for(var i = 0; i < selects.length; i++) { var trackID = selects[i].name; if(selects[i].className == "instrument") { url += "trackInstruments["+trackID+"]="+selects[i].value+"&"; } else { url += "trackTranspose["+trackID+"]="+selects[i].value+"&"; } } document.getElementById('sequencer_frame').src = url;
} $event_key = Event::newKey(); try { Event::add($db, $event_key, $user_ch['user_id'], Event::EMAIL_CHANGE_NEW, time() + 24 * 3600, $value); } catch (\Snabb\Database\Exception $e) { $db->rollback(); reload('?fb=change_email_failed'); } $html = '<html> <head></head> <body> <div> Vážený uživateli,<br><br> ' . format_string('pro dokončení změny e‑mailové adresy na %s na Vašem uživatelském účtě %s, přejděte na následující odkaz:', '<b>' . e_html($value) . '</b>', '<b>' . e_html($user_ch['nick']) . '</b>') . '<br><br> <a href="' . e_html(_DOMAIN_ . _PATH_) . 'email/new?key=' . e_html($event_key) . '&nick=' . e_html($user_ch['nick']) . '">' . e_html(_DOMAIN_ . _PATH_) . 'email/new?key=' . e_html($event_key) . '&nick=' . e_html($user_ch['nick']) . '</a><br><br> S pozdravem,<br> Tým Todolist </div> </body> </html>'; $alt = 'Vážený uživateli' . "\r\n \r\n" . format_string('pro dokončení změny e‑mailové adresy na %s na Vašem uživatelském účtě %s, přejděte na následující odkaz:', $value, $user_ch['nick']) . "\r\n \r\n" . _DOMAIN_ . _PATH_ . 'email/new?key=' . $event_key . '&nick=' . $user_ch['nick'] . "\r\n \r\n" . 'S pozdravem,' . "\r\n" . 'Tým Todolist'; require_once 'lib/send_mail.php'; if (send_mail($value, 'Druhá část potvrzení změny e‑mailu', $html, $alt)) { $db->commit(); reload('?fb=change_email_old_success'); } else { $db->rollback(); reload('?fb=change_email_failed'); }
$user_fp = $db->query('SELECT user_id FROM users WHERE nick = ' . $db->quote($_POST['nick']) . ' AND email = ' . $db->quote($_POST['email']))->fetch(); if ($user_fp !== false) { $previous = $db->query('SELECT event_key FROM events WHERE event_type = ' . $db->quote(Event::PASSWORD_CHANGE) . ' AND event_complete = 0 AND event_expire > ' . $db->quote(time()))->fetch(); if ($previous === false) { $event_key = Event::newKey(); try { $db->beginTransaction(); Event::add($db, $event_key, $user_fp['user_id'], Event::PASSWORD_CHANGE, time() + 3600 + 3600); // 2 hours require_once 'lib/send_mail.php'; $html = '<html> <head></head> <body> <div> Vážený uživateli,<br><br> Požádal ste o zapomenuté heslo, které si mužete změnit <a href="' . _DOMAIN_ . _PATH_ . 'password/change?key=' . $event_key . '&nick=' . e_html($_POST['nick']) . '">tady</a>.<br> <br> S pozdravem,<br> Tým Todolist </div> </body> </html>'; $alt = "Vážený uživateli,\r\n" . "Požádal ste o zapomenuté heslo, které si mužete změnit na této adrese:\r\n" . _DOMAIN_ . _PATH_ . 'password/change?key=' . $event_key . '&nick=' . $_POST['nick'] . "\r\n\r\n" . "S pozdravem,\r\n Tým Todolist"; if (send_mail($_POST['email'], 'Zapomenuté heslo', $html, $alt)) { $db->commit(); $tmpl->addMessage('Adresa na změnu hesla odeslána na váš email.', Template::MESSAGE_SUCCESS); } else { $db->rollback(); $tmpl->addMessage('Adresu na změnu hesla se nepodařilo odeslat na váš email.', Template::MESSAGE_ERROR); } } catch (\Snabb\Database\Exception $e) {
function preview2($id, $title = null, $caption = null) { header('Content-type: image/gif'); $filename = 't/' . $id . $caption . 'b.gif'; if (!file_exists($filename)) { $piano = array("C2", "C#2", "D2", "D#2", "E2", "F2", "F#2", "G2", "G#2", "A2", "A#2", "B2", "C3", "C#3", "D3", "D#3", "E3", "F3", "F#3", "G3", "G#3", "A3", "A#3", "B3", "C4", "C#4", "D4", "D#4", "E4", "F4", "F#4", "G4", "G#4", "A4", "A#4", "B4", "C5", "C#5", "D5", "D#5", "E5", "F5", "F#5", "G5", "G#5", "A5", "A#5", "B5", "C6", "C#6", "D6", "D#6", "E6", "F6", "F#6", "G6", "G#6", "A6", "A#6", "B6", "C7", "C#7", "D7", "D#7", "E7", "F7", "F#7", "G7", "G#7", "A7", "A#7", "B7"); $im = imagecreatetruecolor(200, 200); $orange = imagecolorallocate($im, 27, 200, 224); $instrument_colors = array(imagecolorallocate($im, 27, 158, 224), imagecolorallocate($im, 255, 165, 0), imagecolorallocate($im, 153, 20, 20), imagecolorallocate($im, 204, 143, 198), imagecolorallocate($im, 54, 204, 43), imagecolorallocate($im, 96, 96, 96), imagecolorallocate($im, 81, 43, 204), imagecolorallocate($im, 168, 204, 43), imagecolorallocate($im, 21, 108, 176), imagecolorallocate($im, 116, 107, 0), imagecolorallocate($im, 241, 170, 0), imagecolorallocate($im, 145, 105, 42), imagecolorallocate($im, 83, 53, 7)); $white = imagecolorallocate($im, 255, 255, 255); $black = imagecolorallocate($im, 0, 0, 0); $row = mysqli_fetch_array(db_query('SELECT title, data, date FROM sequences WHERE id="' . $id . '" LIMIT 1')); $data = $row['data']; $data = explode(':', $data); $data = $data[1]; $parts = explode(";", $data); $notes = 0; imagefilledrectangle($im, 0, 0, 200, 200, $black); foreach ($parts as $p) { if (empty($p)) { continue; } $arr = explode(' ', $p); if (!isset($arr[3])) { $arr[3] = 0; } if (!isset($arr[1])) { continue; } $note = $arr[1]; $time = $arr[0]; $x = $time * 2; $y = (count($piano) - array_search($note, $piano) - 15) * 4; if ($x < 200 && $y < 200) { imagefilledrectangle($im, $x, $y, $x + 2, $y + 2, $instrument_colors[$arr[3]]); } $notes++; } $date = @date("m/d/y", $row['date']); if (!isset($title)) { if ($row['title'] != 'Untitled') { $title = e_html($row['title']); } else { $title = 'Sequence #' . $id; } } if (strlen($title) > 22) { $title = substr($title, 0, 22) . '...'; } imagettftext($im, 12, 0, 10, 23, $black, "resources/Prototype.ttf", $title); imagettftext($im, 12, 0, 9, 22, $white, "resources/Prototype.ttf", $title); imagettftext($im, 12, 0, 10, 187, $black, "resources/Prototype.ttf", isset($caption) ? $caption : $date); imagettftext($im, 12, 0, 9, 186, $white, "resources/Prototype.ttf", isset($caption) ? $caption : $date); if (TEST) { imagegif($im); exit; } else { imagegif($im, $filename); } } echo file_get_contents($filename); }