Hallo zusammen,
kann mir jemand sagen woher die Daten der Variablen $first und $last ausgelesen werden.
[COLOR=#000000][COLOR=#007700]function [/COLOR][COLOR=#0000BB]renderForm[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$first [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$last [/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$error [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$id [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$last2 [/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700]) {[/COLOR][/COLOR]
Ich möchte im Eingabeformular eine weiteres Feld einfügen komme aber nicht drauf woher die Daten aus den Variablen stammen.
Vielen Dank für Eure Hilfe.
kann mir jemand sagen woher die Daten der Variablen $first und $last ausgelesen werden.
[COLOR=#000000][COLOR=#007700]function [/COLOR][COLOR=#0000BB]renderForm[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$first [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$last [/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$error [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$id [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$last2 [/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700]) {[/COLOR][/COLOR]
Ich möchte im Eingabeformular eine weiteres Feld einfügen komme aber nicht drauf woher die Daten aus den Variablen stammen.
Vielen Dank für Eure Hilfe.
PHP-Code:
//
<?php
/* Datei: records.php
Aufgabe: Neuen Datensatz erstellen bzw. vorhandenen Datensatz bearbeiten.
*/
// Verbindung zur Datenbank herstellen.
include("connect-db.php");
// Funktion zur Bereinigung der Eingabedaten des Benutzers.
function clean_data($data) {
// Entfernt alle Leerzeichen am Anfang und Ende einer Zeichenfolge.
$data = trim($data);
// Entfernt umgekehrte Schrägstriche aus einer Zeichenfolge.
$data = stripslashes($data);
// Wandelt Sonderzeichen in HTML-Codes um.
$data = htmlspecialchars($data);
// Entfernt Anweisungen in spitzen Klammern (sog. HTML-Tags) aus einer Zeichenfolge.
$data = strip_tags($data);
return $data;
}
// HTML-Formular zum Hinzufügen und Ändern von Datensätzen
function renderForm($first = '', $last ='', $error = '', $id = '', $last2 ='') {
?>
<!DOCTYPE html>
<html lang = "de">
<head>
<meta charset="utf-8" />
<title>
<?php
if ($id != '') {
echo "Datensatz ändern";
} else {
echo "Datensatz hinzufügen";
}
?>
</title>
<meta Name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="styles.css" media="all" />
</head>
<body>
<h1>
<?php
if ($id != '') {
echo "Datensatz ändern";
} else {
echo "Datensatz hinzufügen";
}
?>
</h1>
<?php
if ($error != '') {
echo "<div style='padding:4px; border:1px solid red; color:red'>"
. $error . "</div>";
}
?>
<form action="" method="post">
<div>
<?php if ($id != '') { ?>
<input type="hidden" Name="id" value="<?php echo $id; ?>" />
<p>ID: <?php echo $id; ?></p>
<?php } ?>
</div>
<div>
<label for="Vorname"><strong>Vorname:</strong>
<span style="color:red">* </span></label>
<input type="text" id="Vorname" Name="Vorname" size="30"
value="<?php echo $first; ?>" required="required" />
</div>
<br>
<div>
<label for="Name"><strong>Nachname:</strong>
<span style="color:red">*</span></label>
<input type="text" id="Name" Name="Name" size="30"
value="<?php echo $last; ?>" required="required"/>
</div>
<br>
<div>
<label for="Strasse"><strong>Strasse:</strong>
<span style="color:red">*</span></label>
<input type="text" id="Strasse" Name="Strasse" size="30"
value="<?php echo $last2; ?>" required="required"/>
</div>
<br>
<div>
<label for="PLZ"><strong>PLZ:</strong>
<span style="color:red">*</span></label>
<input type="text" id="PLZ" Name="PLZ" size="30"
value="<?php echo $last; ?>" required="required"/>
</div>
<p><span style="color:red">*</span> erforderlich</p>
<input type="submit" Name="submit" class="button" value="Abschicken" />
</form>
</body>
</html>
<?php }
/* DATENSATZ ÄNDERN: */
if (isset($_GET['id'])) {
/* Wenn im Formular die Schaltfläche 'submit' gedrückt wird,
werden die Felder des Formulars ausgewertet. */
if (isset($_POST['submit'])) {
// Gültigkeit der Variablen 'id' prüfen.
if (is_numeric($_POST['id'])) {
// Die Werte der Felder des Formulars auslesen.
$id = $_POST['id'];
$Vorname = htmlentities($_POST['Vorname'], ENT_QUOTES);
$Name = htmlentities($_POST['Name'], ENT_QUOTES);
$Personalnummer = htmlentities($_POST['Personalnummer'], ENT_QUOTES);
$Strasse = htmlentities($_POST['Strasse'], ENT_QUOTES);
$PLZ = htmlentities($_POST['PLZ'], ENT_QUOTES);
$Ort = htmlentities($_POST['Ort'], ENT_QUOTES);
$Telefon = htmlentities($_POST['Telefon'], ENT_QUOTES);
$Mobil = htmlentities($_POST['Mobil'], ENT_QUOTES);
$Dienststelle = htmlentities($_POST['Dienststelle'], ENT_QUOTES);
$Fuehrerschein = htmlentities($_POST['Fuehrerschein'], ENT_QUOTES);
$Eintritt = htmlentities($_POST['Eintritt'], ENT_QUOTES);
$Austritt = htmlentities($_POST['Austritt'], ENT_QUOTES);
$Vertrag = htmlentities($_POST['Vertrag'], ENT_QUOTES);
$Qualifikation = htmlentities($_POST['Qualifikation'], ENT_QUOTES);
$Bemerkung = htmlentities($_POST['Bemerkung'], ENT_QUOTES);
$Status = htmlentities($_POST['Status'], ENT_QUOTES);
$Urlaubsanspruch = htmlentities($_POST['Urlaubsanspruch'], ENT_QUOTES);
// Prüfen, ob die Pflichtfelder für Vor- und Nachname gefüllt sind.
if ($Vorname == '' || $Name == '') {
// Wenn beide leer sind, eine Fehlermeldung ausgeben und das Formular anzeigen.
$error = 'FEHLER: Bitte Vor- und Nachnamen erfassen!';
renderForm($Vorname, $Name, $error, $id, $Personalnummer,);
} else {
// Wenn die Daten im Formular OK sind, die Datenbanktabelle 'mitarbeiter' aktualisieren.
$sql = "UPDATE mitarbeiter SET Vorname = ?, Name = ?, Personalnummer = ?, Strasse = ?, PLZ = ?, Ort = ?, Telefon = ?, Mobil = ?, Dienststelle = ?, Fuehrerschein = ?, Eintritt = ?, Austritt = ?, Vertrag = ?, Qualifikation = ?, Bemerkung = ?, Status = ?, Urlaubsanspruch = ? WHERE id=?";
if ($stmt = $conn->prepare($sql)) {
$stmt->bind_param("ssi", $Vorname, $Name, $id);
$stmt->execute();
$stmt->close();
} else {
echo "FEHLER: Die UPDATE-Anweisung konnte nicht vorbereitet werden.";
}
}
// Den Benutzer nach der Aktualisierung umleiten.
header("Location: view.php");
} else {
// Wenn der Inhalt der Variable 'id' ungültig ist, eine Fehlermeldung ausgeben.
echo "FEHLER: Die Variable 'id' ist nicht nummerisch!";
}
/* Wenn im Formular die Schaltfläche 'submit' noch nicht betätigt wurde,
die Daten aus der Datenbanktabelle 'mitarbeiter' entnehmen und im Formular anzeigen: */
} else {
// Prüfen, ob der Wert der Variablen 'id' nummerisch und größer als null ist.
if (is_numeric($_GET['id']) && $_GET['id'] > 0) {
$id = $_GET['id'];
// Bestimmten Datensatz aus der Datenbanktabelle 'mitarbeiter' auswählen und anzeigen.
$sql = "SELECT id, vorname, name FROM mitarbeiter WHERE id=?";
if($stmt = $conn->prepare($sql)) {
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($id, $Vorname, $Name);
$stmt->fetch();
// HTML-Formular anzeigen
renderForm($Vorname, $Name, NULL, $id);
$stmt->close();
} else {
echo "FEHLER: Die SELECT-Anweisung konnte nicht vorbereitet werden.";
}
} else {
/* Wenn der Wert der Variablen 'id' ungültig ist,
den Benutzer zur Seite view.php umleiten. */
header("Location: view.php");
}
}
} else {
/* Die Variable 'id' ist nicht gesetzt, folglich:
NEUER DATENSATZ: */
if (isset($_POST['submit'])) {
/* Wenn im Formular die Schaltfläche 'submit' gedrückt wird,
muss das Formular ausgewertet werden. */
// Die Eingabedaten mit der Funktion 'clean_data' bereinigen.
$Vorname = clean_data($Vorname);
$Name = clean_data($Name);
// Eingabedaten aufbereiten.
$Vorname = htmlentities($_POST['Vorname'], ENT_QUOTES);
$Name = htmlentities($_POST['Name'], ENT_QUOTES);
/* Prüfen, ob im Formular die Pflichtfelder für Vor- und Nachname
gefüllt sind, sonst eine Fehlermeldung ausgeben
und das HTML-Formular anzeigen. */
if ($Vorname == '' || $Name == '') {
$error = 'FEHLER: Bitte alle Pflichtfelder ausfüllen!';
renderForm($Vorname, $Name, $error);
} else {
/* Einen neuen Datensatz in die Datenbanktabelle 'mitarbeiter' einfügen,
oder eine Fehlermeldung ausgeben.*/
$sql = "INSERT INTO mitarbeiter (Vorname, Name) VALUES (?, ?)";
if ($stmt = $conn->prepare($sql)) {
$stmt->bind_param("ss", $Vorname, $Name);
$stmt->execute();
$stmt->close();
echo "Einen neuen Datensatz erfolgreich erstellt.";
} else {
echo "FEHLER: Die INSERT-Anweisung konnte nicht vorbereitet werden.";
}
// Den Benutzer umleiten.
header("Location: view.php");
}
} else {
// Wenn das HTML-Formular noch NICHT abgesandt wurde, dieses anzeigen.
renderForm();
}
}
// Die Verbindung zur Datenbank beenden.
mysqli_close($conn);
?>
Kommentar