diff --git a/www/2024/lib/get_races.php b/www/2024/lib/get_races.php
new file mode 100644
index 0000000..b30b6d6
--- /dev/null
+++ b/www/2024/lib/get_races.php
@@ -0,0 +1,35 @@
+
+ $servername = "db";
+ $username = 'kalskeborec';
+ $password = 'Kalskeborec1!23$';
+ $db = 'kalskeborec';
+
+ // Create connection
+ $conn = new mysqli($servername, $username, $password, $db);
+
+ // Check connection
+ if ($conn->connect_error) {
+ die("Connection failed: " . $conn->connect_error);
+ }
+
+ $year = date("Y");
+ $sql = "SELECT ID, NAME, LENGTH, CLIMB from RACES where YEAR like '".$year."'";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $table_registered = '';
+ while($row = $result->fetch_assoc()) {
+ $races[] = $row;
+ }
+ }
+ // would be nice to check if the email exists
+ $sql = "SELECT ID, NAME, SURNAME, EMAIL from REGISTERED where EMAIL_CHECK like '".$email_check."'";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $unique_email = False;
+ }
+ else{
+ $unique_email = True;
+ }
+ $conn->close();
+ //var_dump($races);
+?>
diff --git a/www/2024/lib/mysql_connect.php b/www/2024/lib/mysql_connect.php
new file mode 100644
index 0000000..63d9d84
--- /dev/null
+++ b/www/2024/lib/mysql_connect.php
@@ -0,0 +1,18 @@
+
+//phpinfo();
+$servername = "db";
+$username = 'kalskeborec';
+$password = 'Kalskeborec1!23$';
+$db = 'kalskeborec';
+
+// Create connection
+$conn = new mysqli($servername, $username, $password, $db);
+
+// Check connection
+if ($conn->connect_error) {
+ die("Connection failed: " . $conn->connect_error);
+}
+//echo "Connected successfully";
+
+
+?>
diff --git a/www/2024/lib/registered_table.php b/www/2024/lib/registered_table.php
new file mode 100644
index 0000000..4990bc9
--- /dev/null
+++ b/www/2024/lib/registered_table.php
@@ -0,0 +1,48 @@
+
+ $servername = "db";
+ $username = 'kalskeborec';
+ $password = 'Kalskeborec1!23$';
+ $db = 'kalskeborec';
+
+ // Create connection
+ $conn = new mysqli($servername, $username, $password, $db);
+
+ // Check connection
+ if ($conn->connect_error) {
+ die("Connection failed: " . $conn->connect_error);
+ }
+
+ $sql = "SELECT ID, NAME, SURNAME, EMAIL, PHONE, NICK, RACE, TIME, TRACKLOG, EMAIL_CHECK, CONFIRMED, PAID FROM REGISTERED";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $table_registered = '';
+ while($row = $result->fetch_assoc()) {
+ $table_registered = $table_registered.'
';
+ $table_registered = $table_registered.'| '.$row["ID"].' | '.$row["NAME"].' '.$row["SURNAME"].' | '.$row["EMAIL"].' | '.$row["PHONE"].' | ';
+ $table_registered = $table_registered.''.$row["NICK"].' | '.$row["RACE"].' | ';
+ $table_registered = $table_registered.''.$row["TIME"].' | '.$row["TRACKLOG"].' | ';
+ $table_registered = $table_registered.''.$row["EMAIL_CHECK"].' | '.$row["CONFIRMED"].' | '.$row["PAID"].' | ';
+ $table_registered = $table_registered.'
';
+ }
+ }else{
+ echo "0 results";
+ }
+ $conn->close();
+?>
+
+
+
+ | ID |
+ Jméno |
+ Email |
+ Telefon |
+ Přezdívka / Team |
+ Závod |
+ Čas |
+ Log |
+ Email check link |
+ Potvrzeno |
+ Zaplaceno |
+
+ echo $table_registered; ?>
+
diff --git a/www/2024/lib/show_reg_public.php b/www/2024/lib/show_reg_public.php
new file mode 100644
index 0000000..21dd90f
--- /dev/null
+++ b/www/2024/lib/show_reg_public.php
@@ -0,0 +1,171 @@
+
+
+
+ $year = date("Y");
+ $sql = "SELECT ID, NAME, LENGTH, CLIMB from RACES where YEAR like '".$year."'";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $table_registered = '';
+ while($row = $result->fetch_assoc()) {
+ $races[] = $row;
+ }
+ }
+ foreach($races as $race){
+ $race_blob[$race['ID']] = $race['NAME'];
+ }
+
+$sql = "SELECT ID, NICK, RACE, TIME FROM REGISTERED";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $reg_racers = [];
+ while($row = $result->fetch_assoc()) {
+
+ $reg_racers[$row["RACE"]][] = ["ID" => $row["ID"], "NICK" => $row["NICK"], "RACE" => $race_blob[$row["RACE"]], "TIME" => $row["TIME"]];
+ }
+ }else{
+ //echo "0 results";
+ }
+
+$sql = "SELECT ID, NICK, RACE, TIME FROM REGISTERED where RACE like '5' order by TIME ASC";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $reg_racers = [];
+ while($row = $result->fetch_assoc()) {
+
+ $reg_racers_5[] = ["ID" => $row["ID"], "NICK" => $row["NICK"], "RACE" => $race_blob[$row["RACE"]], "TIME" => $row["TIME"]];
+ }
+ }else{
+ $reg_racers_5 = null;
+ }
+
+$sql = "SELECT ID, NICK, RACE, TIME FROM REGISTERED where RACE like '4' order by TIME ASC";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $reg_racers = [];
+ while($row = $result->fetch_assoc()) {
+
+ $reg_racers_4[] = ["ID" => $row["ID"], "NICK" => $row["NICK"], "RACE" => $race_blob[$row["RACE"]], "TIME" => $row["TIME"]];
+ }
+ }else{
+ $reg_racers_4 = null;
+ }
+
+$sql = "SELECT ID, NICK, RACE, TIME FROM REGISTERED where RACE like '3' order by TIME ASC";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $reg_racers = [];
+ while($row = $result->fetch_assoc()) {
+
+ $reg_racers_3[] = ["ID" => $row["ID"], "NICK" => $row["NICK"], "RACE" => $race_blob[$row["RACE"]], "TIME" => $row["TIME"]];
+ }
+ }else{
+ $reg_racers_3 = null;
+ }
+
+$sql = "SELECT ID, NICK, RACE, TIME FROM REGISTERED where RACE like '2' order by TIME ASC";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $reg_racers = [];
+ while($row = $result->fetch_assoc()) {
+
+ $reg_racers_2[] = ["ID" => $row["ID"], "NICK" => $row["NICK"], "RACE" => $race_blob[$row["RACE"]], "TIME" => $row["TIME"]];
+ }
+ }else{
+ $reg_racers_2 = null;
+ }
+
+$sql = "SELECT ID, NICK, RACE, TIME FROM REGISTERED where RACE like '1' order by TIME ASC";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $reg_racers = [];
+ while($row = $result->fetch_assoc()) {
+
+ $reg_racers_1[] = ["ID" => $row["ID"], "NICK" => $row["NICK"], "RACE" => $race_blob[$row["RACE"]], "TIME" => $row["TIME"]];
+ }
+ }else{
+ $reg_racers_1 = null;
+ }
+
+if($reg_racers_5 != null){
+ $place = 1;
+ $medal = '';
+ $reg_race_5_display = '';
+ foreach($reg_racers_5 as $racer){
+ if($place == 1) $medal = '
';
+ if($place == 2) $medal = '
';
+ if($place == 3) $medal = '
';
+ $reg_race_5_display = $reg_race_5_display.'| '.$racer['ID'].' | '.$racer["NICK"].' | '.$racer["RACE"].' | '.$racer["TIME"].' | '.$place.'. '.$medal.' |
';
+ $place++;
+ $medal = '';
+ }
+}
+else {
+ $reg_race_5_display = '';
+}
+if($reg_racers_4 != null){
+ $place = 1;
+ $medal = '';
+ $reg_race_4_display = '';
+ foreach($reg_racers_4 as $racer){
+ if($place == 1) $medal = '
';
+ if($place == 2) $medal = '
';
+ if($place == 3) $medal = '
';
+ $reg_race_4_display = $reg_race_4_display.'| '.$racer['ID'].' | '.$racer["NICK"].' | '.$racer["TIME"].' | '.$place.'. '.$medal.' |
';
+ $place++;
+ $medal = '';
+ }
+}
+else {
+ $reg_race_4_display = '';
+}
+if($reg_racers_3 != null){
+ $place = 1;
+ $medal = '';
+ $reg_race_3_display = '';
+ foreach($reg_racers_3 as $racer){
+ if($place == 1) $medal = '
';
+ if($place == 2) $medal = '
';
+ if($place == 3) $medal = '
';
+ $reg_race_3_display = $reg_race_3_display.'| '.$racer['ID'].' | '.$racer["NICK"].' | '.$racer["TIME"].' | '.$place.'. '.$medal.' |
';
+ $place++;
+ $medal = '';
+ }
+}
+else {
+ $reg_race_3_display = '';
+}
+if($reg_racers_2 != null){
+ $place = 1;
+ $medal = '';
+ $reg_race_2_display = '';
+ foreach($reg_racers_2 as $racer){
+ if($place == 1) $medal = '
';
+ if($place == 2) $medal = '
';
+ if($place == 3) $medal = '
';
+ $reg_race_2_display = $reg_race_2_display.'| '.$racer['ID'].' | '.$racer["NICK"].' | '.$racer["TIME"].' | '.$place.'. '.$medal.' |
';
+ $place++;
+ $medal = '';
+ }
+}
+else {
+ $reg_race_2_display = '';
+}
+if($reg_racers_1 != null){
+ $place = 1;
+ $medal = '';
+ $reg_race_1_display = '';
+ foreach($reg_racers_1 as $racer){
+ if($place == 1) $medal = '
';
+ if($place == 2) $medal = '
';
+ if($place == 3) $medal = '
';
+ $reg_race_1_display = $reg_race_1_display.'| '.$racer['ID'].' | '.$racer["NICK"].' | '.$racer["TIME"].' | '.$place.'. '.$medal.' |
';
+ $place++;
+ $medal = '';
+ }
+}
+else {
+ $reg_race_1_display = '';
+}
+?>
+
+
diff --git a/www/2024/lib/write_registered.php b/www/2024/lib/write_registered.php
new file mode 100644
index 0000000..fbf8581
--- /dev/null
+++ b/www/2024/lib/write_registered.php
@@ -0,0 +1,131 @@
+
+$servername = "db";
+$username = 'kalskeborec';
+$password = 'Kalskeborec1!23$';
+$db = 'kalskeborec';
+$race_name = $race_blob[$race_to_write];
+// mail send
+ function read_cb($ch, $fp, $length) {
+ return fread($fp, $length);
+ }
+
+
+
+// Create connection
+$conn = new mysqli($servername, $username, $password, $db);
+
+// Check connection
+if ($conn->connect_error) {
+ die("Connection failed: " . $conn->connect_error);
+}
+
+// would be nice to check if the name / nick / email exists
+$sql = "SELECT ID, NAME, SURNAME, EMAIL from REGISTERED where EMAIL_CHECK like '".$email_check."'";
+ $result = $conn->query($sql);
+ if ($result->num_rows > 0){
+ $unique_email = False;
+ }
+ else{
+ $unique_email = True;
+ }
+
+// Geting the values from the script above. -< register.php
+
+if($unique_email){
+ $stm = $conn->prepare("INSERT INTO REGISTERED (ID, NAME, SURNAME, EMAIL, PHONE, NICK, RACE, TIME, TRACKLOG, EMAIL_CHECK, CONFIRMED, PAID)
+ values (NULL,?,?,?,?,?,?,'[None]','[None]',?,'0','0')");
+ $stm->bind_param('sssssss',$fname, $lname, $email, $phone, $nick, $race_to_write, $email_check);
+
+
+ if ($stm->execute() === TRUE) {
+ //echo "New record created successfully";
+ $sql = "SELECT ID, NAME, SURNAME, EMAIL, PHONE, NICK, RACE from REGISTERED where EMAIL_CHECK like '".$email_check."'";
+ $result = $conn->query($sql);
+ if ($result->num_rows == 1){
+ while($racer = $result->fetch_assoc()) {
+ $racers[] = $racer;
+ }
+ $write_success = ["result"=> True, "reason" => "Přihlášeno"];
+ $logged_racer = $racers[0];
+ $id = $logged_racer['ID'];
+ // Must send email somehow. :-)
+ $fp = fopen('php://memory', 'r+');
+ $string = "From: Kalské Borec \r\n";
+ $string .= "To: <$email>\r\n";
+ $string .= "Date: " . date('r') . "\r\n";
+ $string .= "Subject: Kalske Borec\r\n";
+ $string .= "Content-Type: text/html; charset=\"utf-8\"";
+ $string .= "Content-Transfer-Encoding: quoted-printable";
+ $string .= "\r\n";
+ $string .= "Děkuji, $fname $lname, za registraci na Kalského Borca //24
+ Jako první věc, poprosím o potvrzení emailu na
+ http://$base_url/confirm.php?email_check=$email_check
+ Pod tímto odkazem pak můžeš sledovat jestli s tebou počítám, nebo stav zaplacení startovného.
\r\n
+
+ Číslo registrace: $id
+ Okruh, resp. závod: $race_to_write ($race_name)
+ Pod přezdívkou: $nick
+
+
+ Datum konání: 23.3.2024
+ Start na závod //Kalský Borec, tedy ten největší: 9:00
+ Start samostatných okruhů //Freeride a //XC: 10:00
+ Start //Junior a //Rodina: 12:00
+
+
+ Startovné: 400,-
+ Číslo účtu: 1262023012/3030
+ Zpráva: Kalské Borec 24, $id
+ Var. Symbol: $id
+ 
+ Jídlo a pití máš v ceně, nezávodníci pak přispívají na místě, pokuď bude hlad a žízeň.
+
+
+ Abys k nám trefil:
+ Kaly 62, 59455, Kaly.
+ //MAPA
+
+
+
+ Kolu zdar,
+
Milan \"Ventil\" Toman
";
+ $string .= "\r\n";
+ fwrite($fp, $string);
+ rewind($fp);
+
+ $ch = curl_init();
+ curl_setopt_array($ch, [
+ CURLOPT_URL => 'smtps://mail.spoton.cz',
+ CURLOPT_MAIL_FROM => '',
+ CURLOPT_MAIL_RCPT => ["<$email>"],
+ CURLOPT_USERNAME => 'ventil',
+ CURLOPT_PASSWORD => '3 litry Kvasaru!',
+ CURLOPT_USE_SSL => CURLUSESSL_ALL,
+ CURLOPT_READFUNCTION => 'read_cb',
+ CURLOPT_INFILE => $fp,
+ CURLOPT_UPLOAD => true,
+ CURLOPT_VERBOSE => true,
+ CURLOPT_SSL_VERIFYHOST => false,
+ CURLOPT_SSL_VERIFYPEER => false,
+ ]);
+ $x = curl_exec($ch);
+ if ($x === false) {
+ echo curl_errno($ch) . ' = ' . curl_strerror(curl_errno($ch)) . PHP_EOL;
+ }
+ curl_close($ch);
+ fclose($fp);
+ }
+ else{
+ $write_success = ["result"=> False, "reason" => "Error: Duplikátní záznam závodnika, napiš Ventilovi"];
+ }
+ } else {
+ $write_success = ["result"=> False, "reason" => "Error: " . $stm . ": " . $conn->error];
+ }
+}
+else {
+ $write_success = ["result"=> False, "reason" => "Závodník s tímto emailem už existuje"];
+}
+
+
+$conn->close();
+?>