connect_error) { die("Connection failed: " . $conn->connect_error); } $loginerror = NULL; $mysqlerror = NULL; $registererror = NULL; function remove_accents($string) { if (!preg_match('/[\x80-\xff]/', $string)) return $string; $chars = array( // Decompositions for Latin-1 Supplement chr(195) . chr(128) => 'A', chr(195) . chr(129) => 'A', chr(195) . chr(130) => 'A', chr(195) . chr(131) => 'A', chr(195) . chr(132) => 'A', chr(195) . chr(133) => 'A', chr(195) . chr(135) => 'C', chr(195) . chr(136) => 'E', chr(195) . chr(137) => 'E', chr(195) . chr(138) => 'E', chr(195) . chr(139) => 'E', chr(195) . chr(140) => 'I', chr(195) . chr(141) => 'I', chr(195) . chr(142) => 'I', chr(195) . chr(143) => 'I', chr(195) . chr(145) => 'N', chr(195) . chr(146) => 'O', chr(195) . chr(147) => 'O', chr(195) . chr(148) => 'O', chr(195) . chr(149) => 'O', chr(195) . chr(150) => 'O', chr(195) . chr(153) => 'U', chr(195) . chr(154) => 'U', chr(195) . chr(155) => 'U', chr(195) . chr(156) => 'U', chr(195) . chr(157) => 'Y', chr(195) . chr(159) => 's', chr(195) . chr(160) => 'a', chr(195) . chr(161) => 'a', chr(195) . chr(162) => 'a', chr(195) . chr(163) => 'a', chr(195) . chr(164) => 'a', chr(195) . chr(165) => 'a', chr(195) . chr(167) => 'c', chr(195) . chr(168) => 'e', chr(195) . chr(169) => 'e', chr(195) . chr(170) => 'e', chr(195) . chr(171) => 'e', chr(195) . chr(172) => 'i', chr(195) . chr(173) => 'i', chr(195) . chr(174) => 'i', chr(195) . chr(175) => 'i', chr(195) . chr(177) => 'n', chr(195) . chr(178) => 'o', chr(195) . chr(179) => 'o', chr(195) . chr(180) => 'o', chr(195) . chr(181) => 'o', chr(195) . chr(182) => 'o', chr(195) . chr(182) => 'o', chr(195) . chr(185) => 'u', chr(195) . chr(186) => 'u', chr(195) . chr(187) => 'u', chr(195) . chr(188) => 'u', chr(195) . chr(189) => 'y', chr(195) . chr(191) => 'y', // Decompositions for Latin Extended-A chr(196) . chr(128) => 'A', chr(196) . chr(129) => 'a', chr(196) . chr(130) => 'A', chr(196) . chr(131) => 'a', chr(196) . chr(132) => 'A', chr(196) . chr(133) => 'a', chr(196) . chr(134) => 'C', chr(196) . chr(135) => 'c', chr(196) . chr(136) => 'C', chr(196) . chr(137) => 'c', chr(196) . chr(138) => 'C', chr(196) . chr(139) => 'c', chr(196) . chr(140) => 'C', chr(196) . chr(141) => 'c', chr(196) . chr(142) => 'D', chr(196) . chr(143) => 'd', chr(196) . chr(144) => 'D', chr(196) . chr(145) => 'd', chr(196) . chr(146) => 'E', chr(196) . chr(147) => 'e', chr(196) . chr(148) => 'E', chr(196) . chr(149) => 'e', chr(196) . chr(150) => 'E', chr(196) . chr(151) => 'e', chr(196) . chr(152) => 'E', chr(196) . chr(153) => 'e', chr(196) . chr(154) => 'E', chr(196) . chr(155) => 'e', chr(196) . chr(156) => 'G', chr(196) . chr(157) => 'g', chr(196) . chr(158) => 'G', chr(196) . chr(159) => 'g', chr(196) . chr(160) => 'G', chr(196) . chr(161) => 'g', chr(196) . chr(162) => 'G', chr(196) . chr(163) => 'g', chr(196) . chr(164) => 'H', chr(196) . chr(165) => 'h', chr(196) . chr(166) => 'H', chr(196) . chr(167) => 'h', chr(196) . chr(168) => 'I', chr(196) . chr(169) => 'i', chr(196) . chr(170) => 'I', chr(196) . chr(171) => 'i', chr(196) . chr(172) => 'I', chr(196) . chr(173) => 'i', chr(196) . chr(174) => 'I', chr(196) . chr(175) => 'i', chr(196) . chr(176) => 'I', chr(196) . chr(177) => 'i', chr(196) . chr(178) => 'IJ', chr(196) . chr(179) => 'ij', chr(196) . chr(180) => 'J', chr(196) . chr(181) => 'j', chr(196) . chr(182) => 'K', chr(196) . chr(183) => 'k', chr(196) . chr(184) => 'k', chr(196) . chr(185) => 'L', chr(196) . chr(186) => 'l', chr(196) . chr(187) => 'L', chr(196) . chr(188) => 'l', chr(196) . chr(189) => 'L', chr(196) . chr(190) => 'l', chr(196) . chr(191) => 'L', chr(197) . chr(128) => 'l', chr(197) . chr(129) => 'L', chr(197) . chr(130) => 'l', chr(197) . chr(131) => 'N', chr(197) . chr(132) => 'n', chr(197) . chr(133) => 'N', chr(197) . chr(134) => 'n', chr(197) . chr(135) => 'N', chr(197) . chr(136) => 'n', chr(197) . chr(137) => 'N', chr(197) . chr(138) => 'n', chr(197) . chr(139) => 'N', chr(197) . chr(140) => 'O', chr(197) . chr(141) => 'o', chr(197) . chr(142) => 'O', chr(197) . chr(143) => 'o', chr(197) . chr(144) => 'O', chr(197) . chr(145) => 'o', chr(197) . chr(146) => 'OE', chr(197) . chr(147) => 'oe', chr(197) . chr(148) => 'R', chr(197) . chr(149) => 'r', chr(197) . chr(150) => 'R', chr(197) . chr(151) => 'r', chr(197) . chr(152) => 'R', chr(197) . chr(153) => 'r', chr(197) . chr(154) => 'S', chr(197) . chr(155) => 's', chr(197) . chr(156) => 'S', chr(197) . chr(157) => 's', chr(197) . chr(158) => 'S', chr(197) . chr(159) => 's', chr(197) . chr(160) => 'S', chr(197) . chr(161) => 's', chr(197) . chr(162) => 'T', chr(197) . chr(163) => 't', chr(197) . chr(164) => 'T', chr(197) . chr(165) => 't', chr(197) . chr(166) => 'T', chr(197) . chr(167) => 't', chr(197) . chr(168) => 'U', chr(197) . chr(169) => 'u', chr(197) . chr(170) => 'U', chr(197) . chr(171) => 'u', chr(197) . chr(172) => 'U', chr(197) . chr(173) => 'u', chr(197) . chr(174) => 'U', chr(197) . chr(175) => 'u', chr(197) . chr(176) => 'U', chr(197) . chr(177) => 'u', chr(197) . chr(178) => 'U', chr(197) . chr(179) => 'u', chr(197) . chr(180) => 'W', chr(197) . chr(181) => 'w', chr(197) . chr(182) => 'Y', chr(197) . chr(183) => 'y', chr(197) . chr(184) => 'Y', chr(197) . chr(185) => 'Z', chr(197) . chr(186) => 'z', chr(197) . chr(187) => 'Z', chr(197) . chr(188) => 'z', chr(197) . chr(189) => 'Z', chr(197) . chr(190) => 'z', chr(197) . chr(191) => 's' ); $string = strtr($string, $chars); return $string; } function vypisTreninku() { global $conn; $sql = "SELECT id, datum, kapacita, jmeno, popis, obrazek FROM trenink_trenink ORDER BY datum ASC"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row $dateus = array("/^1/", "/^2/", "/^3/", "/^4/", "/^5/", "/^6/", "/^7/"); $datecz = array("Po", "Út", "St", "Čt", "Pa", "So", "Ne"); echo '
'; while ($row = $result->fetch_assoc()) { $sql1 = "select jmeno, prijmeni from trenink_trenuje t INNER JOIN trenink_user u ON t.trener=u.id WHERE t.trenink=" . $row["id"] . ";"; $result1 = $conn->query($sql1); $sql2 = "select * from trenink_zapsan where trenink=" . $row["id"] . ";"; $result2 = $conn->query($sql2); $row2 = $result2->fetch_row(); if (isset($_SESSION["userid"])) { $sql3 = "select * from trenink_zapsan where trenink=" . $row["id"] . " and client=" . $_SESSION["userid"] . ";"; $result3 = $conn->query($sql3); } echo '
'; echo 'Card image cap'; echo '
'; echo '
'; echo '
'; echo '
'; echo '

' . $row["jmeno"] . '

'; echo '
'; echo '
'; echo '
'; echo '
'; echo '' . preg_replace($dateus, $datecz, date("N j.&\\nb\sp;n. Y \o\d&\\nb\sp;H:i", strtotime($row["datum"]))) . ''; echo '
'; echo '
'; echo '
'; echo '
'; echo 'Trénují: '; if ($result1->num_rows > 0) { $count = $result1->num_rows - 1; while ($row1 = $result1->fetch_assoc()) { echo '' . $row1["jmeno"] . ' ' . $row1["prijmeni"] . ''; if ($count) { echo ", "; $count--; } } } else { echo "Nikdo netrénuje."; } echo ''; echo '
'; echo '
'; echo '
'; echo '
'; echo '

' . $row["popis"] . '

'; echo '
'; echo '
'; echo '
'; echo '
'; if (isset($_SESSION["userid"])) { if ($row["kapacita"] <= $result2->num_rows) { echo 'Plno'; } elseif ($result3->num_rows) { echo 'Odepsat se'; } else { echo 'Zapsat se'; } } else { echo '
'; echo 'Zapsat se'; echo '
'; } echo '
'; echo '
'; if (100 / $row["kapacita"] * $result2->num_rows > 85) { $fontColor = "text-danger"; } else if (100 / $row["kapacita"] * $result2->num_rows > 65) { $fontColor = "text-warning"; } else { $fontColor = "text-primary"; } echo '' . $result2->num_rows . '/' . $row["kapacita"] . ''; echo '
'; echo '
'; echo '
'; echo '
'; echo '
'; } echo '
'; } else { echo ''; } } function registrace($jmeno, $prijmeni, $email, $passwd, $passwdr) { global $registererror; if (empty($jmeno) || empty($prijmeni) || empty($email) || empty($passwd) || empty($passwdr)) { $registererror = "Vyplňte všechna pole."; } else { if($passwd == $passwdr){ $url = 'http://captcheck.netsyms.com/api.php'; $data = [ 'session_id' => $_POST['captcheck_session_code'], 'answer_id' => isset($_POST['captcheck_selected_answer']) ? $_POST['captcheck_selected_answer'] : NULL, 'action' => "verify" ]; $options = [ 'http' => [ 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data) ] ]; $context = stream_context_create($options); $result = file_get_contents($url, false, $context); $resp = json_decode($result, TRUE); if (!$resp['result']) { // Replace with error-handling code $registererror = "Chyba ověření."; } else { global $conn; $sql = "INSERT INTO `trenink_user` (`id`, `email`, `passwd`, `role`, `jmeno`, `prijmeni`, `overeni`) VALUES (NULL, '$email', '". crypt($passwd, '$6$rounds=5000$wretgbgsdfbuikitffdhsa$')."', 1, '$jmeno', '$prijmeni', 0);"; if ($conn->query($sql) === FALSE) { if ($conn->errno == 1062) { $registererror = "Tento email je již registrován."; } else { $registererror = "Error: " . $sql . "
" . $conn->error; } } prihlaseni($email, $passwd); } } else { $registererror = "Hesla jsou rozdílná."; } } } function prihlaseni($email, $passwd) { global $loginerror; if (empty($email) || empty($passwd)) { $loginerror = "Vyplňte email i heslo."; } else { global $conn; $sql = "SELECT id, jmeno, prijmeni, `role`, email, passwd FROM trenink_user WHERE email LIKE '" . $email . "';"; $result = $conn->query($sql); $row = $result->fetch_assoc(); if (empty($row)) { $loginerror = "Tento email není zaregistrován."; } elseif (crypt($passwd, '$6$rounds=5000$wretgbgsdfbuikitffdhsa$') == $row['passwd']) { // Set session variables $_SESSION["userid"] = $row['id']; $_SESSION["userjmeno"] = $row['jmeno']; $_SESSION["userprijmeni"] = $row['prijmeni']; $_SESSION["userrole"] = $row['role']; } else { $loginerror = "Špatné heslo."; } } } function logout() { // remove all session variables session_unset(); // destroy the session session_destroy(); } function zapsat($trenink) { global $conn; global $mysqlerror; $sql = "INSERT INTO `trenink_zapsan` (`client`, `trenink`) VALUES ('" . $_SESSION["userid"] . "', '$trenink');"; if ($conn->query($sql) === TRUE) { } else { $mysqlerror = "Error: " . $sql . "
" . $conn->error; } } function odepsat($trenink) { global $conn; global $mysqlerror; $sql = "DELETE FROM `trenink_zapsan` WHERE `trenink_zapsan`.`client` = " . $_SESSION["userid"] . " AND `trenink_zapsan`.`trenink` = $trenink;"; if ($conn->query($sql) === TRUE) { } else { $mysqlerror = "Error: " . $sql . "
" . $conn->error; } }