6 Commits

22 changed files with 740 additions and 25 deletions
+21 -17
View File
@@ -14447,7 +14447,7 @@ CREATE TABLE `pma__export_templates` (
`template_data` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `u_user_type_template` (`username`,`export_type`,`template_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Saved export templates';
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Saved export templates';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -14456,6 +14456,8 @@ CREATE TABLE `pma__export_templates` (
LOCK TABLES `pma__export_templates` WRITE;
/*!40000 ALTER TABLE `pma__export_templates` DISABLE KEYS */;
INSERT INTO `pma__export_templates` VALUES
(1,'root','database','meine','{\"quick_or_custom\":\"quick\",\"what\":\"sql\",\"structure_or_data_forced\":\"0\",\"table_select[]\":[\"antworten\",\"fragen\",\"mitglieder\"],\"table_structure[]\":[\"antworten\",\"fragen\",\"mitglieder\"],\"table_data[]\":[\"antworten\",\"fragen\",\"mitglieder\"],\"aliases_new\":\"\",\"output_format\":\"sendit\",\"filename_template\":\"@DATABASE@\",\"remember_template\":\"on\",\"charset\":\"utf-8\",\"compression\":\"none\",\"maxsize\":\"\",\"codegen_structure_or_data\":\"data\",\"codegen_format\":\"0\",\"csv_separator\":\",\",\"csv_enclosed\":\"\\\"\",\"csv_escaped\":\"\\\"\",\"csv_terminated\":\"AUTO\",\"csv_null\":\"NULL\",\"csv_columns\":\"something\",\"csv_structure_or_data\":\"data\",\"excel_null\":\"NULL\",\"excel_columns\":\"something\",\"excel_edition\":\"win\",\"excel_structure_or_data\":\"data\",\"json_structure_or_data\":\"data\",\"json_unicode\":\"something\",\"latex_caption\":\"something\",\"latex_structure_or_data\":\"structure_and_data\",\"latex_structure_caption\":\"Struktur der Tabelle @TABLE@\",\"latex_structure_continued_caption\":\"Struktur der Tabelle @TABLE@ (Fortsetzung)\",\"latex_structure_label\":\"tab:@TABLE@-structure\",\"latex_relation\":\"something\",\"latex_comments\":\"something\",\"latex_mime\":\"something\",\"latex_columns\":\"something\",\"latex_data_caption\":\"Inhalt der Tabelle @TABLE@\",\"latex_data_continued_caption\":\"Inhalt der Tabelle @TABLE@ (Fortsetzung)\",\"latex_data_label\":\"tab:@TABLE@-data\",\"latex_null\":\"\\\\textit{NULL}\",\"mediawiki_structure_or_data\":\"structure_and_data\",\"mediawiki_caption\":\"something\",\"mediawiki_headers\":\"something\",\"htmlword_structure_or_data\":\"structure_and_data\",\"htmlword_null\":\"NULL\",\"ods_null\":\"NULL\",\"ods_structure_or_data\":\"data\",\"odt_structure_or_data\":\"structure_and_data\",\"odt_relation\":\"something\",\"odt_comments\":\"something\",\"odt_mime\":\"something\",\"odt_columns\":\"something\",\"odt_null\":\"NULL\",\"pdf_report_title\":\"\",\"pdf_structure_or_data\":\"structure_and_data\",\"phparray_structure_or_data\":\"data\",\"sql_include_comments\":\"something\",\"sql_header_comment\":\"\",\"sql_use_transaction\":\"something\",\"sql_compatibility\":\"NONE\",\"sql_structure_or_data\":\"structure_and_data\",\"sql_create_table\":\"something\",\"sql_auto_increment\":\"something\",\"sql_create_view\":\"something\",\"sql_procedure_function\":\"something\",\"sql_create_trigger\":\"something\",\"sql_backquotes\":\"something\",\"sql_type\":\"INSERT\",\"sql_insert_syntax\":\"both\",\"sql_max_query_size\":\"50000\",\"sql_hex_for_binary\":\"something\",\"sql_utc_time\":\"something\",\"texytext_structure_or_data\":\"structure_and_data\",\"texytext_null\":\"NULL\",\"xml_structure_or_data\":\"data\",\"xml_export_events\":\"something\",\"xml_export_functions\":\"something\",\"xml_export_procedures\":\"something\",\"xml_export_tables\":\"something\",\"xml_export_triggers\":\"something\",\"xml_export_views\":\"something\",\"xml_export_contents\":\"something\",\"yaml_structure_or_data\":\"data\",\"\":null,\"lock_tables\":null,\"as_separate_files\":null,\"csv_removeCRLF\":null,\"excel_removeCRLF\":null,\"json_pretty_print\":null,\"htmlword_columns\":null,\"ods_columns\":null,\"sql_dates\":null,\"sql_relation\":null,\"sql_mime\":null,\"sql_disable_fk\":null,\"sql_views_as_tables\":null,\"sql_metadata\":null,\"sql_create_database\":null,\"sql_drop_table\":null,\"sql_if_not_exists\":null,\"sql_simple_view_export\":null,\"sql_view_current_user\":null,\"sql_or_replace_view\":null,\"sql_truncate\":null,\"sql_delayed\":null,\"sql_ignore\":null,\"texytext_columns\":null}');
/*!40000 ALTER TABLE `pma__export_templates` ENABLE KEYS */;
UNLOCK TABLES;
@@ -14584,7 +14586,7 @@ CREATE TABLE `pma__recent` (
LOCK TABLES `pma__recent` WRITE;
/*!40000 ALTER TABLE `pma__recent` DISABLE KEYS */;
INSERT INTO `pma__recent` VALUES
('root','[{\"db\":\"test\",\"table\":\"test\"},{\"db\":\"sozialesnetzwerk\",\"table\":\"antworten\"},{\"db\":\"sozialesnetzwerk\",\"table\":\"fragen\"},{\"db\":\"sozialesnetzwerk\",\"table\":\"mitglieder\"},{\"db\":\"bestelldatenbank\",\"table\":\"artikel\"},{\"db\":\"bestelldatenbank\",\"table\":\"positionen\"},{\"db\":\"kverwaltung\",\"table\":\"buchung\"},{\"db\":\"kverwaltung\",\"table\":\"kurs\"},{\"db\":\"kursverwaltung\",\"table\":\"buchung\"},{\"db\":\"nation\",\"table\":\"country_stats\"}]');
('root','[{\"db\":\"sozialesnetzwerk\",\"table\":\"mitglieder\"},{\"db\":\"sozialesnetzwerk\",\"table\":\"fragen\"},{\"db\":\"sozialesnetzwerk\",\"table\":\"antworten\"},{\"db\":\"test\",\"table\":\"test\"},{\"db\":\"kursverwaltung\",\"table\":\"teilnehmer\"},{\"db\":\"kursverwaltung\",\"table\":\"kurs\"},{\"db\":\"kursverwaltung\",\"table\":\"buchung\"},{\"db\":\"bestelldatenbank\",\"table\":\"artikel\"},{\"db\":\"bestelldatenbank\",\"table\":\"positionen\"},{\"db\":\"kverwaltung\",\"table\":\"buchung\"}]');
/*!40000 ALTER TABLE `pma__recent` ENABLE KEYS */;
UNLOCK TABLES;
@@ -14782,7 +14784,7 @@ CREATE TABLE `pma__userconfig` (
LOCK TABLES `pma__userconfig` WRITE;
/*!40000 ALTER TABLE `pma__userconfig` DISABLE KEYS */;
INSERT INTO `pma__userconfig` VALUES
('root','2025-12-31 18:40:48','{\"Console\\/Mode\":\"collapse\",\"lang\":\"de\"}');
('root','2026-04-27 08:17:01','{\"Console\\/Mode\":\"collapse\",\"lang\":\"de\"}');
/*!40000 ALTER TABLE `pma__userconfig` ENABLE KEYS */;
UNLOCK TABLES;
@@ -14902,21 +14904,21 @@ DROP TABLE IF EXISTS `mitglieder`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `mitglieder` (
`id_mitglied` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`vorname` varchar(30) NOT NULL,
`email` varchar(30) NOT NULL,
`fragen` int(11) NOT NULL,
`antworten` int(11) NOT NULL,
`zusatzinfos` longtext NOT NULL,
`rolle` enum('Admin','Mitglied') NOT NULL,
`userid` varchar(20) NOT NULL,
`pw` varchar(50) NOT NULL,
`beitritt` timestamp NOT NULL,
`letzterlogin` timestamp NOT NULL,
`id_mitglied` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Die ID, die als eindeutiger Schlüssel jedes Datensatz dient.',
`name` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`vorname` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`email` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`fragen` int(11) DEFAULT NULL COMMENT 'Anzahl der gestellten Fragen',
`antworten` int(11) DEFAULT NULL COMMENT 'Anzahl der gegebenen Antworten',
`zusatzinfos` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 'Optionale Informationen',
`rolle` enum('Admin','Mitglied') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 'Informationen, welche Rolle das Mitglied in dem Netzwerk führt. Admin ist 0 und Mitglied 1.',
`userid` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
`pw` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL COMMENT 'Das Password, das MD5-verschlüsselt gespeichert werden soll.',
`beitritt` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT 'Zeitpunkt der Anmeldung',
`letzterlogin` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT 'Zeitpunkt des letzten logins.',
PRIMARY KEY (`id_mitglied`),
UNIQUE KEY `userid` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -14925,6 +14927,8 @@ CREATE TABLE `mitglieder` (
LOCK TABLES `mitglieder` WRITE;
/*!40000 ALTER TABLE `mitglieder` DISABLE KEYS */;
INSERT INTO `mitglieder` VALUES
(18,'Muenzer','Christopher','christopher@cemunz.de',NULL,NULL,' ','Mitglied','Cemunz20','820466a89565d6288970a0a2d763c223','2026-04-27 08:48:41','2026-04-27 08:48:41');
/*!40000 ALTER TABLE `mitglieder` ENABLE KEYS */;
UNLOCK TABLES;
@@ -15048,4 +15052,4 @@ USE `test`;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2026-01-02 11:43:57
-- Dump completed on 2026-04-27 9:10:52
+14
View File
@@ -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());
}
?>
+31 -4
View File
@@ -1,4 +1,9 @@
<?php
session_start();
setcookie("Image2Food", time(), time() + (60 * 60 * 24 * 120));
/**
* Festlegung der Untergrenze für die PHP-Version
* @version 1.0
@@ -17,7 +22,17 @@ if (0 > version_compare(PHP_VERSION, '7')) {
<title>Image2Food - Sag mir was ich daraus kochen kann - Index</title>
</head>
<body>
<div id="nav"> <?php require("nav.php") ?></div>
<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>
@@ -27,9 +42,21 @@ if (0 > version_compare(PHP_VERSION, '7')) {
* 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>
+25 -1
View File
@@ -6,6 +6,9 @@
if (0 > version_compare(PHP_VERSION, '7')) {
die('<h1>Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig');
}
session_start();
?>
<!DOCTYPE html>
@@ -65,7 +68,28 @@ if (0 > version_compare(PHP_VERSION, '7')) {
}
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");
}
}
+33
View File
@@ -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>
+14
View File
@@ -0,0 +1,14 @@
<?php
session_start();
class OFF {
function ausloggen() {
session_destroy();
$dat = "index.php";
header("Location: $dat");
}
}
$obj = new Off();
$obj -> ausloggen();
?>
+1
View File
@@ -0,0 +1 @@
<a href="logout.php">Logout</a>
+32
View File
@@ -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>
+1 -1
View File
@@ -26,7 +26,7 @@
<input name="email" maxlength="30"
<?php
if (isset($_POST['email'])) {
echo "value='" . $_POST['e-mail'] . "'";
echo "value='" . $_POST['email'] . "'";
}
?>
/>
+32 -2
View File
@@ -1,4 +1,6 @@
<?php
session_start();
/**
* Festlegung der Untergrenze für die PHP-Version
* @version 1.0
@@ -6,6 +8,7 @@
if (0 > version_compare(PHP_VERSION, '7')) {
die('<h1>Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig');
}
?>
<!DOCTYPE html>
@@ -63,7 +66,7 @@ if (0 > version_compare(PHP_VERSION, '7')) {
//Kritische Zeichen aus der freien Eingabe der Zusatzinfos eleminieren
$_POST['zusatzinfos'] = preg_replace("/[<|>|$|%|&|§]/", "#", $_POST['zusatzinfos']);
$_POST['zusatzinfos'] = preg_replace("/[<>$\%&§]/", "#", $_POST['zusatzinfos']);
// Testausgaben für den derzeitigen Stand des Projekts
echo "Die Eingaben: <hr>";
@@ -79,13 +82,40 @@ if (0 > version_compare(PHP_VERSION, '7')) {
*/
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();
$regobj -> registrieren();
}
?>
</div>
+14
View File
@@ -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());
}
?>
+77
View File
@@ -0,0 +1,77 @@
<?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');
}
class MeineAusnahme extends Exception{};
?>
<!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
try {
if (isset($_SESSION["login"]) && ($_SESSION["login"] == "true")) {
if (@include("navmitglieder.php"));{
throw new MeineAusnahme();
}
}
else {
if (@include("nav.php"));{
throw new MeineAusnahme();
}
}
} catch (MeineAusnahme $e) {
die("<h1>Image2Food - Sag mir was ich daraus kochen kann</h1>
<h2>Das soziale, multimediale Netzwerk für Kochideen</h2>
<p> Leider gibt es ein Problem mit der Webseite.
Wir arbeiten daran mit Hochdruck. Besuchen Sie uns in kürze wieder enu</p>");
}
?>
</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>
+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>
+104
View File
@@ -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
@include("nav.php");
@include("plausi.inc.php")
?>
</div>
<div id="content">
<h1>Login</h1>
<?php
@include("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;
@include("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>
+33
View File
@@ -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 @include("nav.php") ?></div>
<div id="content">
<h1>Anmeldefehler</h1>
<?php
@include("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>
+14
View File
@@ -0,0 +1,14 @@
<?php
session_start();
class OFF {
function ausloggen() {
session_destroy();
$dat = "index.php";
header("Location: $dat");
}
}
$obj = new Off();
$obj -> ausloggen();
?>
+3
View File
@@ -0,0 +1,3 @@
<a href="index.php">Home</a>
<a href="registrieren.php">Registrieren</a>
<a href="login.php">Login</a>
+1
View File
@@ -0,0 +1 @@
<a href="logout.php">Logout</a>
+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++;
}
}
}
?>
+32
View File
@@ -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 @include("nav.php") ?></div>
<div id="content">
<h1>Registrierungsfehler</h1>
<?php
@include ("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>
+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['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>
+124
View File
@@ -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
@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>