Vorbereitung Version 2
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
$dbuser = 'root';
|
||||
$dbpw = 'Feuerwehr1!';
|
||||
$dbhost = 'localhost';
|
||||
$dbname = 'sozialesnetzwerk';
|
||||
|
||||
try {
|
||||
$pdo = new PDO ("mysql:dbname=$dbname;host=$dbhost", $dbuser, $dbpw);
|
||||
} catch (PDOException $e) {
|
||||
die ($e->getMessage());
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
setcookie("Image2Food", time(), time() + (60 * 60 * 24 * 120));
|
||||
|
||||
/**
|
||||
* 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 - Index</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav">
|
||||
<?php
|
||||
|
||||
if (isset($_SESSION["login"]) && ($_SESSION["login"] == "true")) {
|
||||
require ("navmitglieder.php");
|
||||
}
|
||||
else {
|
||||
require("nav.php");
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div id="content">
|
||||
<h1>Image2Food - Sag mir was ich daraus kochen kann</h1>
|
||||
<h2>Das soziale, multimediale Netzwerk für Kochideen</h2>
|
||||
<?php
|
||||
/**
|
||||
* Das soziale Netzwerk für Kochideen
|
||||
* die Einstiegsseite mit der Hauptklasse
|
||||
*/
|
||||
class Index {
|
||||
function besucher() {
|
||||
if (isset($_SESSION["login"]) && ($_SESSION["login"] == "true")){
|
||||
echo "<div id='indextext'><h3>Mitgliederbereich</h3><br>Sie sind Angemeldet</div>";
|
||||
} elseif (isset($_SESSION["login"]) && ($_SESSION["login"] == "false")){
|
||||
echo "<div id='indextext'> Sie können sich jetzt zum Mitgliederbereich anmelden. </div>";
|
||||
} elseif (isset($_COOKIE['Image2Food'])){
|
||||
echo "<div id='indextext'> Schön Sie wieder zu sehen. Melden Sie sich an, um in den geschlossenen Mitgliederbereich zu gelangen, wenn Sie sich schon registriert haben. </div>";
|
||||
} else {
|
||||
echo "<div id= 'indextext'>Willkommen auf unserer Webseite. Schauen Die sich um. Sie können sich hier registrieren und dann in einem geschlossenen Mitgliederbereich anmelden.</div>";
|
||||
}
|
||||
}
|
||||
}
|
||||
$obj = new Index();
|
||||
$obj -> besucher();
|
||||
?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,104 @@
|
||||
<?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 - login</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav">
|
||||
<?php
|
||||
require("nav.php");
|
||||
require("plausi.inc.php")
|
||||
?>
|
||||
</div>
|
||||
<div id="content">
|
||||
<h1>Login</h1>
|
||||
<?php
|
||||
require("login.inc.php");
|
||||
/**
|
||||
* Das soziale Netzwerk für Kochideen
|
||||
* die Loginseite
|
||||
*/
|
||||
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() {
|
||||
$vorhanden = false;
|
||||
require("db.inc.php");
|
||||
if ($stmt = $pdo->prepare("SELECT userid, pw FROM mitglieder"))
|
||||
{
|
||||
$stmt -> execute();
|
||||
while ($row = $stmt -> fetch()) {
|
||||
if (isset($_POST["userid"]) && $_POST["userid"] == $row['userid'] && md5($_POST["pw"]) == $row['pw']); {
|
||||
$vorhanden = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($vorhanden) {
|
||||
$_SESSION["name"] = $_POST["userid"];
|
||||
$_SESSION["login"] = "true";
|
||||
$dat = "index.php";
|
||||
}
|
||||
else {
|
||||
$dat = "loginfehler.php";
|
||||
}
|
||||
header("Location: $dat");
|
||||
}
|
||||
}
|
||||
|
||||
$regobj = new Login();
|
||||
if (sizeof($_POST) > 0) {
|
||||
$regobj->_login();
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
session_start();
|
||||
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 - Index</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav"> <?php require("nav.php") ?></div>
|
||||
<div id="content">
|
||||
<h1>Anmeldefehler</h1>
|
||||
<?php
|
||||
require("login.inc.php");
|
||||
|
||||
class LoginFehler {
|
||||
public function fehler() {
|
||||
echo "<h4>Die Anmeldedaten waren leider falsch</h4>". "<a href='login.php'>Neu Anmelden</a>";
|
||||
}
|
||||
}
|
||||
$loginobj = new LoginFehler();
|
||||
$loginobj -> fehler();
|
||||
?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
class OFF {
|
||||
function ausloggen() {
|
||||
session_destroy();
|
||||
$dat = "index.php";
|
||||
header("Location: $dat");
|
||||
}
|
||||
}
|
||||
$obj = new Off();
|
||||
$obj -> ausloggen();
|
||||
?>
|
||||
@@ -0,0 +1,3 @@
|
||||
<a href="index.php">Home</a>
|
||||
<a href="registrieren.php">Registrieren</a>
|
||||
<a href="login.php">Login</a>
|
||||
@@ -0,0 +1 @@
|
||||
<a href="logout.php">Logout</a>
|
||||
@@ -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++;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
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 - Index</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav"> <?php require("nav.php") ?></div>
|
||||
<div id="content">
|
||||
<h1>Registrierungsfehler</h1>
|
||||
<?php
|
||||
require ("registrieren.inc.php");
|
||||
class RegFehler {
|
||||
public function fehler() {
|
||||
echo "<h4>Die Registrierung hat leider nicht funktioniert</h4>". "<h5>Wählen Sie eine andere Userid und versuchen Sie es erneut.</h5>";
|
||||
}
|
||||
}
|
||||
$regobj = new RegFehler();
|
||||
$regobj -> fehler()
|
||||
?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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['email'] . "'";
|
||||
}
|
||||
?>
|
||||
/>
|
||||
<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>
|
||||
@@ -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