Dynamische Webseiten mit PHP und MySQL Prinzip: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Dynamische Webseiten mit PHP und MySQL – Prinzip = == Einführung == * Dynamische Webseiten generieren Inhalte zur Laufzeit, abhängig von Benutzereingabe…“)
 
(kein Unterschied)

Aktuelle Version vom 15. März 2025, 10:15 Uhr

Dynamische Webseiten mit PHP und MySQL – Prinzip

Einführung

  • Dynamische Webseiten generieren Inhalte zur Laufzeit, abhängig von Benutzereingaben oder Datenbankinformationen.
  • PHP als serverseitige Skriptsprache verarbeitet Anfragen und interagiert mit einer MySQL/MariaDB-Datenbank.
  • Im Gegensatz zu statischen HTML-Seiten können Inhalte aktualisiert, gefiltert und personalisiert werden.

Architektur einer dynamischen Webseite

  • Ein typischer Aufbau besteht aus drei Hauptkomponenten:
    • Client – Webbrowser sendet Anfragen an den Server.
    • Webserver – Nginx oder Apache verarbeitet PHP-Skripte.
    • Datenbank – MySQL/MariaDB speichert und liefert Inhalte.
  • Ablauf einer Anfrage:
    • Nutzer ruft eine URL auf → Anfrage wird an den Webserver gesendet.
    • Webserver führt das PHP-Skript aus → PHP verarbeitet Eingaben.
    • PHP stellt eine Verbindung zur MySQL-Datenbank her und holt Daten.
    • PHP generiert HTML-Code basierend auf den Datenbankinhalten.
    • Der HTML-Code wird an den Browser gesendet und angezeigt.

PHP mit MySQL verbinden

  • Verbindung zur Datenbank herstellen:
<?php
$servername = "localhost";
$username = "root";
$password = "passwort";
$dbname = "meinedatenbank";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Verbindung fehlgeschlagen: " . $conn->connect_error);
}
echo "Erfolgreich verbunden";
?>

Datenbankabfragen mit PHP

  • Daten in die Datenbank einfügen:
<?php
$sql = "INSERT INTO nutzer (name, email) VALUES ('Max', 'max@example.com')";
if ($conn->query($sql) === TRUE) {
    echo "Neuer Datensatz erfolgreich hinzugefügt";
} else {
    echo "Fehler: " . $conn->error;
}
?>
  • Daten aus der Datenbank abrufen:
<?php
$sql = "SELECT id, name, email FROM nutzer";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"] . "<br>";
    }
} else {
    echo "Keine Ergebnisse";
}
?>

Formulare und Benutzereingaben

  • PHP ermöglicht Interaktion durch Formulare.
<form method="post" action="verarbeitung.php">
    Name: <input type="text" name="name"><br>
    Email: <input type="email" name="email"><br>
    <input type="submit" value="Absenden">
</form>
  • Verarbeiten der Eingaben in PHP:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST["name"];
    $email = $_POST["email"];
    
    $sql = "INSERT INTO nutzer (name, email) VALUES ('$name', '$email')";
    if ($conn->query($sql) === TRUE) {
        echo "Daten erfolgreich gespeichert";
    } else {
        echo "Fehler: " . $conn->error;
    }
}
?>

Sicherheitsaspekte

  • SQL-Injections verhindern:
<?php
$stmt = $conn->prepare("INSERT INTO nutzer (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
?>
  • Cross-Site Scripting (XSS) vermeiden:
<?php
echo htmlspecialchars($row["name"]);
?>

Fazit

  • Dynamische Webseiten ermöglichen interaktive und datenbankgestützte Anwendungen.
  • PHP verarbeitet Benutzeranfragen und stellt Daten aus MySQL bereit.
  • Sicherheitsmaßnahmen wie Prepared Statements und Validierungen sind essenziell.
  • Durch Kombination mit CSS und JavaScript können erweiterte Funktionen umgesetzt werden.