hinzufügen Login und Registrierung

in dem Commit wurden die Formularfunktionen für Regitrierung und Login hinzugefügt.
Ebenfalls die Prüfung auf Plausabilität.
Dies wurde duch Objektorientierte Programierung hinzugefügt.

Somit geht das Projekt in Version 2
This commit is contained in:
2026-01-03 17:41:14 +00:00
parent 4d6f96d546
commit 0c41aef11c
7 changed files with 248 additions and 9 deletions
+1
View File
@@ -3,3 +3,4 @@
### Version 1 ### Version 1
hier wird das SGD Projekt hochgeladen und verwaltet hier wird das SGD Projekt hochgeladen und verwaltet
+1 -1
View File
@@ -17,7 +17,7 @@ if (0 > version_compare(PHP_VERSION, '7')) {
<title>Image2Food - Sag mir was ich daraus kochen kann - Index</title> <title>Image2Food - Sag mir was ich daraus kochen kann - Index</title>
</head> </head>
<body> <body>
<div id="nav"> <?php include("nav.php") ?></div> <div id="nav"> <?php require("nav.php") ?></div>
<div id="content"> <div id="content">
<h1>Image2Food - Sag mir was ich daraus kochen kann</h1> <h1>Image2Food - Sag mir was ich daraus kochen kann</h1>
<h2>Das soziale, multimediale Netzwerk für Kochideen</h2> <h2>Das soziale, multimediale Netzwerk für Kochideen</h2>
+13
View File
@@ -0,0 +1,13 @@
<form action="login.php" method="post">
<label class="reg_label">Userid</label>
<span class="pflichtfeld"> * </span>
<input name="userid" maxlength="20"/>
<span class="fehlermeldung"></span>
<br>
<label class="reg_label">Passwort</label>
<span class="pflichtfeld"> * </span>
<input name="pw" type="password" maxlength="50"/>
<span class="fehlermeldung"></span>
<br>
<input type="submit">
</form>
+48 -3
View File
@@ -8,7 +8,6 @@ if (0 > version_compare(PHP_VERSION, '7')) {
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="de"> <html lang="de">
<head> <head>
@@ -17,17 +16,63 @@ if (0 > version_compare(PHP_VERSION, '7')) {
<title>Image2Food - Sag mir was ich daraus kochen kann - login</title> <title>Image2Food - Sag mir was ich daraus kochen kann - login</title>
</head> </head>
<body> <body>
<div id="nav"> <?php include("nav.php") ?></div> <div id="nav">
<?php
require("nav.php");
require("plausi.inc.php")
?>
</div>
<div id="content"> <div id="content">
<h1>Login</h1> <h1>Login</h1>
<?php <?php
require("login.inc.php");
/** /**
* Das soziale Netzwerk für Kochideen * Das soziale Netzwerk für Kochideen
* die Loginseite * die Loginseite
*/ */
class Login { class Login {
}
public function _login(){
if ($this->plausiblisieren()) {
$this->anmelden_db();
}
}
/**
* Plausiblisierungsmethode
* Testet die einzelnen Eingabefelder des Registrierungsformulars gegenüber
* - den Notwendigkeiten in der MySQL-Datenbank und
* - weiteren Anforderungen, die die Logik des Netzwerks fordert
* Die Eingaben stehen im globalen Array $_POST zur Verfügung
* @return true, wenn die Plausiblisierung keine Fehler ergab - sonst false
*/
private function plausiblisieren() {
// Fehlervariable
$anmelden = 0;
$p = new Plausi();
$anmelden += $p->nutzerdatentest($_POST['userid']);
$anmelden += $p->nutzerdatentest($_POST['pw']);
// Testausgaben für den derzeitigen Stand des Projekts
echo "Die Eingaben: <hr>";
print_r($_POST);
echo "<br>Fehleranzahl: " . $anmelden . "<hr>";
if ($anmelden == 0) return true;
else return false;
}
private function anmelden_db() {
}
}
$regobj = new Login();
if (sizeof($_POST) > 0) {
$regobj->_login();
}
?> ?>
</div> </div>
+64
View File
@@ -0,0 +1,64 @@
<?php
/**
* Klasse mit Testmethoden, on die offensichtlichen Regeln für das Netzwerk erfüllt sind
*/
class Plausi {
public function namentest($wert) {
if (preg_match("/^\w{2,30}$/", $wert)) {
return 0;
}else {
return 1;
}
}
public function emailtest($wert) {
$fehler = 0;
//Test der notwendige E-Mail-Struktur
if (!preg_match("/\w+@\w+\.\w{2}/", $wert)) {
$fehler++;
}
//nichtalphanumerische Zeichen - ausser dem Zeichen @
if (preg_match("/\W/", $wert, $ergarray)) {
if ($ergarray[0] != "@") {
$fehler++;
}
}
return $fehler;
}
public function nutzerdatentest($wert) {
$fehler = 0;
if (!preg_match("/^\w{8,20}$/", $wert)) {
$fehler++;
}
// Prüfung keine Zahl
if (!preg_match("/\d/", $wert)) {
$fehler++;
}
//Kein Großbuchstabe
if (!preg_match("/[A-Z]/", $wert)) {
$fehler++;
}
//Kein Kleinbuchstabe
if (!preg_match("/[a-z]/", $wert)) {
$fehler++;
}
}
}
?>
+57
View File
@@ -0,0 +1,57 @@
<form action="registrieren.php" method="post">
<label class="reg_label">Name</label>
<span class="pflichtmaker"> * </span>
<input name="name" maxlength="30"
<?php
if (isset($_POST['name'])) {
echo "value='" . $_POST['name'] . "'";
}
?>
/>
<span class="fehlermeldung"></span>
<br>
<label class="reg_label">Vorname</label>
<span class="pflichtmaker"> * </span>
<input name="vorname" maxlength="30"
<?php
if (isset($_POST['vorname'])) {
echo "value='" . $_POST['vorname'] . "'";
}
?>
/>
<span class="fehlermeldung"></span>
<br>
<label class="reg_lab">E-Mail</label>
<span class="pflichtfeld"> * </span>
<input name="email" maxlength="30"
<?php
if (isset($_POST['email'])) {
echo "value='" . $_POST['e-mail'] . "'";
}
?>
/>
<span class="fehlermeldung"></span>
<br>
<label class="reg_label">Userid</label>
<span class="pflichtfeld"> * </span>
<input name="userid" maxlength="20"/>
<span class="fehlermeldung"></span>
<br>
<label class="reg_label">Passwort</label>
<span class="pflichtfeld"> * </span>
<input name="pw" type="password" maxlength="50"/>
<span class="fehlermeldung"></span>
<br>
<label class="reg_label">Zusatzinfos</label>
<span class="plichtfeld"> </span>
<textarea name="zusatzinfos" rows="5" cols="30">
<?php
if (isset($_POST['zusatzinfos'])) {
echo $_POST['zusatzinfos'];
}
?>
</textarea>
<span class="fehlermeldung"></span>
<br>
<input type="submit">
</form>
+64 -5
View File
@@ -8,7 +8,6 @@ if (0 > version_compare(PHP_VERSION, '7')) {
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="de"> <html lang="de">
<head> <head>
@@ -17,17 +16,77 @@ if (0 > version_compare(PHP_VERSION, '7')) {
<title>Image2Food - Sag mir was ich daraus kochen kann - Regestrierung</title> <title>Image2Food - Sag mir was ich daraus kochen kann - Regestrierung</title>
</head> </head>
<body> <body>
<div id="nav"> <?php include("nav.php") ?></div> <div id="nav">
<?php
require("nav.php");
require("plausi.inc.php");
?>
</div>
<div id="content"> <div id="content">
<h1>Registrierung</h1> <h1>Registrierung</h1>
<?php <?php
require("registrieren.inc.php");
/** /**
* Das soziale Netzwerk für Kochideen * Das soziale Netzwerk für Kochideen die registrierungsseite
* die registrierungsseite
*/ */
class Registrierung { class Registrierung {
/**
* Registrierungsmethode
* - Erst Eingaben des Anwenders plausiblisieren
* - Dann in der MySQL-Datenbank eintragen, wenn die Plausiblisierung keine Fehler ergeben hat.
*/
public function registrieren(){
if ($this->plausiblisieren()) {
$this->eintragen_db();
}
}
/**
* Plausiblisierungsmethode
* Testet die einzelnen Eingabefelder des Registrierungsformulars gegenüber
* - den Notwendigkeiten in der MySQL-Datenbank und
* - weiteren Anforderungen, die die Logik des Netzwerks fordert
* Die Eingaben stehen im globalen Array $_POST zur Verfügung
* @return true, wenn die Plausiblisierung keine Fehler ergab - sonst false
*/
private function plausiblisieren() {
// Fehlervariable
$anmelden = 0;
$p = new Plausi();
$anmelden += $p->namentest($_POST['name']);
$anmelden += $p->namentest($_POST['vorname']);
$anmelden += $p->emailtest($_POST['email']);
$anmelden += $p->nutzerdatentest($_POST['userid']);
$anmelden += $p->nutzerdatentest($_POST['pw']);
//Kritische Zeichen aus der freien Eingabe der Zusatzinfos eleminieren
$_POST['zusatzinfos'] = preg_replace("/[<|>|$|%|&|§]/", "#", $_POST['zusatzinfos']);
// Testausgaben für den derzeitigen Stand des Projekts
echo "Die Eingaben: <hr>";
print_r($_POST);
echo "<br>Fehleranzahl: " . $anmelden . "<hr>";
if ($anmelden == 0) return true;
else return false;
}
/**
* Eintragen der Anmeldedaten in die Datenbank
* Die Eingaben stehen im Array $_POST zur Verfügung
*/
private function eintragen_db() {
}
} }
$regobj = new Registrierung();
if (sizeof($_POST) > 0) {
$regobj->registrieren();
}
?> ?>
</div> </div>