Een eenvoudige reservatie tracker in PHP en een CSV-bestand

Iets wat ik een tijdje geleden gemaakt had. Een eenvoudige reservatie tracker.

demo: http://www.parhasard.be/tutorials/demo/track-reservations/index.php

HTML

Het eerste deel is een formulier.

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST" id="reservations">
  <div>
    <label for="charactername">Select your name, plz</label>
    <br>
    <select name="charactername">
      <option value=""></option>
      <option value="Name1">Name 1</option>
      <option value="Name2">Name 2</option>
      <option value="Name3">Name 3</option>
    </select> 
   </div> 
   <br> 
   <div>
     <label for="howmanytickets">How many tickets did you sell?</label>
     <br>
     <input type="text" name="howmanytickets"> 
   </div>
   <input type="submit" name="submit">
 </form>

Het 2de deel is een tabel dat de voortgang visualiseert.

<table width="600" border="0" cellspacing="0" cellpadding="0"> 
  <tr>
     <td colspan="2"><h2>Is it party time already?</h2>Maximum # of tickets: 1200<br><em>Total # sold tickets: <?php echo $CountAllSoldTickets; ?></em></td>
  </tr>
  <tr>
    <td width="<?php echo $CountAllSoldTickets / 2; ?>" bgcolor="#FF0000" height="50"></td>
    <td width="<?php echo 600-($CountAllSoldTickets / 2); ?>" bgcolor="#336600"></td>
  </tr>
</table>

PHP

Een klein beetje security 😉

// Strip unnecessary characters
// Remove backslashes
// Convert special characters to HTML entities
 function test_input($data) {
 $data = trim($data);
 $data = stripslashes($data);
 $data = htmlspecialchars($data);
 return $data;
 }
// Define variables and set to empty values
 $character_name = $how_many_tickets = "";

En dan nu de magie:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Sanitize form values 
 $character_name = test_input($_POST["charactername"]);
 $how_many_tickets = test_input($_POST["howmanytickets"]);
// Write form values to a CSV-file 
 $fp = fopen('sold_tickets.csv', 'a');
 fwrite($fp, time().";");
 fwrite($fp, $character_name.";");
 fwrite($fp, $how_many_tickets);
 fwrite($fp, PHP_EOL);
 fclose($fp);
 }
// Read CSV-file into an array
 $GetCSV = 'sold_tickets.csv';

 if (($handle = fopen($GetCSV, "r")) !== FALSE) {
 while (($line = fgetcsv($handle, 1000, ";")) !== FALSE) {
 $ArrayCSV[] = $line;
 }
 fclose($handle);
 }
// Make the sum of all sold tickets 
 if (!empty($ArrayCSV)) { 
 foreach ($ArrayCSV as $value) {
 $GetAllSoldTickets[] = $value[2];
 } 
 $CountAllSoldTickets = array_sum($GetAllSoldTickets); 
 }

 

 

Par Hasard

Ik ben 30+, nader de 40 zelfs, met een gezonde internet verslaving. Gelukkig getrouwd en fiere vader van 2 dochters. Wil een kat in huis, maar mag niet. 🙁

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *