Advertisement
Guest User

Untitled

a guest
Jan 30th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.73 KB | None | 0 0
  1. <?php
  2. $rdbms = "mysql";
  3. $host = "localhost";
  4. $db = "taitaja";
  5. $user = "root";
  6. $pass = "";
  7. $charset = "utf8";
  8.  
  9. $opt = [
  10. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  11. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  12. PDO::ATTR_EMULATE_PREPARES => false,
  13. ];
  14. $connectionString = "$rdbms:host=$host;dbname=$db;charset=$charset";
  15.  
  16. $pdo = new PDO($connectionString, $user, $pass, $opt);
  17.  
  18.  
  19. $stmt = $pdo->query("Select id, numero, nimi From laji");
  20. $stmt->execute();
  21. while ($row = $stmt->fetch()) {
  22.  
  23. $lajit[] = $row;
  24. }
  25.  
  26. $etunimi = filter_input(INPUT_POST, 'etunimi', FILTER_SANITIZE_STRING);
  27. $sukunimi = filter_input(INPUT_POST, 'sukunimi', FILTER_SANITIZE_STRING);
  28. $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
  29. // seuraavassa on ENSIN annettava listan alkion filtteri(FILTER_DEFAULT jos ei muuta),'
  30. // sitten vasta FILTER_REQUIRE_ARRAY
  31. // siis: varmista, että listassa on numeroita, sitten varmista, että syöte on lista
  32. $laji = filter_input(INPUT_POST, 'laji', FILTER_SANITIZE_NUMBER_INT, FILTER_REQUIRE_ARRAY);
  33.  
  34. if (!$etunimi) {
  35. $errorMsg[] = "Syötä etunimesi";
  36. }
  37.  
  38. if (!$sukunimi) {
  39. $errorMsg[] = "Syötä sukunimesi";
  40. }
  41.  
  42. if (!$email || !preg_match("/^\S+@\S+$/", $email)) {
  43. $errorMsg[] = "Syötä oikea sähköpostiosoite";
  44. }
  45.  
  46. if (!$laji) {
  47. $errorMsg[] = "Valitse vähintään yksi laji";
  48. }
  49.  
  50. if (empty($errorMsg)) {
  51. // kirjoita tietokantaan
  52. $sql = "INSERT INTO kilpailija (etunimi, sukunimi, email) "
  53. . "Values(?, ?, ?)";
  54.  
  55. $statement = $pdo->prepare($sql);
  56. $statement->execute(array($etunimi, $sukunimi, $email));
  57.  
  58. // ota talteen uuden kilpailijan id
  59. $kilpailija_id = $pdo->lastInsertId();
  60.  
  61. // lisää ilmoittautumisen jokaiseen lajiin, jotka lomakkeelta saatiin
  62. foreach ($laji as $l) {
  63. $sql = "INSERT INTO ilmoittautuminen (kilpailija, laji)"
  64. . "VALUES(?, ?)";
  65. $statement = $pdo->prepare($sql);
  66. $statement->execute(array($kilpailija_id, $l));
  67. }
  68. $nimi = "$etunimi $sukunimi";
  69. $redirectTo = "Location: success.php?nimi=" . urlencode($nimi);
  70. header($redirectTo);
  71. }
  72. ?>
  73.  
  74.  
  75. <!DOCTYPE html>
  76. <html>
  77. <head>
  78. <meta charset="UTF-8">
  79. <title>Ilmoittaudu</title>
  80. <style>
  81. body {
  82. font-size: 62.5%;
  83. background-color: white;
  84. font-family: sans-serif;
  85. }
  86.  
  87. #wrapper {
  88.  
  89. }
  90.  
  91. #content {
  92. width: 50%;
  93. margin-left: auto;
  94. margin-right: auto;
  95. font-size: 1.8em;
  96. }
  97. ul {
  98. float: left;
  99. width: 40%;
  100.  
  101. }
  102.  
  103. ul li {
  104. box-sizing: border-box;
  105. float: left;
  106. width: 30%;
  107. list-style-type: none;
  108. font-size: 1.8em;
  109. margin-left: 10px;
  110. border: 1px solid white;
  111. border-radius: 5px;
  112. padding: 5px;
  113. background-color: white;
  114. text-align: center;
  115.  
  116. }
  117.  
  118. ul li a {
  119. text-decoration: none;
  120. color: black;
  121. }
  122.  
  123. ul li:hover {
  124. background-color: #64bff8;
  125. border: 1px solid #64bff8;
  126. }
  127.  
  128. #title {
  129. clear:both;
  130. text-align: center;
  131. margin-bottom: 50px;
  132. font-size: 3.5em;
  133. font-weight: bold;
  134. color: #555;
  135. padding-top: 2.5em;
  136. }
  137.  
  138. form {
  139. width: 50%;
  140. margin-left: auto;
  141. margin-right: auto;
  142. border: 1px #b5e1fb solid;
  143. border-radius: 5px;
  144. padding: 25px;
  145. background-color: #54b8f7;
  146. }
  147.  
  148. form label {
  149. display:inline-block;
  150. float: left;
  151. padding-top: 5px;
  152. text-align: right;
  153. width: 100px;
  154. }
  155.  
  156. form input {
  157. margin-top: 5px;
  158. margin-bottom: 5px;
  159. display:inline-block;
  160. vertical-align:middle;
  161. margin-left:20px
  162. }
  163.  
  164. #button1 {
  165. background-color: #139df4;
  166. border: 2px solid #139df4;
  167. width: 40%;
  168. height: 40px;
  169. margin-left: 30%;
  170. margin-right: 30%;
  171. margin-top: 30px;
  172. margin-bottom: 20px;
  173. border-radius: 5px;
  174. font-size: 1em;
  175. }
  176.  
  177. #button1:hover {
  178. background-color: #0a7fca;
  179. border: 2px solid #0a7fca;
  180. }
  181.  
  182.  
  183. #lajit {
  184. margin-top: 70px;
  185. }
  186.  
  187. #active {
  188. box-sizing: border-box;
  189. float: left;
  190. width: 30%;
  191. list-style-type: none;
  192. font-size: 1.8em;
  193. margin-left: 10px;
  194. border: 1px solid white;
  195. border-radius: 5px;
  196. padding: 5px;
  197. background-color: white;
  198. text-align: center;
  199. background-color: #64bff8;
  200. border: 1px solid #64bff8;
  201. }
  202.  
  203. nav {
  204.  
  205. }
  206.  
  207. footer {
  208. text-align: center;
  209. font-size: 1.3em;
  210. color: grey;
  211. margin-top: 3em;
  212. max-width: 100%;
  213. min-width: 100%;
  214. }
  215.  
  216. </style>
  217. </head>
  218. <body>
  219. <div id="wrapper">
  220. <nav>
  221. <ul>
  222. <li><a href="login.php">Kirjaudu</a></li>
  223. <li id="active"><a href="index.php">Ilmoittaudu</a></li>
  224. <li><a href="entries.php">Ilmoittautumiset</a></li>
  225. </ul>
  226. </nav>
  227.  
  228. <p id="title">Ilmoittaudu Taitaja-kilpailuun</p>
  229.  
  230. <div id="content">
  231.  
  232. <form method="POST" action="">
  233. <p>
  234. <label for="etunimi">Etunimi: </label>
  235. <input type="text" name="etunimi" required>
  236. </p>
  237. <p>
  238. <label for="sukunimi">Sukunimi: </label>
  239. <input type="text" name="sukunimi" required>
  240. </p>
  241. <p>
  242. <label for="email">Sähköposti: </label>
  243. <input type="email" name="email" required>
  244. </p>
  245. <p id="lajit">
  246. <?php
  247. echo "Laji";
  248. echo "<br>";
  249. foreach ($lajit as $laji) {
  250. extract($laji);
  251. echo "<input name=\"laji[]\" type=\"checkbox\" value=\"{$id}\">{$numero} {$nimi}</input><br>";
  252. }
  253. ?>
  254. </p>
  255. <button id="button1" name="submit" value="ilmoittaudu">Ilmoittaudu</button>
  256. </form>
  257. </div>
  258. <footer>
  259. Tuukka Hyvärinen / Suomen Liikemiesten Kauppaopisto - 2018
  260. </footer>
  261. </div>
  262. </body>
  263. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement