initial commit
This commit is contained in:
322
-inc/function.php
Normal file
322
-inc/function.php
Normal file
@@ -0,0 +1,322 @@
|
||||
<?php
|
||||
|
||||
$servername = "127.0.0.1";
|
||||
$username = "...";
|
||||
$password = "...";
|
||||
$dbname = "...";
|
||||
|
||||
// Create connection
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
// Check connection
|
||||
if ($conn->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 '<div class="card-columns">';
|
||||
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 '<div class="card">';
|
||||
echo '<img class="card-img-top" src="data:image/jpeg;base64,' . base64_encode($row['obrazek']) . '" alt="Card image cap">';
|
||||
echo '<div class="card-body">';
|
||||
echo '<div class="container">';
|
||||
echo '<div class="row">';
|
||||
echo '<div class="col">';
|
||||
echo '<h2 class="card-title">' . $row["jmeno"] . '</h2>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '<div class="row">';
|
||||
echo '<div class="col">';
|
||||
echo '<span class="datum"><strong>' . preg_replace($dateus, $datecz, date("N j.&\\nb\sp;n. Y \o\d&\\nb\sp;H:i", strtotime($row["datum"]))) . '</strong></span>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '<div class="row">';
|
||||
echo '<div class="col">';
|
||||
echo '<strong class="text-muted">Trénují: </strong>';
|
||||
if ($result1->num_rows > 0) {
|
||||
$count = $result1->num_rows - 1;
|
||||
while ($row1 = $result1->fetch_assoc()) {
|
||||
echo '<a href="onas.php#' . remove_accents($row1["prijmeni"]) . '">' . $row1["jmeno"] . ' ' . $row1["prijmeni"] . '</a>';
|
||||
if ($count) {
|
||||
echo ", ";
|
||||
$count--;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "Nikdo netrénuje.";
|
||||
}
|
||||
echo '';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '<div class="row">';
|
||||
echo '<div class="col">';
|
||||
echo '<p class="card-text">' . $row["popis"] . '</p>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '<div class="row align-items-center mt-3">';
|
||||
echo '<div class="col">';
|
||||
if (isset($_SESSION["userid"])) {
|
||||
if ($row["kapacita"] <= $result2->num_rows) {
|
||||
echo '<a class="btn btn-danger disabled" href="#" role="button">Plno</a>';
|
||||
} elseif ($result3->num_rows) {
|
||||
echo '<a class="btn btn-outline-danger" href="?odepsat=' . $row["id"] . '" role="button">Odepsat se</a>';
|
||||
} else {
|
||||
echo '<a class="btn btn-success" href="?zapsat=' . $row["id"] . '" role="button">Zapsat se</a>';
|
||||
}
|
||||
} else {
|
||||
echo '<div class="btn-group p-0" role="group" aria-label="Basic example" data-toggle="popover" data-placement="bottom" data-content="Pro zapsání se musíte přihlásit.">';
|
||||
echo '<a class="btn btn-success disabled" href="#" role="button">Zapsat se</a>';
|
||||
echo '</div>';
|
||||
}
|
||||
echo '</div>';
|
||||
echo '<div class="col-">';
|
||||
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 '<span class="align-bottom ' . $fontColor . ' kapacita">' . $result2->num_rows . '/' . $row["kapacita"] . '</span>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
}
|
||||
echo '</div>';
|
||||
} else {
|
||||
echo '<div class="alert alert-info w-100" role="alert">';
|
||||
echo "Momentálně nemáme žádné tréninky.";
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
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 . "<br>" . $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 . "<br>" . $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 . "<br>" . $conn->error;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user