This repository has been archived on 2026-06-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
sgd/projekt_v1/registrieren.php
T

118 lines
4.0 KiB
PHP

<?php
/**
* Festlegung der Untergrenze für die PHP-Version
* @version 1.0
*/
if (0 > version_compare(PHP_VERSION, '7')) {
die('<h1>Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig');
}
session_start();
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Image2Food - Sag mir was ich daraus kochen kann - Regestrierung</title>
</head>
<body>
<div id="nav">
<?php
require("nav.php");
require("plausi.inc.php");
?>
</div>
<div id="content">
<h1>Registrierung</h1>
<?php
require("registrieren.inc.php");
/**
* Das soziale Netzwerk für Kochideen die registrierungsseite
*/
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() {
require ("db.inc.php");
try {
$stmt = $pdo->prepare("INSERT INTO mitglieder (name, vorname, email, zusatzinfos, rolle, userid, pw) VALUES (:name, :vorname, :email, :zusatzinfo, :rolle, :userid, :pw)");
$stmt->execute(array(
':name' => $_POST["name"],
':vorname' => $_POST["vorname"],
':email' => $_POST["email"],
':zusatzinfos' => $_POST["zusatzinfos"],
':rolle' => $_POST["rolle"],
':userid' => $_POST["userid"],
':pw' => md5($_POST["pw"])
));
$_SESSION["name"] = $_POST["userid"];
$_SESSION["login"] = "false";
$dat = "index.php";
}
catch (PDOException $e) {
$dat = "regfehler.php";
}
header("Location: $dat");
}
}
$regobj = new Registrierung();
if (sizeof($_POST) > 0) {
$regobj->registrieren();
}
?>
</div>
</body>
</html>