Kooperative Webentwicklung II (PHP und SQL)

Diese Einheit wurde die kooperative Bearbeitung von IT-Projekten weiter vertieft und dabei in Erfahrung gebracht, wie sich die kollaborative Arbeit beispielsweise auch beim Datenbanklayout eignet. Dafür wurde zuerst ein Pull von GitHub gemacht, um den aktuellen Datenstand des eigenen Projekts nochmals abzurufen. Im Anschluss daran wurde mittels phpMyAdmin eine neue Benutzerdatenbank gebaut, in der zwei Testbenutzer eingefügt und die Passwörter bereits mit SHA1 verschlüsselt wurden. Hierbei ging es vor allem um das korrekte Datenbanklayout sowie um die Wahl der richtigen Datenfelder und Struktureinstellungen. Daraufhin wurde via Live Share ein gemeinsames Verbindungsskript programmiert, welches auf die eigene lokale Datenbank zugreift und somit eine Benutzerabfrage überhaupt erst möglich macht. Um das Anmeldeverfahren innerhalb von PHP und MySQL nochmals zu wiederholen, wurde anschließend ein gemeinsames Login-Skript geschrieben, bei dem die Benutzereingaben des Formulars in Variablen gespeichert und abschließend mittels SQL-Query abgefragt und abgeglichen wurden. Damit auch wirklich alle Webseiten problemlos auf den virtuellen Webservern laufen, wurde noch ein kurzes Code-Troubleshooting durchgeführt um gemeinsam den letzten Bugs auf die Schliche zu kommen. Abschließend wurde die Seite noch auf BPlaced.net mittels eines FTP-Clients hochgeladen und die Datenbank vom lokalen Host exportiert, um die Homepage schlussendlich im Internet freizugeben.


Kompetenzen

  1. Ich verstehe wie Webserver und Datenbankserver im Hintergrund einer Webseite arbeiten und kenne virtuelle Applikationen.
  2. Ich weiß wofür phpMyAdmin verwendet wird und kenne mich mit dessen Oberfläche aus.
  3. Ich kann SQL-Tabellenstrukturen lesen und kenne alle Datentypen sowie deren Eigenschaften.
  4. Ich verstehe alle SQL-Befehle (z.B. Select, From, Where, Limit usw.) und weiß wie diese zu benutzen sind.
  5. Ich verstehe wie man PHP-Funktionen aufrufen kann und kann mir über Manual-Pages der PHP-Dokumentation weiterhelfen.
  6. Ich kann kleinere PHP-Skripts erstellen und die Ergebnisse dieser mit Hilfe des echo Befehls ausgeben lassen.
  7. Ich kann Kontrollstrukturen wie Verzweigungen oder Schleifen in PHP programmieren und verstehe das Prinzip hinter ihnen.
  8. Ich verstehe wie man ein Verbindungsskript in PHP schreibt und welche Elemente dafür benötigt werden.


Vertiefung

dbconnect.php
<?php
  $db_host = 'localhost';
  $db_username = 'root';
  $db_password = 'root';
  $db_name = 'testdb';
 
  $dbconnect = new mysqli($db_host, $db_username, $db_password, $db_name);
  mysqli_set_charset($dbconnect, 'utf8');
 
  if (mysqli_connect_errno())
  {
    echo 'Verbindungsfehler zur MySQL Datenbank - Fehlercode: ' . mysqli_connect_error();
  }
?>
usercheck.php
<?php
  session_start();
  require_once('dbconnect.php');
 
  $username = $_POST['username'];
  $password = sha1($_POST['pwd']);
 
  $usercheck = "SELECT * FROM users WHERE username='$username'";
  $dbconnect->real_escape_string($usercheck);
  $query = mysqli_query($dbconnect, $usercheck);
  $fetch = mysqli_fetch_object($query);
 
  if($fetch->username == $username && $fetch->password == $password)
  {
    header('Location: backend.php');
  }
  else
  {
    echo '<script> alert("Zugriff verweigert! Benutzername und/oder Passwort falsch."); window.location.href="login.php";</script>';
  }
?>


Unterrichtsmaterialien