diff --git a/sql/survey.sql b/sql/survey.sql index 0e1909a..b6d8142 100644 --- a/sql/survey.sql +++ b/sql/survey.sql @@ -1,11 +1,11 @@ -- phpMyAdmin SQL Dump --- version 5.1.1 +-- version 5.2.0 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 --- Erstellungszeit: 17. Mrz 2023 um 12:46 --- Server-Version: 10.4.20-MariaDB --- PHP-Version: 8.0.9 +-- Erstellungszeit: 19. Mrz 2023 um 20:12 +-- Server-Version: 10.4.27-MariaDB +-- PHP-Version: 8.0.25 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; @@ -29,11 +29,11 @@ SET time_zone = "+00:00"; CREATE TABLE `jumi_admin` ( `bpmuid` int(11) NOT NULL, - `vorname` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - `nachname` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - `mail` varchar(100) COLLATE utf8_unicode_ci NOT NULL, - `uid` varchar(23) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - `passwort` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' + `vorname` varchar(20) NOT NULL DEFAULT '', + `nachname` varchar(20) NOT NULL DEFAULT '', + `mail` varchar(100) NOT NULL, + `uid` varchar(23) NOT NULL DEFAULT '', + `passwort` varchar(32) NOT NULL DEFAULT '' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Benutzer'; -- @@ -55,8 +55,8 @@ INSERT INTO `jumi_admin` (`bpmuid`, `vorname`, `nachname`, `mail`, `uid`, `passw CREATE TABLE `jumi_adminlog` ( `lid` int(11) NOT NULL, `Datum` datetime NOT NULL, - `IP` varchar(15) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', - `user_agent` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `IP` varchar(15) NOT NULL DEFAULT '', + `user_agent` varchar(255) NOT NULL, `bpmuid` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Logins der Anwender'; @@ -1445,7 +1445,7 @@ CREATE TABLE `jumi_buchung` ( `lfd_haushalt` int(11) NOT NULL, `mail` varchar(250) NOT NULL, `save_date` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- -- Daten für Tabelle `jumi_buchung` @@ -7223,7 +7223,7 @@ CREATE TABLE `jumi_daueranmeldung` ( `vorname` varchar(250) NOT NULL, `mail` varchar(250) NOT NULL, `lfd_haushalt` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- -------------------------------------------------------- @@ -7236,7 +7236,7 @@ CREATE TABLE `jumi_parameter` ( `beschreibung` varchar(250) NOT NULL, `wert` varchar(250) NOT NULL, `sort` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -- Daten für Tabelle `jumi_parameter` @@ -7262,7 +7262,7 @@ CREATE TABLE `jumi_qr_fellbach` ( `vorname` varchar(250) NOT NULL, `qr` varchar(250) NOT NULL, `mail` varchar(250) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -- Daten für Tabelle `jumi_qr_fellbach` @@ -7391,7 +7391,7 @@ CREATE TABLE `jumi_standardsitzplatz` ( `vorname` varchar(250) NOT NULL, `reihe` varchar(50) NOT NULL, `platz` varchar(1) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- -- Daten für Tabelle `jumi_standardsitzplatz` @@ -7546,7 +7546,7 @@ CREATE TABLE `jumi_termine` ( `loginstop` datetime NOT NULL, `hinweis` varchar(250) NOT NULL, `fellbach_gd` enum('J','N') NOT NULL DEFAULT 'N' -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- -- Daten für Tabelle `jumi_termine` @@ -7642,16 +7642,18 @@ CREATE TABLE `jumi_umfragen` ( `datum_von` datetime NOT NULL, `datum_bis` datetime NOT NULL, `headline` varchar(255) NOT NULL, + `freitext` enum('0','1') NOT NULL DEFAULT '0' COMMENT '0=Kein Frextextfeld;1=Freitextfeld', `uid` int(11) NOT NULL, `datum_erfasst` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -- Daten für Tabelle `jumi_umfragen` -- -INSERT INTO `jumi_umfragen` (`umid`, `datum_von`, `datum_bis`, `headline`, `uid`, `datum_erfasst`) VALUES -(1, '2023-03-17 00:00:00', '2023-03-18 17:30:00', 'Umfrage zur Singstunde 1', 1, '2023-03-17 06:53:51'); +INSERT INTO `jumi_umfragen` (`umid`, `datum_von`, `datum_bis`, `headline`, `freitext`, `uid`, `datum_erfasst`) VALUES +(1, '2023-03-19 00:00:00', '2023-03-20 17:30:00', 'Umfrage zur Singstunde 1', '0', 1, '2023-03-17 06:53:51'), +(2, '2023-03-16 19:42:08', '2023-03-17 23:00:00', 'test', '1', 1, '2023-03-19 19:42:08'); -- -------------------------------------------------------- @@ -7664,7 +7666,7 @@ CREATE TABLE `jumi_umfragen_antworten` ( `ufid` int(11) NOT NULL, `antwort` varchar(250) NOT NULL, `userorder` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -- Daten für Tabelle `jumi_umfragen_antworten` @@ -7684,6 +7686,76 @@ INSERT INTO `jumi_umfragen_antworten` (`uaid`, `ufid`, `antwort`, `userorder`) V -- -------------------------------------------------------- +-- +-- Tabellenstruktur für Tabelle `jumi_umfragen_ende` +-- + +CREATE TABLE `jumi_umfragen_ende` ( + `uenid` int(11) NOT NULL, + `umid` int(11) NOT NULL, + `ip` varchar(20) NOT NULL, + `session` varchar(50) NOT NULL, + `ende` enum('0','1') NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Daten für Tabelle `jumi_umfragen_ende` +-- + +INSERT INTO `jumi_umfragen_ende` (`uenid`, `umid`, `ip`, `session`, `ende`) VALUES +(1, 1, '127.0.0.1', '94edt9ged8jiosplp8ojstp4qs', '1'); + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `jumi_umfragen_ergebnisse` +-- + +CREATE TABLE `jumi_umfragen_ergebnisse` ( + `ueid` int(11) NOT NULL, + `ip` varchar(20) NOT NULL, + `session` varchar(50) NOT NULL, + `ufid` int(11) NOT NULL, + `uaid` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Daten für Tabelle `jumi_umfragen_ergebnisse` +-- + +INSERT INTO `jumi_umfragen_ergebnisse` (`ueid`, `ip`, `session`, `ufid`, `uaid`) VALUES +(41, '::1', 'monqf752r3a8tn4pav22thpjme', 1, 4), +(42, '::1', 'monqf752r3a8tn4pav22thpjme', 2, 6), +(44, '::1', 'monqf752r3a8tn4pav22thpjme', 4, 14), +(58, '127.0.0.1', '94edt9ged8jiosplp8ojstp4qs', 1, 1), +(59, '127.0.0.1', '94edt9ged8jiosplp8ojstp4qs', 1, 4), +(60, '127.0.0.1', '94edt9ged8jiosplp8ojstp4qs', 2, 6), +(61, '127.0.0.1', '94edt9ged8jiosplp8ojstp4qs', 4, 14); + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `jumi_umfragen_erg_freitext` +-- + +CREATE TABLE `jumi_umfragen_erg_freitext` ( + `uefid` int(11) NOT NULL, + `umid` int(11) NOT NULL, + `ip` varchar(20) NOT NULL, + `session` varchar(50) NOT NULL, + `freitext` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Daten für Tabelle `jumi_umfragen_erg_freitext` +-- + +INSERT INTO `jumi_umfragen_erg_freitext` (`uefid`, `umid`, `ip`, `session`, `freitext`) VALUES +(16, 1, '127.0.0.1', '94edt9ged8jiosplp8ojstp4qs', 'asdf234'), +(17, 1, '::1', 'monqf752r3a8tn4pav22thpjme', 'asdf asdfasdf '); + +-- -------------------------------------------------------- + -- -- Tabellenstruktur für Tabelle `jumi_umfragen_fragen` -- @@ -7693,7 +7765,7 @@ CREATE TABLE `jumi_umfragen_fragen` ( `umid` int(11) NOT NULL, `frage` varchar(255) NOT NULL, `multiple` enum('0','1') NOT NULL DEFAULT '0' COMMENT '0=Einfachantwort,1=Mehrfachantworten ' -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -- Daten für Tabelle `jumi_umfragen_fragen` @@ -7715,7 +7787,7 @@ CREATE TABLE `jumi_verfplaetze` ( `reihe` varchar(50) NOT NULL, `platz` varchar(1) NOT NULL, `gesperrt` enum('N','Y') NOT NULL DEFAULT 'N' -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- -- Daten für Tabelle `jumi_verfplaetze` @@ -7838,7 +7910,7 @@ CREATE TABLE `jumi_youtube_termine` ( `yid` int(11) NOT NULL, `datum` datetime NOT NULL, `url` varchar(250) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- -------------------------------------------------------- @@ -7848,10 +7920,10 @@ CREATE TABLE `jumi_youtube_termine` ( CREATE TABLE `qr_temp` ( `id` int(11) NOT NULL DEFAULT 0, - `nachname` varchar(250) CHARACTER SET utf8mb4 NOT NULL, - `vorname` varchar(250) CHARACTER SET utf8mb4 NOT NULL, - `qr` varchar(250) CHARACTER SET utf8mb4 NOT NULL, - `mail` varchar(250) CHARACTER SET utf8mb4 NOT NULL + `nachname` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `vorname` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `qr` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `mail` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- @@ -7980,6 +8052,24 @@ ALTER TABLE `jumi_umfragen` ALTER TABLE `jumi_umfragen_antworten` ADD PRIMARY KEY (`uaid`); +-- +-- Indizes für die Tabelle `jumi_umfragen_ende` +-- +ALTER TABLE `jumi_umfragen_ende` + ADD PRIMARY KEY (`uenid`); + +-- +-- Indizes für die Tabelle `jumi_umfragen_ergebnisse` +-- +ALTER TABLE `jumi_umfragen_ergebnisse` + ADD PRIMARY KEY (`ueid`); + +-- +-- Indizes für die Tabelle `jumi_umfragen_erg_freitext` +-- +ALTER TABLE `jumi_umfragen_erg_freitext` + ADD PRIMARY KEY (`uefid`); + -- -- Indizes für die Tabelle `jumi_umfragen_fragen` -- @@ -8054,7 +8144,7 @@ ALTER TABLE `jumi_termine` -- AUTO_INCREMENT für Tabelle `jumi_umfragen` -- ALTER TABLE `jumi_umfragen` - MODIFY `umid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + MODIFY `umid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -- -- AUTO_INCREMENT für Tabelle `jumi_umfragen_antworten` @@ -8062,6 +8152,24 @@ ALTER TABLE `jumi_umfragen` ALTER TABLE `jumi_umfragen_antworten` MODIFY `uaid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15; +-- +-- AUTO_INCREMENT für Tabelle `jumi_umfragen_ende` +-- +ALTER TABLE `jumi_umfragen_ende` + MODIFY `uenid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- AUTO_INCREMENT für Tabelle `jumi_umfragen_ergebnisse` +-- +ALTER TABLE `jumi_umfragen_ergebnisse` + MODIFY `ueid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=62; + +-- +-- AUTO_INCREMENT für Tabelle `jumi_umfragen_erg_freitext` +-- +ALTER TABLE `jumi_umfragen_erg_freitext` + MODIFY `uefid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18; + -- -- AUTO_INCREMENT für Tabelle `jumi_umfragen_fragen` -- diff --git a/survey/index.php b/survey/index.php index e426ff3..64c0046 100644 --- a/survey/index.php +++ b/survey/index.php @@ -31,13 +31,16 @@ if ($action == '') { $smarty->assign('umfrage_anzeigen', "1"); $smarty->assign('umfrage_umid', "$row_umid[umid]"); } - + if($GET['error'] == 1){ + echo "Umfrage wurde schon teilgenommen"; + } } if ($action == 'umfrage') { $db = dbconnect(); - + $session = session_id(); + $ip = $_SERVER["REMOTE_ADDR"]; // Datendefinition @@ -51,12 +54,21 @@ if ($action == 'umfrage') { $umid = $_SESSION['umid']; } ####################### Abfrage, ob Umfrage schon teilgenommen ############## + $result_ende = $db->query("SELECT count(*) Anz + FROM jumi_umfragen_ende + WHERE umid = $umid + AND ip = '$ip' + AND session = '$session'"); + $result_ende = $result_ende->fetch_array(); + if($result_ende['Anz'] > 0){ + echo ""; + exit; + } ####################### Speichern der Antworten ############################# if (isset($_POST['but_next'])) { $frage = $_POST['save']; - $session = session_id(); - $ip = $_SERVER["REMOTE_ADDR"]; + if (!isset($_POST['freitext'])) { $result_multiple = $db->query("SELECT multiple @@ -101,6 +113,9 @@ if ($action == 'umfrage') { if ($_POST['exit'] == '1') { $smarty->assign('umfrage_showende', "1"); + $sql1 = $db->query("INSERT INTO jumi_umfragen_ende (umid, ip, session, ende) + VALUES ('$umid', '$ip', '$session', '1') + "); } } @@ -217,8 +232,6 @@ if ($action == 'umfrage') { $result2 = $db->query($query2) or die("Cannot execute query2"); $ln2 = 0; while ($row2 = $result2->fetch_array()) { - $session = session_id(); - $ip = $_SERVER["REMOTE_ADDR"]; $result_antw = $db->query("SELECT count(*) Anz FROM jumi_umfragen_ergebnisse