125 lines
4.3 KiB
PHP
125 lines
4.3 KiB
PHP
<?php
|
|
|
|
session_start();
|
|
/**
|
|
* 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');
|
|
}
|
|
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<link rel="stylesheet" href="lib/css/stil.css">
|
|
<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
|
|
@include("nav.php");
|
|
@include("plausi.inc.php");
|
|
?>
|
|
</div>
|
|
<div id="content">
|
|
<h1>Registrierung</h1>
|
|
<?php
|
|
@include("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() {
|
|
@include ("db.inc.php");
|
|
try {
|
|
$stmt = $pdo->prepare("INSERT INTO mitglieder (
|
|
name, vorname, email, zusatzinfos, rolle, userid, pw)
|
|
VALUES (:name, :vorname, :email, :zusatzinfos, :rolle,
|
|
:userid, :pw)");
|
|
|
|
$stmt->execute(array(
|
|
':name' => $_POST["name"],
|
|
':vorname' => $_POST["vorname"],
|
|
':email' => $_POST["email"],
|
|
':zusatzinfos' => $_POST["zusatzinfos"],
|
|
':rolle' => "Mitglied",
|
|
':userid' => $_POST["userid"],
|
|
':pw' => md5($_POST["pw"])
|
|
));
|
|
|
|
$_SESSION["name"] = $_POST["userid"];
|
|
$_SESSION["login"] = "false";
|
|
$dat = "index.php";
|
|
}
|
|
catch (PDOException $e) {
|
|
error_log("Registrierungsfehler: " . $e->getMessage()); // Log für Admins
|
|
$dat = "regfehler.php";
|
|
|
|
}
|
|
|
|
header("Location: $dat");
|
|
}
|
|
|
|
}
|
|
$regobj = new Registrierung();
|
|
if (sizeof($_POST) > 0) {
|
|
$regobj -> registrieren();
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|