Vorbereitung Version 2
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
<?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">
|
||||
<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, :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>
|
||||
Reference in New Issue
Block a user