Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //* Zeiterfassung 0.0010 */
- //* für Fragen rakondark@gmail.com */
- //* getestet */
- $ret = "testzeiten";
- $servername = "localhost";
- $username = "test";
- $password = "test";
- $problem = "";
- $erfolg = "";
- $pdo = "";
- // db pdo connect
- try {
- $pdo = new PDO("mysql:host=$servername;dbname=test", $username, $password);
- // set the PDO error mode to exception
- $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- }
- catch(PDOException $e) {
- $problem = "Connection failed: " . $e->getMessage();
- }
- // **************
- //
- // FUNKTIONEN
- //
- // **************
- function insertZeit(&$pdo,$tbl) {
- try {
- $statement = $pdo->prepare("INSERT INTO ".$tbl." (email,zeit,name) VALUES (:email, :zeit,:name)");
- $statement->bindValue(':email',$_POST['email']);
- $statement->bindValue(':zeit',$_POST['zeit']);
- $statement->bindValue(':name',$_POST['Name']);
- $result = $statement->execute();
- if ($result) {return true;} else {return false;}
- }
- catch(PDOException $e) {
- $problem = "cant insert: " . $e->getMessage();
- }
- }
- function checkVerfuegbarkeit(&$pdo,$tbl) {
- $zeitfrei = true;
- try {
- $statement = $pdo->prepare("SELECT zeit FROM ".$tbl." WHERE zeit = :zeit ");
- $statement->bindValue(':zeit',$_POST['zeit']);
- $statement->execute();
- $resultZeit = $statement->fetchAll(PDO::FETCH_ASSOC);
- if (isset($resultZeit[0]['zeit'])) {
- $zeitfrei = false;
- }
- }
- catch(PDOException $e) {
- $problem = "cant check zeit: " . $e->getMessage();
- }
- return $zeitfrei;
- }
- function vorgaben() {
- // Das Vorgaben Array
- $vorgabe = array();
- // Die Anzuzeigenden Optionen
- for ($stunde = 16 ; $stunde < 19 ; ++$stunde) {
- for ($minute = 0 ; $minute < 60 ; $minute= $minute +10) {
- // Formatiert das auch 00 bei Minuten stehen
- $vorgabe[] = sprintf('%02d:%02d',$stunde,$minute);
- }
- }
- // var_dump($vorgabe);
- return $vorgabe;
- }
- function aktuelle(&$pdo,$tbl) {
- // Akutelle Werte aus der Datenbank lesen
- $aktuell = array();
- try {
- $statement = $pdo->prepare("SELECT zeit FROM ".$tbl." ");
- $statement->execute();
- $resultZeit = $statement->fetchAll(PDO::FETCH_ASSOC);
- // ERgebnis Werte in array $aktuell sammeln
- foreach ($resultZeit as $eineZeit) {
- $aktuell[] = $eineZeit['zeit'];
- }
- }
- catch(PDOException $e) {
- $problem = "cant get Zeiten: " . $e->getMessage();
- }
- // var_dump($aktuell);
- return $aktuell;
- }
- function optionsfelder($vorgabe,$aktuell) {
- // $options für html Ausgabe
- $options ="" ;
- // Für jede gefundene Vorgabe prüfen ob es eine Aktuelle Zeit schon gibt
- foreach ($vorgabe as $einezeit) {
- $deaktivier ="";
- // Wenn Zeit in aktuell dann Option deaktivieren
- if (in_array($einezeit,$aktuell)) {
- $deaktivier = " disabled ";
- }
- $options .="<option ".$deaktivier.">";
- $options .= $einezeit;
- $options .="</option>";
- }
- return $options;
- }
- // **************
- //
- // PROGRAMM LOGIK
- //
- // **************
- if (isset($_GET['test'])) {
- if (checkVerfuegbarkeit($pdo,$ret)) {
- if (insertZeit($pdo,$ret)) {
- $erfolg = "Sie haben sich erfolgreich eingetragen";
- } else {
- $problem = "irgendwas ging beim eintragen schief, bitte versuchen sie es noch einmal";
- }
- } else {
- $problem ="Zeit ist schon Belegt ";
- }
- }
- $allezeiten = vorgaben();
- $aktuellezeiten = aktuelle($pdo,$ret);
- $optionshtml = optionsfelder($allezeiten,$aktuellezeiten);
- // vorherige POST fals vorhanden übernehmen
- $name = (isset($_POST['Name']))?$_POST['Name']:'';
- $email = (isset($_POST['email']))?$_POST['email']:'';
- // **************
- //
- // Webseite Ausgeben
- //
- // **************
- header("Content-Type: text/html; charset=utf-8");
- ?>
- <!DOCTYPE html>
- <html lang="de">
- <head>
- <meta charset="utf-8"/>
- </head>
- <body>
- <?php if ($problem != "") { ?>
- <h4>ERROR : <?php echo $problem;?> </h4>
- <?php } ?>
- <form action="?test=ok" name="eingaben" method="post" >
- Zeit : <select name="zeit" id="zeilen">
- <?php echo $optionshtml; ?>
- </select>
- <br>Name : <input name="Name" value="<?php echo $name; ?>" />
- <br>Email : <input name="email" value="<?php echo $email; ?>" />
- <br> <input name="ssubmit" type="submit" value="eintragen">
- </form>
- <?php if ($erfolg != "") { ?>
- <h4>EFOLG : <?php echo $erfolg;?> </h4>
- <?php } ?>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement