Advertisement
DarkRakon

Zeiterfassung by RD 0.0010

Oct 6th, 2016
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.29 KB | None | 0 0
  1. <?php
  2. //* Zeiterfassung 0.0010 */
  3. //* für Fragen rakondark@gmail.com  */
  4. //* getestet */
  5.  
  6. $ret = "testzeiten";
  7. $servername = "localhost";
  8. $username = "test";
  9. $password = "test";
  10.  
  11.  
  12. $problem = "";
  13. $erfolg = "";
  14. $pdo = "";
  15. // db pdo connect
  16. try {
  17.     $pdo = new PDO("mysql:host=$servername;dbname=test", $username, $password);
  18.     // set the PDO error mode to exception
  19.     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  20. }
  21. catch(PDOException $e) {
  22.     $problem = "Connection failed: " . $e->getMessage();
  23. }
  24.  
  25.  
  26. // **************
  27. //
  28. // FUNKTIONEN
  29. //
  30. // **************
  31.  
  32. function insertZeit(&$pdo,$tbl) {
  33.     try {
  34.         $statement = $pdo->prepare("INSERT INTO ".$tbl." (email,zeit,name) VALUES (:email, :zeit,:name)");
  35.         $statement->bindValue(':email',$_POST['email']);
  36.         $statement->bindValue(':zeit',$_POST['zeit']);
  37.         $statement->bindValue(':name',$_POST['Name']);
  38.         $result = $statement->execute();
  39.         if ($result) {return true;} else {return false;}
  40.     }
  41.     catch(PDOException $e) {
  42.         $problem = "cant insert: " . $e->getMessage();
  43.     }
  44. }
  45.  
  46. function checkVerfuegbarkeit(&$pdo,$tbl) {
  47.     $zeitfrei = true;
  48.     try {
  49.         $statement = $pdo->prepare("SELECT zeit FROM ".$tbl." WHERE zeit = :zeit ");
  50.         $statement->bindValue(':zeit',$_POST['zeit']);
  51.         $statement->execute();
  52.         $resultZeit = $statement->fetchAll(PDO::FETCH_ASSOC);  
  53.         if (isset($resultZeit[0]['zeit'])) {
  54.             $zeitfrei = false;
  55.         }
  56.     }
  57.     catch(PDOException $e) {
  58.         $problem = "cant check zeit: " . $e->getMessage();
  59.     }
  60.     return $zeitfrei;
  61. }
  62.  
  63.  
  64. function vorgaben() {
  65.     // Das Vorgaben Array
  66.     $vorgabe = array();
  67.     // Die Anzuzeigenden Optionen
  68.     for ($stunde = 16 ; $stunde < 19 ; ++$stunde) {
  69.         for ($minute = 0 ; $minute < 60 ; $minute= $minute +10) {
  70.             // Formatiert das auch 00 bei Minuten stehen
  71.             $vorgabe[] = sprintf('%02d:%02d',$stunde,$minute);
  72.         }
  73.     }
  74.     // var_dump($vorgabe);
  75.     return $vorgabe;
  76. }
  77.  
  78. function aktuelle(&$pdo,$tbl) {
  79.     // Akutelle Werte aus der Datenbank lesen
  80.     $aktuell = array();
  81.     try {
  82.         $statement = $pdo->prepare("SELECT zeit FROM ".$tbl." ");
  83.         $statement->execute();
  84.         $resultZeit = $statement->fetchAll(PDO::FETCH_ASSOC);
  85.         // ERgebnis Werte in array $aktuell sammeln
  86.         foreach ($resultZeit as $eineZeit) {
  87.             $aktuell[] = $eineZeit['zeit'];
  88.         }
  89.     }
  90.     catch(PDOException $e) {
  91.         $problem = "cant get Zeiten: " . $e->getMessage();
  92.     }
  93.     // var_dump($aktuell);
  94.     return $aktuell;
  95. }
  96.  
  97. function optionsfelder($vorgabe,$aktuell) {
  98.     // $options für html Ausgabe
  99.     $options ="" ;
  100.  
  101.     // Für jede gefundene Vorgabe prüfen ob es eine Aktuelle Zeit schon gibt
  102.     foreach ($vorgabe as $einezeit) {
  103.         $deaktivier ="";
  104.         // Wenn Zeit in aktuell dann Option deaktivieren
  105.         if (in_array($einezeit,$aktuell)) {
  106.             $deaktivier = " disabled ";
  107.         }
  108.         $options .="<option ".$deaktivier.">";
  109.         $options .= $einezeit;
  110.         $options .="</option>";
  111.     }
  112.     return $options;
  113. }
  114.  
  115.  
  116. // **************
  117. //
  118. // PROGRAMM LOGIK
  119. //
  120. // **************
  121.  
  122.  
  123. if (isset($_GET['test'])) {
  124.     if (checkVerfuegbarkeit($pdo,$ret)) {
  125.         if (insertZeit($pdo,$ret)) {
  126.             $erfolg = "Sie haben sich erfolgreich eingetragen";
  127.         } else {
  128.             $problem = "irgendwas ging beim eintragen schief, bitte versuchen sie es noch einmal";
  129.         }
  130.     } else {
  131.         $problem ="Zeit ist schon Belegt ";
  132.     }
  133. }
  134. $allezeiten = vorgaben();
  135. $aktuellezeiten = aktuelle($pdo,$ret);
  136. $optionshtml = optionsfelder($allezeiten,$aktuellezeiten);
  137.  
  138.  
  139. // vorherige POST fals vorhanden übernehmen
  140. $name = (isset($_POST['Name']))?$_POST['Name']:'';
  141. $email = (isset($_POST['email']))?$_POST['email']:'';
  142.  
  143.  
  144. // **************
  145. //
  146. // Webseite Ausgeben
  147. //
  148. // **************
  149.  
  150. header("Content-Type: text/html; charset=utf-8");
  151. ?>
  152. <!DOCTYPE html>
  153. <html lang="de">
  154.     <head>
  155.         <meta charset="utf-8"/>
  156.     </head>
  157.  
  158.     <body>
  159.         <?php if ($problem != "") { ?>
  160.         <h4>ERROR : <?php echo $problem;?> </h4>
  161.         <?php } ?>
  162.         <form action="?test=ok" name="eingaben" method="post" >
  163.             Zeit : <select name="zeit" id="zeilen">
  164.                 <?php echo $optionshtml; ?>
  165.             </select>
  166.             <br>Name : <input name="Name" value="<?php echo $name; ?>" />
  167.             <br>Email : <input name="email" value="<?php echo $email; ?>" />
  168.             <br> <input name="ssubmit" type="submit" value="eintragen">
  169.         </form>
  170.         <?php if ($erfolg != "") { ?>
  171.         <h4>EFOLG : <?php echo $erfolg;?> </h4>
  172.         <?php } ?>
  173.     </body>
  174. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement