# Importiert die Flask-Bibliothek für Webanwendungen und die MySQL-Connector-Bibliothek zur Datenbankanbindung.
from flask import Flask, render_template, request
import mysql.connector

# Erstellt eine Flask-App-Instanz.
app = Flask(__name__)

# Definiert die Startseite der Anwendung.
@app.route('/')
def hello():   
    # Lädt und zeigt die HTML-Datei "index.html" an.
    return render_template("index.html")

# Definiert die Route für die Registrierung ("signUp"), die sowohl POST- als auch GET-Methoden unterstützt.
@app.route('/signUp',methods=['POST','GET'])
def sign():
    # Liest Eingabewerte aus dem HTTP-Request-Formular (POST-Methoden).
    vorname = request.form['firstname']
    nachname = request.form['lastname']
    mail = request.form['mail']
    msg = request.form['message']
    
    #Werte, die über URL-Parameter (GET) übergeben werden
    #vorname = request.args.get('firstname')
    #nachname = request.args.get('lastname')
    #mail = request.args.get('mail')
    #msg = request.args.get('message')

    try:
        # Versucht, eine Verbindung zur MySQL-Datenbank herzustellen.
        connection = mysql.connector.connect(
            host="localhost", 
            user="root", 
            passwd=""
        )
    except:
        # Gibt eine Fehlermeldung aus, falls die Verbindung fehlschlägt.
        print("Keine Verbindung zum Server")
        return "Fehler: Verbindung zur Datenbank konnte nicht hergestellt werden."

    # Erstellt einen Cursor zum Ausführen von SQL-Befehlen.
    cursor = connection.cursor()

    # Wählt die Datenbank "user".
    cursor.execute("USE user")
    connection.commit()

    # Führt einen INSERT-Befehl aus, um die Benutzerdaten in die Tabelle "tbl_user" einzufügen.
    cursor.execute("INSERT INTO tbl_user VALUES(NULL,%s,%s,%s,%s);",[vorname,nachname,mail,msg])
    connection.commit()

    # Zeigt die HTML-Seite "index2.html" an und übergibt den Nachnamen des Nutzers als Variable.
    return render_template("index2.html", nachname=nachname)

# Startet die Flask-Anwendung auf Port 5002.
if __name__ == "__main__":
    app.run(port=5002)
