Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

Webserver1/Ovningar/mySQL/

admin.php
fetch_car_things.php
fetch_kompisar.php
fetch_users.php
mysql1.php
mysql2.php
mysql3.php
mysql3_satt_att_sortera.php
mysql3car.php
mysql3garage.php
mysql3owner.php
welcome.php

admin.php

193 lines UTF-8 Windows (CRLF)
<?php
  session_start
();
?>

<!DOCTYPE html>
<html lang="sv">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Adminsida</title>
  <style>
    .hidden {
      display: none;
    }
    table {
      border: 1px solid black;
    }
  </style>
</head>
<body>
  <?php
  $SQLop 
= isset($_POST['SQLop']) ? $_POST['SQLop'] : "update";
  
$id = isset($_POST['id']) ? $_POST['id'] : null;
  
$username = isset($_POST['username']) ? $_POST['username'] : null;
  
$user_type = isset($_POST['user_type']) ? $_POST['user_type'] : null;

  
// username is used for queries, need separate variable for admin name
  
if (!isset($_SESSION['admin_username']) || $_SESSION['admin_username'] == "") {$_SESSION['admin_username'] = $_POST['username'];}

  include(
'../../incl/dbconnection.php');
  
/**
   * @var PDO $dbconn
   */
  
  
if (!is_null($id)) {
    try {
      
$sqlSelect "SELECT * FROM users WHERE id=?";

      
$sqlUpdate "UPDATE users
      SET username=?, user_type=?
      WHERE id=?"
;

      
$sqlDelete "DELETE FROM users
      WHERE id=?"
;

      if (
$SQLop == "update") {
        
$stmt $dbconn->prepare($sqlSelect);
        
$stmt->execute([$id]);

        
$row $stmt->fetch(PDO::FETCH_ASSOC);
        if (
$row) {
          
$username $username $username $row["username"];
          
$user_type $user_type $user_type $row["user_type"];
        }

        
$updateStmt $dbconn->prepare($sqlUpdate);
        
$data = array($username$user_type$id);
        
$updateStmt->execute($data);
        echo 
"Användarinformation för id $id uppdaterad!";
      } elseif (
$SQLop == "delete") {
        
$stmt $dbconn->prepare($sqlDelete);
        
$stmt->execute(array($id));
        echo 
"Användaren med id $id borttagen!";
      }
    } catch (
PDOException $e) {
      echo 
"<br>" $e->getMessage();
    }
    
$dbconn null;
  }
  unset(
$_POST);
  
?>
  <h1>
    <?php
      
if (isset($_SESSION['admin_username'])) {
        echo 
"Välkommen, " $_SESSION['admin_username'];
      }
      else {
        echo 
"Välkommen";
      }
    
?>
  </h1>
  <p>YEAH ADMIN LETS GO!!!!</p>
  <p>Utöver det händer inte mycket här</p>
  <h2>Adminpanel</h2>
  <form method="post" action="">
    <table>
      <tr>
        <td>Läge:</td>
        <td>
          <select name="SQLop" id="SQLop">
            <option value="update">Uppdatera</option>
            <option value="delete">Ta bort</option>
          </select>
        </td>
      </tr>
      <tr id="idRow">
        <td>id*:</td>
        <td><input type="number" id="idInput" name="id" required>
      </tr>
      <tr id="usernameRow">
        <td>
          <p>Användarnamn:</p>
        </td>
        <td><input type="text" name="username" size=40 maxlength=100>
        </td>
      </tr>
      <tr id="userTypeRow">
        <td>Användartyp:</td>
        <td><input type="text" name="user_type" size=40 maxlength=100 placeholder="Noob, Pro, Hacker eller Admin">
        </td>
      </tr>
      <tr id="infoRow">
        <td>* = obligatoriskt</td>
      </tr>
      <tr>
        <td><button type="submit" id="submitButton">Uppdatera</button></td>
        <td><button type="button" id="showButton">Visa tabell</button></td>
      </tr>
    </table>
  </form>
  <!-- This div will hold the table we fetch from the database -->
  <div id="tableContainer"></div>

  <script>
    let selector = document.getElementById("SQLop")

    rows = {
      "idRow": document.getElementById("idRow"),
      "usernameRow": document.getElementById("usernameRow"),
      "userTypeRow": document.getElementById("userTypeRow")
    }

    selector.addEventListener('change', (event) => {
    let value = event.target.value;
    switch (value) {
      case "update": {
        rows["idRow"].classList.remove("hidden")
        rows["usernameRow"].classList.remove("hidden")
        rows["userTypeRow"].classList.remove("hidden")

        submitButton.innerText = "Uppdatera"
        break
      }
      case "delete": {
        rows["idRow"].classList.remove("hidden")
        rows["usernameRow"].classList.add("hidden")
        rows["userTypeRow"].classList.add("hidden")

        submitButton.innerText = "Ta bort"
        break
      }
    }
  });

  // Show items in table by clicking button
  showButton.addEventListener("click", async () => {
    try {
      const response = await fetch('fetch_users.php');
      if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
      }
      const data = await response.json();

      const tableContainer = document.getElementById("tableContainer");

      if (data.length === 0) {
        tableContainer.innerHTML = `<p>Tabellen är tom.</p>`
      }

      console.log(data)

      // Build the table HTML
      let tableHTML = '<h2>Users</h2><table border="1"><thead><tr><th>ID</th><th>Username</th><th>Password</th><th>User_type</th><th>Last_login</th></tr></thead><tbody>';
      data.forEach(row => {
        tableHTML += `<tr>
                        <td>${row.id}</td>
                        <td>${row.username}</td>
                        <td>${row.password}</td>
                        <td>${row.user_type}</td>
                        <td>${row.last_login}</td>
                      </tr>`;
      });

      tableHTML += '</tbody></table>';
      tableContainer.innerHTML = tableHTML;
    }catch (error) {
      console.error('Kunde inte hämta tabelldata:', error);
      document.getElementById('tableContainer').innerHTML = '<p>Ett fel uppstod vid hämtning av data.</p>';
    }
  });
  </script>
</body>
</html>