12 Commits

Author SHA1 Message Date
admin 84a568d89c Voll Upload SGD Fachinformatiker PHP 2026-06-03 13:46:32 +00:00
admin 1256ec2190 Hausarbeit 12 SQL (Abschluss der Projektarbeit) 2026-05-24 13:01:11 +00:00
admin 54bfcfea4f Uploadfunktion Sowie Bemerkungen und Rezepte und CSS hinzugefügt. 2026-05-24 11:59:46 +00:00
admin ae0d150684 Erstellen der nächsten Projektversion 2026-05-24 11:23:53 +00:00
admin 810ac71e29 Erstellung des CapchtaCodes und Vorschaubilder 2026-05-24 11:18:35 +00:00
admin 4fac3121f3 Fehler und Ausnahmekonzept 2026-05-05 09:27:45 +00:00
admin 0556dec11d Vorbereitung Version 2 2026-05-05 08:28:50 +00:00
admin 88b46ecc06 Hausarbeit: Erweiterung Index datei mit Session und Cookies 2026-04-28 07:41:50 +00:00
admin 6b3e5a61e3 Fehlerbereinigung Datenbank (pw varchar laenge) Registrierung und Login 2026-04-27 09:05:37 +00:00
admin 1ae601801e Hinzufügen und bearbeiten Session únd Cookies sowohl inhalt Login/regfehler Navmitglieder 2026-04-26 14:45:02 +00:00
admin 3b462c5f0f Setzen von db Verbindung 2026-04-17 18:34:41 +00:00
admin 0c41aef11c hinzufügen Login und Registrierung
in dem Commit wurden die Formularfunktionen für Regitrierung und Login hinzugefügt.
Ebenfalls die Prüfung auf Plausabilität.
Dies wurde duch Objektorientierte Programierung hinzugefügt.

Somit geht das Projekt in Version 2
2026-01-03 17:41:14 +00:00
327 changed files with 13020 additions and 32 deletions
+2 -2
View File
@@ -1,3 +1,3 @@
index/
ysql7-kap2/
ysqld/
tipp/
tipp_backup/
+1 -1
View File
@@ -1,5 +1,5 @@
# SGD Projekt
### Version 1
### Version 3
hier wird das SGD Projekt hochgeladen und verwaltet
+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());
}
?>
+29 -2
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 include("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,8 +42,20 @@ 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>
+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>
+71 -2
View File
@@ -6,8 +6,10 @@
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">
@@ -17,16 +19,83 @@ if (0 > version_compare(PHP_VERSION, '7')) {
<title>Image2Food - Sag mir was ich daraus kochen kann - login</title>
</head>
<body>
<div id="nav"> <?php include("nav.php") ?></div>
<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>
+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>
+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 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>
+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>
+93 -4
View File
@@ -1,4 +1,6 @@
<?php
session_start();
/**
* Festlegung der Untergrenze für die PHP-Version
* @version 1.0
@@ -6,8 +8,8 @@
if (0 > version_compare(PHP_VERSION, '7')) {
die('<h1>Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig');
}
?>
?>
<!DOCTYPE html>
<html lang="de">
@@ -17,16 +19,103 @@ if (0 > version_compare(PHP_VERSION, '7')) {
<title>Image2Food - Sag mir was ich daraus kochen kann - Regestrierung</title>
</head>
<body>
<div id="nav"> <?php include("nav.php") ?></div>
<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
* 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>
+85
View File
@@ -0,0 +1,85 @@
<?php
/**
* Start der Session
*/
session_start();
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Bild speichern </title>
<meta name="viewport" content=
"width=device-width, initial-scale=1.0">
</head>
<body>
<?php
class Bildspeichern {
public function datup() {
if (isset($_FILES['datei'])) {
if (($_FILES['datei']['size'] > 100000) ||
(filesize($_FILES['datei']['tmp_name'])
> 100000)) {
echo "Die Dateigr&ouml;&#946;e ist auf " .
"100.000 Byte beschr&auml;nkt.<br>" .
"Verkleinern Sie das Bild bitte mit " .
"einem geeigneten Grafikprogramm.<br>";
}
else if (($_FILES['datei']['type'] != "image/png")
&& ($_FILES['datei']['type'] != "image/pjpeg")
&& ($_FILES['datei']['type'] != "image/jpeg")) {
echo "Es d&uuml;rfen nur Bilddateien vom Typ" .
" PNG oder JPEG hochgeladen werden.<br>";
} else if (!empty($_FILES['datei']['name'])) {
$dateiname = $_SESSION["name"] . time();
if ($_FILES['datei']['type'] != "image/png") {
$dateiname .= ".jpg";
} else {
$dateiname .= ".png";
}
$_SESSION["dateiname"] = $dateiname;
if (move_uploaded_file(
$_FILES['datei']['tmp_name'],
'images/' . $dateiname)) {
@include ("db.inc.php");
if ($stmt = $pdo -> prepare(
"SELECT userid, id_mitglied FROM mitglieder")) {
$stmt -> execute();
while ($row = $stmt -> fetch()) {
if ($_SESSION["name"] == $row["userid"]) {
$_SESSION["id_mitglied"] = $row["id_mitglied"];
break;
}
}
}
if ($stmt = $pdo -> prepare(
"INSERT INTO fragen" .
" (bild, zusatzinfos, id_mitglied) " .
" VALUES (:bild, :zusatzinfos, :userid)")) {
if ($stmt -> execute(
array(
':bild' => $_SESSION["dateiname"],
':zusatzinfos' => $_POST["zusatzinfos"],
':userid' => $_SESSION["id_mitglied"]
)
)) {
$dat = "upload_ok.php";
} else {
$dat = "upload_fehler.php";
}
header("Location: $dat");
}
}
}
echo "<hr><a href='index.php'>Zur Homepage</a>";
}
}
}
$obj = new Bildspeichern();
$obj -> datup();
?>
</body>
</html>
+44
View File
@@ -0,0 +1,44 @@
<?php
/**
* Start der Session
*/
session_start();
unset($_SESSION['captchacode']);
// Zeichen, die der Captchacode enthalten darf
$moeglicheZeichen = "abcdefghiklmnpqrstuvwxy123456789" .
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// Anzahl der Zeichen, die das Captcha enthalten soll
$anzahlZeichen = 4;
// Captcha-Variable
$captchacode = "";
// Füllen der Captcha-Variable mit der festgelegten
// Anzahl zufälliger Zeichen
for ($i = 0; $i < $anzahlZeichen; $i++) {
$captchacode .= substr($moeglicheZeichen,
(rand() % (strlen($moeglicheZeichen))), 1);
}
// Schreiben des Captchacodes in die Session
$_SESSION['captchacode'] = $captchacode;
header('Content-type: image/jpg');
$image = imagecreate(350, 130);
$farben = array();
for ($i = 0; $i < $anzahlZeichen; $i++) {
$farben[$i] = imagecolorallocate($image,
rand(0, 255), rand(0, 255), rand(0, 255));
}
$bgc = imagecolorallocate($image, 230, 230, 230);
imagefill($image, 0, 0, $bgc);
for ($i = 0; $i < $anzahlZeichen; $i++) {
ImageTTFText($image, rand(20, 80), rand(-20, 60),
50 + ($i * 50), rand(80, 120),
$farben[rand(0, $anzahlZeichen - 1)],
"fonts/Anorexia.ttf", $captchacode[$i]);
}
for ($i = 0; $i < $anzahlZeichen; $i++) {
imageline($image, rand(0, 10), rand(0, 150),
rand(330, 340), rand(0, 150), $farben[$i]);
}
imagejpeg($image);
imagedestroy($image);
?>
+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());
}
?>
Binary file not shown.
Binary file not shown.
Binary file not shown.
+79
View File
@@ -0,0 +1,79 @@
<?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 erneut</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>";
@include("uploadformular.inc.php");
echo "<a href='vorschaubilder.php'" ." target='vorschau'>Vorschau</a>";
} 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>
+337
View File
@@ -0,0 +1,337 @@
// Elemente und Universalselektor
* {
margin: 0;
padding: 0;
border: 0;
outline: 0;
vertical-align: baseline;
background: transparent;
}
body {
background: #145D05;
color: white;
}
h1, h2, h3, h4, h5 {
display: block;
text-align: center;
margin: 15px;
padding: 5px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
a {
color: white;
background: #6C0610;
text-decoration: none;
display: inline-block;
min-width: 85px;
height: 20px;
text-align: center;
margin: 5px;
padding: 5px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
form {
background: white;
color: #145D05;
margin: 5px;
padding: 10px;
border-style: inset;
border-width: 3pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
textarea {
margin: 10px;
padding: 10px;
border-style: solid;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
input {
margin: 5px;
padding: 2px;
border-style: solid;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
// Klassen
.hlink {
text-decoration: none;
display: inline-block;
height: 35px;
text-align: center;
margin: 5px;
padding: 5px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
.spezielleUeber {
background: white;
color: #145D05;
font-size: 110%;
}
.reg_label {
display: inline-block;
width: 200px;
}
a:hover {
color: #145D05;
background: white;
}
.hlink:hover {
color: white;
background: #6C0610;
}
.thumb {
width: 120px;
height: 160px;
display: inline-block;
margin: 10px;
padding: 10px;
overflow: hidden;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
.fehlermeldung {
color: #6C0610;
}
.captcha {
width: 200px;
margin: 10px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
.detailbildcontainer {
height: 250px;
width: 250px;
margin: 3px;
}
.detailbild {
max-height: 320px;
max-width: 320px;
padding: 3px;
}
.vorschauinfos {
color: #145D05;
background: white;
margin: 5px;
padding: 15px;
width: 650px;
max-height: 150px;
overflow: scroll;
border-style: inline;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
.hlink_klein {
text-decoration: none;
height: 18px;
width: 110px;
text-align: center;
margin: 2px;
padding: 2px;
font-size: 12px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
.hlink_nix {
color: white;
background: #145D05;
text-decoration: none;
display: inline-block;
min-width: 85px;
height: auto;
text-align: center;
margin: 5px;
padding: 5px;
text-decoration: none;
text-align: left;
margin: 2px;
padding: 2px;
font-size: 0px;
border-style: none;
border-width: 0pt;
-moz-border-radius: 0px;
-webkit-border-radius: 0px;
border-radius: 0px;
-moz-box-shadow: 0px 0px 0px #888;
-webkit-box-shadow: 0px 0px 0px #888;
box-shadow: 0px 0px 0px #888;
}
.thumb_bild {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
border-style: dotted;
border-width: 1pt;
opacity: 0.9;
color: #888;
}
.thumb_bild:hover {
border-style: groove;
color: white;
opacity: 1;
-moz-box-shadow: 2px 2px 3px #888;
-webkit-box-shadow: 2px 2px 3px #888;
box-shadow: 2px 2px 3px #888;
}
.rezepttab {
width: 950px;
margin: 5px;
}
// IDs
#detailbereich {
height: 550px;
width: 98%;
margin: auto;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
overflow-x: scroll;
}
#vorschauber {
height: 300px;
width: 98%;
margin: auto;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
overflow-x: scroll;
}
#nav {
width: 1000px;
height: 40px;
margin: auto;
padding: 10px;
}
#content {
width: 1000px;
margin: auto;
padding: 20px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
#indextext {
text-align: justify;
background: white;
color: #145D05;
margin: 5px;
padding: 10px;
border-style: inset;
border-width: 3pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
box-shadow: 5px 5px 5px #888;
}
#meldung {
position: relative;
top: -200px;
margin: 0 auto;
opacity: 0.7;
visibility: hidden;
background: white;
color: #6C0610;
width: 450px;
min-height: 40px;
padding: 20px;
border-style: inset;
border-width: 3pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
box-shadow: 5px 5px 5px #888;
}
#rezeptformular {
width: 950px;
margin: 3px;
}
#detailinfo {
vertical-align: top;
padding: 5px;
margin: 20px;
}
+18
View File
@@ -0,0 +1,18 @@
<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>
<img src="captchagenerieren.php" alt="Captcha"><br>
<label class="reg_label">Captcha</label>
<span class="pflichtmarker"> * </span>
<input name="captcha">
<br>
<input type="submit">
</form>
+105
View File
@@ -0,0 +1,105 @@
<?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']);
$anmelden += $p->captchatest($_POST['captcha']);
// 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>
+71
View File
@@ -0,0 +1,71 @@
<?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++;
}
}
public function captchatest($wert) {
$fehler = 0;
if ($_SESSION['captchacode'] != $wert) {
return ++$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>
+63
View File
@@ -0,0 +1,63 @@
<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>
<br>
<img src="captchagenerieren.php" alt="Captcha"><br>
<label class="reg_label">Captcha</label>
<span class="pflichtmarker"> * </span>
<input name="captcha">
<br>
<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>
+47
View File
@@ -0,0 +1,47 @@
<?php
session_start();
if (0 > version_compare(PHP_VERSION, '7')) {
die('<h1>Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig</h1>');
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Image2Food
Sag mir, was ich daraus kochen kann Upload </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="lib/css/stil.css">
</head>
<body>
<div id="nav">
<?php
@require ("navmitglieder.php");
?>
</div>
<div id="content">
<h1>Registrierungsfehler</h1>
<?php
class UpFehler {
public function fehler() {
echo "<h4>Der Upload und die Registrierung der Datei" . " im System hat leider nicht funktioniert.</h4>" . "<h5>Versuchen Sie es bitte erneut.</h5>";
}
}
$obj = new UpFehler();
$obj -> fehler();
?>
<hr>
<a href='index.php'>Zur Homepage</a>
</div>
</body>
</html>
+31
View File
@@ -0,0 +1,31 @@
<?php
session_start();
if (0 > version_compare(PHP_VERSION, '7')) {
die('<h1>Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig</h1>');
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Image2Food
Sag mir, was ich daraus kochen kann Upload </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="lib/css/stil.css">
</head>
<body>
<div id="nav">
<?php
@require ("navmitglieder.php");
?>
</div>
<div id="content">
<h1>Dateiupload ok</h1>
<hr>
<a href='index.php'>Zur Homepage</a>
</div>
</body>
</html>
+8
View File
@@ -0,0 +1,8 @@
<h1>Wählen Sie eine Datei zum Upload aus</h1>
<form action="bildspeichern.php" method="post" enctype="multipart/form-data">
<input name="datei" type="file"><br>
<textarea name="zusatzinfos" cols="20" rows="5">
</textarea>
<br>
<input type="submit" value="Starte Upload">
</form>
+74
View File
@@ -0,0 +1,74 @@
<!DOCTYPE html>
<html>
<head>
<title>Vorschau</title>
<meta charset="UTF-8">
</head>
<body>
<h1>Vorschau</h1>
<?php
class Thumb {
function thumbnail_erstellen() {
$bv = "images";
$vb = "thumb";
$verzeichnis = opendir($bv);
$bilder = array();
while (($datei = readdir($verzeichnis)) !== false) {
if ((preg_match("/\.jpe?g$/i", $datei)) || (preg_match("/\.png$/i", $datei))) {
$bilder[] = $datei;
}
}
closedir($verzeichnis);
$verzeichnis = opendir($vb);
//Schleife, bis alle Files im Verzeichnis ausgelesen wurden
while (($datei = readdir($verzeichnis)) !== false) {
//Oft werden auch die Standardordner . und .. ausgelesen, diese sollen ignoriert werden
if ($datei != "." AND $datei != "..") {
//Files vom Server entfernen
@unlink("$vb/$datei");
}
}
closedir($verzeichnis);
foreach ($bilder as $bild) {
if (preg_match("/\.png$/i", $bild)) {
$b = imagecreatefrompng("$bv/$bild");
} else {
$b = imagecreatefromjpeg("$bv/$bild");
}
$originalbreite = imagesx($b);
$originalhoehe = imagesy($b);
$neuebreite = 120;
$neuehoehe = floor($originalhoehe * ($neuebreite / $originalbreite));
$neuesbild = imagecreatetruecolor($neuebreite, $neuehoehe);
imagecopyresampled($neuesbild, $b, 0, 0, 0, 0, $neuebreite, $neuehoehe, $originalbreite, $originalhoehe);
imagejpeg($neuesbild, "$vb/$bild");
imagedestroy($neuesbild);
}
}
function thumbnail_anzeigen() {
$bv = "thumb";
$verzeichnis = opendir($bv);
while (($datei = readdir($verzeichnis)) !== false) {
if (preg_match("/\.jpe?g$/i", $datei)) {
echo "<a href=''><img src='$bv/$datei' " . "alt='Vorschaubild'></a> ";
}
}
closedir($verzeichnis);
}
}
$obj = new Thumb();
$obj -> thumbnail_erstellen();
$obj -> thumbnail_anzeigen();
?>
</body>
</html>
+39
View File
@@ -0,0 +1,39 @@
<?php
session_start ();
class Bemerkungen {
function bemerk_db($bild) {
@include("db.inc.php");
$s1 ="<table class='rezepttab'><tr>" .
"<td class='detailbildcontainer'>" .
"<img class='detailbild' src='images/$bild'>" .
"</td><td class='detailinfo'>";
if ($stmt = $pdo->prepare (
"SELECT zusatzinfos FROM fragen " .
"where bild='$bild'" )) {
$stmt->execute ();
while ( $row = $stmt->fetch () ) {
if ($row ['zusatzinfos'] == "")
$s2 = "Es sind keine zusätzlichen Informationen "
. "zu dem Bild in der" .
" Datenbank hinterlegt.</td></tr></table>";
else
$s2 = $row['zusatzinfos'] . "</td></tr></table>";
}
}
$s3="<form action='index.php' id='rezeptformular'>".
"<h3>Ihr Vorschlag für ein Rezept</h3> " .
"<textarea name='rezeptvorschlag' cols='105' rows='4' id='rezeptvorschlag'></textarea>" .
"<input type='hidden' name='bild' value=$bild>" .
"<br><input class='hlink' " .
"type='submit' value='Vorschlag abgeben'></form>";
echo $s1 . $s2 . $s3;
}
}
if(isset( $_GET ['details'] )) {
$obj = new Bemerkungen ();
$obj->bemerk_db ( $_GET ['details'] );
}
?>
+88
View File
@@ -0,0 +1,88 @@
<?php
/**
* Start der Session
*/
session_start();
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Bild speichern </title>
<meta name="viewport" content=
"width=device-width, initial-scale=1.0">
</head>
<body>
<?php
class Bildspeichern {
public function datup() {
if (isset($_FILES['datei'])) {
if (($_FILES['datei']['size'] > 100000) ||
(filesize($_FILES['datei']['tmp_name'])
> 100000)) {
echo "Die Dateigr&ouml;&#946;e ist auf " .
"100.000 Byte beschränkt.<br>" .
"Verkleinern Sie das Bild bitte mit " .
"einem geeigneten Grafikprogramm.<br>";
}
else if (($_FILES['datei']['type'] != "image/png")
&& ($_FILES['datei']['type'] != "image/pjpeg")
&& ($_FILES['datei']['type'] != "image/jpeg")) {
echo "Es dürfen nur Bilddateien vom Typ" .
" PNG oder JPEG hochgeladen werden.<br>";
} else if (!empty($_FILES['datei']['name'])) {
$dateiname = $_SESSION["name"] . time();
if ($_FILES['datei']['type'] != "image/png") {
$dateiname .= ".jpg";
} else {
$dateiname .= ".png";
}
$_SESSION["dateiname"] = $dateiname;
if (move_uploaded_file(
$_FILES['datei']['tmp_name'],
'images/' . $dateiname)) {
@include ("db.inc.php");
if ($stmt = $pdo -> prepare(
"SELECT userid, id_mitglied FROM mitglieder")) {
$stmt -> execute();
while ($row = $stmt -> fetch()) {
if ($_SESSION["name"] == $row["userid"]) {
$_SESSION["id_mitglied"] = $row["id_mitglied"];
break;
}
}
}
if ($stmt = $pdo -> prepare(
"INSERT INTO fragen" .
" (bild, zusatzinfos, id_mitglied) " .
" VALUES (:bild, :zusatzinfos, :userid)")) {
if ($stmt -> execute(
array(
':bild' => $_SESSION["dateiname"],
':zusatzinfos' => $_POST["zusatzinfos"],
':userid' => $_SESSION["id_mitglied"]
)
)) {
$dat = "upload_ok.php";
@include("wertupdate.php");
new WertUpdate("fragen",$_SESSION["id_mitglied"]);
} else {
$dat = "upload_fehler.php";
}
header("Location: $dat");
}
}
}
echo "<hr><a href='index.php'>Zur Homepage</a>";
}
}
}
$obj = new Bildspeichern();
$obj -> datup();
?>
</body>
</html>
+44
View File
@@ -0,0 +1,44 @@
<?php
/**
* Start der Session
*/
session_start();
unset($_SESSION['captchacode']);
// Zeichen, die der Captchacode enthalten darf
$moeglicheZeichen = "abcdefghiklmnpqrstuvwxy123456789" .
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// Anzahl der Zeichen, die das Captcha enthalten soll
$anzahlZeichen = 4;
// Captcha-Variable
$captchacode = "";
// Füllen der Captcha-Variable mit der festgelegten
// Anzahl zufälliger Zeichen
for ($i = 0; $i < $anzahlZeichen; $i++) {
$captchacode .= substr($moeglicheZeichen,
(rand() % (strlen($moeglicheZeichen))), 1);
}
// Schreiben des Captchacodes in die Session
$_SESSION['captchacode'] = $captchacode;
header('Content-type: image/jpg');
$image = imagecreate(350, 130);
$farben = array();
for ($i = 0; $i < $anzahlZeichen; $i++) {
$farben[$i] = imagecolorallocate($image,
rand(0, 255), rand(0, 255), rand(0, 255));
}
$bgc = imagecolorallocate($image, 230, 230, 230);
imagefill($image, 0, 0, $bgc);
for ($i = 0; $i < $anzahlZeichen; $i++) {
ImageTTFText($image, rand(20, 80), rand(-20, 60),
50 + ($i * 50), rand(80, 120),
$farben[rand(0, $anzahlZeichen - 1)],
"fonts/Anorexia.ttf", $captchacode[$i]);
}
for ($i = 0; $i < $anzahlZeichen; $i++) {
imageline($image, rand(0, 10), rand(0, 150),
rand(330, 340), rand(0, 150), $farben[$i]);
}
imagejpeg($image);
imagedestroy($image);
?>
+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());
}
?>
Binary file not shown.
Binary file not shown.
Binary file not shown.
+81
View File
@@ -0,0 +1,81 @@
<?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">
<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 - 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 erneut</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>";
@include("uploadformular.inc.php");
@include ("vorschau.php");
echo "<a href='vorschaubilder.php'" ." target='vorschau'>Vorschau</a>";
} 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>
+337
View File
@@ -0,0 +1,337 @@
// Elemente und Universalselektor
* {
margin: 0;
padding: 0;
border: 0;
outline: 0;
vertical-align: baseline;
background: transparent;
}
body {
background: #145D05;
color: white;
}
h1, h2, h3, h4, h5 {
display: block;
text-align: center;
margin: 15px;
padding: 5px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
a {
color: white;
background: #6C0610;
text-decoration: none;
display: inline-block;
min-width: 85px;
height: 20px;
text-align: center;
margin: 5px;
padding: 5px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
form {
background: white;
color: #145D05;
margin: 5px;
padding: 10px;
border-style: inset;
border-width: 3pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
textarea {
margin: 10px;
padding: 10px;
border-style: solid;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
input {
margin: 5px;
padding: 2px;
border-style: solid;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
// Klassen
.hlink {
text-decoration: none;
display: inline-block;
height: 35px;
text-align: center;
margin: 5px;
padding: 5px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
.spezielleUeber {
background: white;
color: #145D05;
font-size: 110%;
}
.reg_label {
display: inline-block;
width: 200px;
}
a:hover {
color: #145D05;
background: white;
}
.hlink:hover {
color: white;
background: #6C0610;
}
.thumb {
width: 120px;
height: 160px;
display: inline-block;
margin: 10px;
padding: 10px;
overflow: hidden;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
.fehlermeldung {
color: #6C0610;
}
.captcha {
width: 200px;
margin: 10px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
.detailbildcontainer {
height: 250px;
width: 250px;
margin: 3px;
}
.detailbild {
max-height: 320px;
max-width: 320px;
padding: 3px;
}
.vorschauinfos {
color: #145D05;
background: white;
margin: 5px;
padding: 15px;
width: 650px;
max-height: 150px;
overflow: scroll;
border-style: inline;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
.hlink_klein {
text-decoration: none;
height: 18px;
width: 110px;
text-align: center;
margin: 2px;
padding: 2px;
font-size: 12px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
}
.hlink_nix {
color: white;
background: #145D05;
text-decoration: none;
display: inline-block;
min-width: 85px;
height: auto;
text-align: center;
margin: 5px;
padding: 5px;
text-decoration: none;
text-align: left;
margin: 2px;
padding: 2px;
font-size: 0px;
border-style: none;
border-width: 0pt;
-moz-border-radius: 0px;
-webkit-border-radius: 0px;
border-radius: 0px;
-moz-box-shadow: 0px 0px 0px #888;
-webkit-box-shadow: 0px 0px 0px #888;
box-shadow: 0px 0px 0px #888;
}
.thumb_bild {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
border-style: dotted;
border-width: 1pt;
opacity: 0.9;
color: #888;
}
.thumb_bild:hover {
border-style: groove;
color: white;
opacity: 1;
-moz-box-shadow: 2px 2px 3px #888;
-webkit-box-shadow: 2px 2px 3px #888;
box-shadow: 2px 2px 3px #888;
}
.rezepttab {
width: 950px;
margin: 5px;
}
// IDs
#detailbereich {
height: 550px;
width: 98%;
margin: auto;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
overflow-x: scroll;
}
#vorschauber {
height: 300px;
width: 98%;
margin: auto;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 2px 3px #888;
-webkit-box-shadow: 5px 2px 3px #888;
box-shadow: 5px 2px 3px #888;
overflow-x: scroll;
}
#nav {
width: 1000px;
height: 40px;
margin: auto;
padding: 10px;
}
#content {
width: 1000px;
margin: auto;
padding: 20px;
border-style: groove;
border-width: 1pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
#indextext {
text-align: justify;
background: white;
color: #145D05;
margin: 5px;
padding: 10px;
border-style: inset;
border-width: 3pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
box-shadow: 5px 5px 5px #888;
}
#meldung {
position: relative;
top: -200px;
margin: 0 auto;
opacity: 0.7;
visibility: hidden;
background: white;
color: #6C0610;
width: 450px;
min-height: 40px;
padding: 20px;
border-style: inset;
border-width: 3pt;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
box-shadow: 5px 5px 5px #888;
}
#rezeptformular {
width: 950px;
margin: 3px;
}
#detailinfo {
vertical-align: top;
padding: 5px;
margin: 20px;
}
+18
View File
@@ -0,0 +1,18 @@
<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>
<img src="captchagenerieren.php" alt="Captcha"><br>
<label class="reg_label">Captcha</label>
<span class="pflichtmarker"> * </span>
<input name="captcha">
<br>
<input type="submit">
</form>
+106
View File
@@ -0,0 +1,106 @@
<?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">
<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 - 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']);
$anmelden += $p->captchatest($_POST['captcha']);
// 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>
+34
View File
@@ -0,0 +1,34 @@
<?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">
<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 - 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>
+71
View File
@@ -0,0 +1,71 @@
<?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++;
}
}
public function captchatest($wert) {
$fehler = 0;
if ($_SESSION['captchacode'] != $wert) {
return ++$fehler;
}
}
}
?>
+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">
<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 - 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>
+63
View File
@@ -0,0 +1,63 @@
<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>
<br>
<img src="captchagenerieren.php" alt="Captcha"><br>
<label class="reg_label">Captcha</label>
<span class="pflichtmarker"> * </span>
<input name="captcha">
<br>
<span class="fehlermeldung"></span>
<br>
<input type="submit">
</form>
+125
View File
@@ -0,0 +1,125 @@
<?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>
+49
View File
@@ -0,0 +1,49 @@
<?php
session_start ();
class RezepteAnzeigen {
function anzeigen_db($bild) {
//String aufbauen, um das Bild auszugeben.
$s="<table class='rezepttab'><tr>".
"<td class='detailbildcontainer'>".
"<img class='detailbild' src='images/$bild'>".
"</td><td id='detailinfo'></td></tr></table>";
$rezeptvorschlaege = "";
@include ("db.inc.php");
if ($stmt = $pdo->prepare (
"SELECT id_frage FROM fragen " .
"WHERE bild='$bild'" )) {
$stmt->execute ();
while ( $row = $stmt->fetch () ) {
$id_frage = $row ['id_frage'];
break;
}
}
if ($stmt = $pdo->prepare (
"SELECT id_antwortgeber,antwort FROM antworten "
. "WHERE id_frage='$id_frage'" )) {
$stmt->execute ();
while ( $row = $stmt->fetch () ) {
$rezeptvorschlaege .=
"<div class='vorschauinfos'>Vorschlag vom Mitglied mit der ID " .
$row ['id_antwortgeber'] . ":<br>" .
$row ['antwort'] . "</div>";
}
}
if ($rezeptvorschlaege != "") {
echo $s. "<h5>Rezeptideen</h5>" .
$rezeptvorschlaege;
} else {
echo $s. "<h5>Rezeptideen</h5>" .
"<div class='vorschauinfos'>" .
"Es gibt noch keine Vorschläge</div>";
}
}
}
if(isset ($_GET ['rezepte'])) {
$obj = new RezepteAnzeigen ();
$obj->anzeigen_db ( $_GET ['rezepte'] );
}
?>
+51
View File
@@ -0,0 +1,51 @@
<?php
session_start ();
class RezeptEintragen {
function eintragen_db($bild, $antwort) {
@include ("db.inc.php");
$userid = $_SESSION ["name"];
if ($stmt = $pdo->prepare (
"SELECT id_mitglied FROM mitglieder " .
"WHERE userid='$userid'" )) {
$stmt->execute ();
while ( $row = $stmt->fetch () ) {
$id_antwortgeber = $row ['id_mitglied'];
break;
}
}
if ($stmt = $pdo->prepare (
"SELECT id_frage, id_mitglied FROM fragen " .
"WHERE bild='$bild'" )) {
$stmt->execute ();
while ( $row = $stmt->fetch () ) {
$id_frage = $row ['id_frage'];
$id_fragesteller = $row ['id_mitglied'];
break;
}
}
if ($stmt = $pdo->prepare (
"INSERT INTO antworten (id_fragesteller, " .
"id_antwortgeber, id_frage, antwort) " .
" VALUES (:id_fragesteller, :id_antwortgeber, :id_frage, :antwort)" )) {
if ($stmt->execute ( array (
':id_fragesteller' => $id_fragesteller,
':id_antwortgeber' => $id_antwortgeber,
':id_frage' => $id_frage,
':antwort' => $antwort
) )) {
@include ("wertupdate.php");
new WertUpdate ( "antworten", $id_antwortgeber );
echo "Ihr Rezeptvorschlag wurde eingetragen";
}
}
}
}
if(isset($_GET ['bild']) && isset($_GET ['rezeptvorschlag'])) {
if (strlen($_GET ['rezeptvorschlag'])) {
$obj = new RezeptEintragen ();
$obj->eintragen_db ( $_GET ['bild'], $_GET ['rezeptvorschlag'] );
}
}
?>
+47
View File
@@ -0,0 +1,47 @@
<?php
session_start();
if (0 > version_compare(PHP_VERSION, '7')) {
die('<h1>Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig</h1>');
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Image2Food
Sag mir, was ich daraus kochen kann Upload </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="lib/css/stil.css">
</head>
<body>
<div id="nav">
<?php
@require ("navmitglieder.php");
?>
</div>
<div id="content">
<h1>Registrierungsfehler</h1>
<?php
class UpFehler {
public function fehler() {
echo "<h4>Der Upload und die Registrierung der Datei" . " im System hat leider nicht funktioniert.</h4>" . "<h5>Versuchen Sie es bitte erneut.</h5>";
}
}
$obj = new UpFehler();
$obj -> fehler();
?>
<hr>
<a href='index.php'>Zur Homepage</a>
</div>
</body>
</html>
+31
View File
@@ -0,0 +1,31 @@
<?php
session_start();
if (0 > version_compare(PHP_VERSION, '7')) {
die('<h1>Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig</h1>');
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Image2Food
Sag mir, was ich daraus kochen kann Upload </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="lib/css/stil.css">
</head>
<body>
<div id="nav">
<?php
@require ("navmitglieder.php");
?>
</div>
<div id="content">
<h1>Dateiupload ok</h1>
<hr>
<a href='index.php'>Zur Homepage</a>
</div>
</body>
</html>
+8
View File
@@ -0,0 +1,8 @@
<h1>Wählen Sie eine Datei zum Upload aus</h1>
<form action="bildspeichern.php" method="post" enctype="multipart/form-data">
<input name="datei" type="file"><br>
<textarea name="zusatzinfos" cols="20" rows="5">
</textarea>
<br>
<input type="submit" value="Starte Upload">
</form>
+73
View File
@@ -0,0 +1,73 @@
<?php
class Thumb {
function thumbnail_erstellen() {
$bv = "images";
$vb = "thumb";
$verzeichnis = opendir($bv);
$bilder = array();
while (($datei = readdir($verzeichnis)) !== false) {
if ((preg_match("/\.jpe?g$/i", $datei)) || (preg_match("/\.png$/i", $datei))) {
$bilder[] = $datei;
}
}
closedir($verzeichnis);
$verzeichnis = opendir($vb);
//Schleife, bis alle Files im Verzeichnis ausgelesen wurden
while (($datei = readdir($verzeichnis)) !== false) {
//Oft werden auch die Standardordner . und .. ausgelesen, diese sollen ignoriert werden
if ($datei != "." AND $datei != "..") {
//Files vom Server entfernen
@unlink("$vb/$datei");
}
}
closedir($verzeichnis);
foreach ($bilder as $bild) {
if (preg_match("/\.png$/i", $bild)) {
$b = imagecreatefrompng("$bv/$bild");
} else {
$b = imagecreatefromjpeg("$bv/$bild");
}
$originalbreite = imagesx($b);
$originalhoehe = imagesy($b);
$neuebreite = 120;
$neuehoehe = floor($originalhoehe * ($neuebreite / $originalbreite));
$neuesbild = imagecreatetruecolor($neuebreite, $neuehoehe);
imagecopyresampled($neuesbild, $b, 0, 0, 0, 0, $neuebreite, $neuehoehe, $originalbreite, $originalhoehe);
imagejpeg($neuesbild, "$vb/$bild");
imagedestroy($neuesbild);
}
}
function thumbnail_anzeigen() {
$bv = "thumb";
$verzeichnis = opendir($bv);
while (($datei = readdir($verzeichnis)) !== false) {
if ((preg_match("/\.jpe?g$/i", $datei)) || (preg_match("/\.png$/i", $datei))) {
echo "<div class='thumb'><a class='hlink_klein'
href='index.php?rezepte=$datei'>Rezepte anzeigen</a><br>
<a class='hlink_nix' href='index.php?details=$datei'>
<img class='thumb_bild' src='$bv/$datei' " .
"alt='Vorschaubild $datei'></a></div> ";
}
}
closedir($verzeichnis);
}
public function __construct() {
echo '<h1>Vorschau der Zutaten</h1>'.
'<h5>Mit einem Klick auf ein Bild erhalten Sie '.
'mehr Informationen und Sie können einen '.
'Rezeptvorschlag abgeben.</h5>'.'<div id="vorschauber">';
$this -> thumbnail_erstellen();
$this -> thumbnail_anzeigen();
echo '</div><h2>Details</h2>' .'<div id="detailbereich"></div>';
}
}
new Thumb();
?>
+75
View File
@@ -0,0 +1,75 @@
<!DOCTYPE html>
<html>
<head>
<title>Vorschau</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="lib/css/stil.css">
</head>
<body>
<h1>Vorschau</h1>
<?php
class Thumb {
function thumbnail_erstellen() {
$bv = "images";
$vb = "thumb";
$verzeichnis = opendir($bv);
$bilder = array();
while (($datei = readdir($verzeichnis)) !== false) {
if ((preg_match("/\.jpe?g$/i", $datei)) || (preg_match("/\.png$/i", $datei))) {
$bilder[] = $datei;
}
}
closedir($verzeichnis);
$verzeichnis = opendir($vb);
//Schleife, bis alle Files im Verzeichnis ausgelesen wurden
while (($datei = readdir($verzeichnis)) !== false) {
//Oft werden auch die Standardordner . und .. ausgelesen, diese sollen ignoriert werden
if ($datei != "." AND $datei != "..") {
//Files vom Server entfernen
@unlink("$vb/$datei");
}
}
closedir($verzeichnis);
foreach ($bilder as $bild) {
if (preg_match("/\.png$/i", $bild)) {
$b = imagecreatefrompng("$bv/$bild");
} else {
$b = imagecreatefromjpeg("$bv/$bild");
}
$originalbreite = imagesx($b);
$originalhoehe = imagesy($b);
$neuebreite = 120;
$neuehoehe = floor($originalhoehe * ($neuebreite / $originalbreite));
$neuesbild = imagecreatetruecolor($neuebreite, $neuehoehe);
imagecopyresampled($neuesbild, $b, 0, 0, 0, 0, $neuebreite, $neuehoehe, $originalbreite, $originalhoehe);
imagejpeg($neuesbild, "$vb/$bild");
imagedestroy($neuesbild);
}
}
function thumbnail_anzeigen() {
$bv = "thumb";
$verzeichnis = opendir($bv);
while (($datei = readdir($verzeichnis)) !== false) {
if (preg_match("/\.jpe?g$/i", $datei)) {
echo "<a href=''><img src='$bv/$datei' " . "alt='Vorschaubild'></a> ";
}
}
closedir($verzeichnis);
}
}
$obj = new Thumb();
$obj -> thumbnail_erstellen();
$obj -> thumbnail_anzeigen();
?>
</body>
</html>
+24
View File
@@ -0,0 +1,24 @@
<?php
class WertUpdate {
public function __construct($feld, $id_mitglied) {
@include ("db.inc.php");
$sql = "SELECT $feld FROM mitglieder " . "WHERE id_mitglied = $id_mitglied";
if ($stmt = $pdo->prepare ( $sql1 )) {
$stmt->execute ();
while ($row = $stmt->fetch ()) {
$wert = $row [$feld];
}
}
$wert += 1;
$sql2 = "UPDATE mitglieder SET $feld = $wert " . "WHERE id_mitglied = $id_mitglied";
if ($stmt = $pdo->prepare ( $sql2 )) {
$stmt->execute ();
}
}
}
?>
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<buildpath>
<buildpathentry kind="src" path=""/>
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
</buildpath>
+8
View File
@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../:\xampp\htdocs\ysqlc\kursverwaltung\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/
+5
View File
@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="kursverwaltung@localhost" uuid="906f583d-2102-4de7-ad02-26f518a73ded">
<driver-ref>mariadb</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.mariadb.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mariadb://localhost:3306/kursverwaltung</jdbc-url>
</data-source>
</component>
</project>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,2 @@
#n:information_schema
!<md> [null, 0, null, null, -2147483648, -2147483648]
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" serverName="kursstorm">
<serverData>
<paths name="kursstorm">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="ysqlc/kursverwaltung" />
</mappings>
</serverdata>
</paths>
</serverData>
</component>
</project>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/kursverwaltung.iml" filepath="$PROJECT_DIR$/.idea/kursverwaltung.iml" />
</modules>
</component>
</project>
+28
View File
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>kursverwaltung</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.dltk.core.scriptbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.php.core.PHPNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
@@ -0,0 +1,4 @@
eclipse.preferences.version=1
include_path=0;/kursverwaltung
phpVersion=php7.1
use_asp_tags_as_php=false
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="php.component"/>
<fixed facet="php.core.component"/>
<installed facet="php.core.component" version="1"/>
<installed facet="php.component" version="7.1"/>
</faceted-project>
+84
View File
@@ -0,0 +1,84 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Buchung bearbeiten</title>
<?php
require_once("buchung.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
$buchung = new buchung();
if (isset($_POST["mode"])) {
if($_POST["mode"] == "null"){
$buchung->anlegen();
}
else {
$buchung->bearbeiten();
}
header("refresh:3;url=buchung.php");
}
else {
?>
<div class="ausgabe">
<?php
$tData = array();
if (isset($_GET["bnummer"])) {
$tData = $buchung->lesenDatensatz($_GET["bnummer"]);
$bnummer = $_GET["bnummer"];
?>
<form action="" method="POST">
<input type="hidden" id="mode" name="mode"
value="<?php echo $bnummer; ?>">
<label for="bnummer">Buchungsnummer: </label>
<input type="text" id="bnummer" name="bnummer"
value="<?php echo $bnummer; ?>" disabled>
<br>
<label for="termnr">Termin: </label>
<?php echo $buchung->einfuegenSelect("termine", "termnr", "beginn", $tData['termnr']); ?>
<br>
<label for="tnummer">Teilnehmer: </label>
<?php echo $buchung->einfuegenSelect("teilnehmer", "tnummer", "name", $tData['tnummer']); ?>
<br>
<p><input type="submit" value="Änderung speichern">
</p>
</form>
<p><a class="button" href="bloeschen.php?bnummer=<?php echo $bnummer; ?>">Buchung löschen</a></p>
<?php
}
else {
?>
<form action="bbearbeiten.php" method="POST">
<input type="hidden" id="mode" name="mode" value="null">
<label for="bnummer">Buchungsnummer: </label>
<input type="text" id="bnummer" name="bnummer" value="AUTO" disabled>
<br>
<label for="termnr">Termin: </label>
<?php echo $buchung->einfuegenSelect("termine", "termnr", "beginn", NULL); ?>
<br>
<label for="tnummer">Teilnehmer: </label>
<?php echo $buchung->einfuegenSelect("teilnehmer", "tnummer", "name", NULL); ?>
<br>
<p><input type="submit" value="Änderung speichern"></p>
</form>
<?php
}
?>
</div>
<?php
}
?>
</body>
</html>
+21
View File
@@ -0,0 +1,21 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Buchung löschen</title>
<?php
require_once("buchung.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
if(isset($_GET["bnummer"])) {
$buchung = new buchung();
$buchung -> loeschen($_GET["bnummer"]);
echo "<h2>Buchung gelöscht</h2>";
}
header("refresh:3; url=buchung.php");
?>
</body>
</html>
+163
View File
@@ -0,0 +1,163 @@
<?php
class Buchung
{
private $tabelle = "buchung";
public function loeschen($id)
{
require ("db.inc.php");
$sql = "DELETE FROM $this->tabelle WHERE bnummer = :bnummer";
if ($stmt = $pdo->prepare($sql)) {
$stmt->bindParam(':bnummer', $id);
$stmt->execute();
}
}
public function anlegen()
{
require ("db.inc.php");
$bnummer = NULL;
$termnr = $_POST["termnr"];
$tnummer = $_POST["tnummer"];
$sql = "INSERT INTO $this->tabelle (bnummer,
termnr,
tnummer)
VALUES (:bnummer, :termnr, :tnummer)";
if ($stmt = $pdo->prepare($sql)) {
$param = array(
':bnummer' => $bnummer,
':termnr' => $termnr,
':tnummer' => $tnummer
);
if ($stmt->execute($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
} else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function bearbeiten()
{
require ("db.inc.php");
$bnummer = $_POST["mode"];
$termnr = $_POST["termnr"];
$tnummer = $_POST["tnummer"];
$sql = "UPDATE " . $this->tabelle . " SET termnr = :termnr, tnummer = :tnummer WHERE bnummer = :bnummer";
if ($stmt = $pdo->prepare($sql)) {
$param = array(
':bnummer' => $bnummer,
':termnr' => $termnr,
':tnummer' => $tnummer
);
if ($stmt->execute($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
} else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function lesenDatensatz($id)
{
require ("db.inc.php");
if ($stmt = $pdo->prepare("SELECT buchung.bnummer,
termine.termnr,
kurs.titel,
dozenten.name,
termine.beginn,
termine.ende,
teilnehmer.tnummer,
teilnehmer.name,
teilnehmer.vname
FROM $this->tabelle
JOIN termine ON buchung.termnr = termine.termnr
JOIN teilnehmer ON buchung.tnummer = teilnehmer.tnummer
JOIN kurs ON termine.kursnr = kurs.kursnr
JOIN dozenten ON termine.doznr = dozenten.doznr
WHERE bnummer=:bnummer")) {
$stmt->bindParam(':bnummer', $id);
$stmt->execute();
//$z = $stmt->fetch(PDO::FETCH_OBJ);
//echo "<pre>", var_dump($z), "</pre>";
return ($stmt->fetch(PDO::FETCH_ASSOC));
} else {
return false;
}
}
public function lesenAlleDaten()
{
$sql = "SELECT buchung.bnummer,
kurs.titel As kursTitel,
dozenten.name As dozentenName,
termine.beginn,
termine.ende,
teilnehmer.name As teilnehmerName,
teilnehmer.vname As teilnehmerVorname
FROM buchung
JOIN termine ON buchung.termnr = termine.termnr
JOIN teilnehmer ON buchung.tnummer = teilnehmer.tnummer
JOIN kurs ON termine.kursnr = kurs.kursnr
JOIN dozenten ON termine.doznr = dozenten.doznr
ORDER BY buchung.bnummer";
$this->baueBuchungTabelle($sql);
}
private function baueBuchungTabelle($sql)
{
require ("db.inc.php");
if ($stmt = $pdo->prepare($sql)) {
$stmt->execute();
echo "<table id=\"zebra\">\n\t";
echo "<thead><tr><th>Nummer</th><th>Kurs</th><th>Dozent</th><th>Beginn</th><th>Ende</th><th>Name</th><th>Vorname</th><th>Bearbeiten</th></tr></thead>";
echo "<tbody>\n\t";
$count = 0;
while ($z = $stmt->fetch()) {
$count += 1;
$zebratyp = "ungerade";
echo "<tr ";
if ($count % 2 == 0) {
$zebratyp = "gerade";
}
echo "class=\"" . $zebratyp . "\">\n\t<td>" . htmlspecialchars($z['bnummer']) . "</td>\n\t<td>" . htmlspecialchars($z['kursTitel']) . "</td>\n\t<td>" . htmlspecialchars($z['dozentenName']) . "</td>\n\t<td>" . htmlspecialchars($z['beginn']) . "</td>\n\t<td>" . htmlspecialchars($z['ende']) . "</td>\n\t<td>" . htmlspecialchars($z['teilnehmerName']) . "</td>\n\t<td>" . htmlspecialchars($z['teilnehmerVorname']) . "</td>\n\t<td>" . "<a href=\"bbearbeiten.php?bnummer=" . htmlspecialchars($z['bnummer']) . "\">bearbeiten</a>" . "</td>\n</tr>";
}
echo "</tbody>\n</table>\n";
}
}
public function einfuegenSelect($tab, $val, $text, $def)
{
$s = "<select name=\"" . $val . "\" id=\"" . $val . "\">";
require ("db.inc.php");
$sql = "SELECT " . $val . ", " . $text . " FROM " . $tab;
if ($stmt = $pdo->prepare($sql)) {
$stmt->execute();
while ($z = $stmt->fetch()) {
$s = $s . "<option value=\"" . $z[0] . "\"";
if ($z[0] == $def) {
$s = $s . " selected";
}
$s = $s . ">" . $z[0] . " | " . $z[1] . "</option>";
}
$s = $s . "</select>";
return $s;
} else {
return false;
}
}
}
?>
+24
View File
@@ -0,0 +1,24 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Buchungen ausgeben</title>
<?php
require_once("buchung.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
?>
<h1>Buchungen</h1>
<div class="ausgabe">
<?php
$buchung = new buchung();
$buchung -> lesenAlleDaten();
?>
</div>
<p><a class="button" href="bbearbeiten.php">Neue Buchung anlegen</a></p>
</body>
</html>
+10
View File
@@ -0,0 +1,10 @@
<?php
try {
$pdo = new PDO ( 'mysql:dbname=kursverwaltung;host=localhost;charset=utf8', 'root', 'Feuerwehr1!' );
//$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch ( PDOException $e ) {
die ( $e->getMessage () );
}
?>
+81
View File
@@ -0,0 +1,81 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Dozent bearbeiten</title>
<?php
require_once("dozenten.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
?>
<?php
$dozent = new dozent();
if (isset($_POST["mode"])) {
if($_POST["mode"] == "null"){
$dozent->anlegen($_POST);
}
else {
$dozent->bearbeiten($_POST);
}
header("refresh:3;url=dozenten.php");
}
else {
?>
<div class="ausgabe">
<?php
$tData = array();
if (isset($_GET["doznr"])) {
$tData = $dozent->lesenDatensatz($_GET["doznr"]);
$doznr = $_GET["doznr"];
?>
<form action="dbearbeiten.php" method="POST">
<input type="hidden" id="mode" name="mode" value="<?php echo $doznr; ?>">
<label for="doznr">Dozentnummer: </label><input type="text" id="doznr" name="doznr" value="<?php echo $doznr; ?>" disabled><br>
<label for="name">Name: </label><input type="text" id="name" name="name" value="<?php echo $tData['name']; ?>"><br>
<label for="vname">Vorname: </label><input type="text" id="vname" name="vname" value="<?php echo $tData['vname']; ?>"><br>
<label for="plz">Postleitzahl: </label><input type="text" id="plz" name="plz" value="<?php echo $tData['plz']; ?>"><br>
<label for="plz">Ort: </label><input type="text" id="ort" name="ort" value="<?php echo $tData['ort']; ?>"><br>
<label for="plz">Straße: </label><input type="text" id="strasse" name="strasse" value="<?php echo $tData['strasse']; ?>"><br>
<label for="hausnr">Hausnummer: </label><input type="text" id="hausnr" name="hausnr" value="<?php echo $tData['hausnr']; ?>"><br>
<label for="telefon1">Telefon 1: </label><input type="text" id="telefon1" name="telefon1" value="<?php echo $tData['telefon1']; ?>"><br>
<label for="telefon2">Telefon 2: </label><input type="text" id="telefon2" name="telefon2" value="<?php echo $tData['telefon2']; ?>"><br>
<label for="email">E-Mail: </label><input type="text" id="email" name="email" value="<?php echo $tData['email']; ?>">
<p><input type="submit" value="Änderung speichern"></p>
</form>
<p><a class="button" href="dloeschen.php?doznr=<?php echo $doznr; ?>">Dozent löschen</a></p>
<?php
}
else {
?>
<form action="dbearbeiten.php" method="POST">
<input type="hidden" id="mode" name="mode" value="null">
<label for="doznr">Dozentnummer: </label><input type="text" id="doznr" name="doznr" value="AUTO" disabled><br>
<label for="name">Name: </label><input type="text" id="name" name="name" value=""><br>
<label for="vname">Vorname: </label><input type="text" id="vname" name="vname" value=""><br>
<label for="plz">Postleitzahl: </label><input type="text" id="plz" name="plz" value=""><br>
<label for="plz">Ort: </label><input type="text" id="ort" name="ort" value=""><br>
<label for="plz">Straße: </label><input type="text" id="strasse" name="strasse" value=""><br>
<label for="hausnr">Hausnummer: </label><input type="text" id="hausnr" name="hausnr" value=""><br>
<label for="telefon1">Telefon 1: </label><input type="text" id="telefon1" name="telefon1" value=""><br>
<label for="telefon2">Telefon 2: </label><input type="text" id="telefon2" name="telefon2" value=""><br>
<label for="email">E-Mail: </label><input type="text" id="email" name="email" value=""><br>
<input type="submit" value="Änderung speichern">
</form>
<?php
}
?>
</div>
<?php
}
?>
</body>
</html>
+30
View File
@@ -0,0 +1,30 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<meta charset="utf-8">
<title>Dozent löschen</title>
<?php
require_once("dozenten.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
?>
<?php
if(isset($_GET["doznr"])) {
$dozent = new dozent();
$dozent -> loeschen($_GET["doznr"]);
echo "<h2>Dozent gelöscht</h2>";
}
header("refresh:3; url=dozenten.php");
?>
</body>
</html>
+158
View File
@@ -0,0 +1,158 @@
<?php
class Dozent {
private $tabelle = "dozenten";
public function loeschen($id) {
require ("db.inc.php");
$sql = "DELETE FROM " . $this->tabelle . " WHERE doznr = :doznr";
if ($stmt = $pdo->prepare ( $sql )) {
$stmt->bindParam ( ':doznr', $id );
$stmt->execute ();
}
}
public function anlegen($felder) {
require ("db.inc.php");
$doznr = NULL;
$name = $felder ["name"];
$vname = $felder ["vname"];
$plz = $felder ["plz"];
$ort = $felder ["ort"];
$strasse = $felder ["strasse"];
$hausnr = $felder ["hausnr"];
$telefon1 = $felder ["telefon1"];
$telefon2 = $felder ["telefon2"];
$email = $felder ["email"];
$sql = "INSERT INTO " . $this->tabelle . " (doznr,
name,
vname,
plz,
ort,
strasse,
hausnr,
telefon1,
telefon2,
email)
VALUES (
:doznr,
:name,
:vname,
:plz,
:ort,
:strasse,
:hausnr,
:telefon1,
:telefon2,
:email)";
if ($stmt = $pdo->prepare ( $sql )) {
$param = array (
':doznr' => $doznr,
':name' => $name,
':vname' => $vname,
':plz' => $plz,
':ort' => $ort,
':strasse' => $strasse,
':hausnr' => $hausnr,
':telefon1' => $telefon1,
':telefon2' => $telefon2,
':email' => $email
);
if ($stmt->execute ($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
} else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function bearbeiten($felder) {
require ("db.inc.php");
$doznr = $felder ["mode"];
$name = $felder ["name"];
$vname = $felder ["vname"];
$plz = $felder ["plz"];
$ort = $felder ["ort"];
$strasse = $felder ["strasse"];
$hausnr = $felder ["hausnr"];
$telefon1 = $felder ["telefon1"];
$telefon2 = $felder ["telefon2"];
$email = $felder ["email"];
$sql = "UPDATE ". $this->tabelle . " SET
name = :name,
vname = :vname,
plz = :plz,
ort = :ort,
strasse = :strasse,
hausnr = :hausnr,
telefon1 = :telefon1,
telefon2 = :telefon2,
email = :email
WHERE doznr = :doznr";
if ($stmt = $pdo->prepare ( $sql )) {
$param = array (
':doznr' => $doznr,
':name' => $name,
':vname' => $vname,
':plz' => $plz,
':ort' => $ort,
':strasse' => $strasse,
':hausnr' => $hausnr,
':telefon1' => $telefon1,
':telefon2' => $telefon2,
':email' => $email);
if ($stmt->execute ($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
} else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function lesenDatensatz($id) {
require ("db.inc.php");
if ($stmt = $pdo->prepare ( "SELECT name, vname, plz, ort, strasse, hausnr, telefon1, telefon2, email FROM " . $this->tabelle . " WHERE doznr=:doznr" )) {
$stmt->bindParam ( ':doznr', $id );
$stmt->execute ();
return ($stmt ->fetch(PDO::FETCH_ASSOC));
} else {
return false;
}
}
public function lesenAlleDaten() {
require_once ("db.inc.php");
if ($stmt = $pdo->prepare ( "SELECT doznr, name, vname, plz, ort, strasse, hausnr, telefon1, telefon2, email FROM " . $this->tabelle . " ORDER BY name" )) {
$stmt->execute ();
echo "<table id=\"zebra\">\n\t";
echo "<thead><tr><th>Nummer</th><th>Name</th><th>Vorname</th><th>Plz</th><th>Ort</th><th>Straße</th><th>Haus-Nr.</th><th>Telefon 1</th><th>Telefon 2</th><th>E-Mail</th><th>Bearbeiten</th></tr></thead>";
echo "<tbody>\n\t";
$count = 0;
while ( $z = $stmt->fetch () ) {
$count += 1;
$zebratyp = "ungerade";
echo "<tr ";
if ($count % 2 == 0) {
$zebratyp = "gerade";
}
echo "class=\"" . $zebratyp . "\">\n\t<td>"
. htmlspecialchars ( $z['doznr'])
. "</td>\n\t<td>" . htmlspecialchars ( $z['name'])
. "</td>\n\t<td>" . htmlspecialchars ( $z['vname'] )
. "</td>\n\t<td>" . htmlspecialchars ( $z['plz'])
. "</td>\n\t<td>" . htmlspecialchars ( $z['ort'] )
. "</td>\n\t<td>" . htmlspecialchars ( $z['strasse'])
. "</td>\n\t<td>" . htmlspecialchars ( $z['hausnr'] )
. "</td>\n\t<td>" . htmlspecialchars ( $z['telefon1'])
. "</td>\n\t<td>" . htmlspecialchars ( $z['telefon2'] )
. "</td>\n\t<td>" . htmlspecialchars ( $z['email'] )
. "</td>\n\t<td>" . "<a href=\"dbearbeiten.php?doznr=" . htmlspecialchars ( $z['doznr'] ) . "\">bearbeiten</a>" . "</td>\n</tr>";
}
echo "</tbody>\n</table>\n";
}
}
}
?>
+24
View File
@@ -0,0 +1,24 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Dozenten ausgeben</title>
<?php
require_once("dozenten.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
?>
<h1>Dozenten</h1>
<div class="ausgabe">
<?php
$dozent = new dozent();
$dozent->lesenAlleDaten();
?>
</div>
<p><a class="button" href="dbearbeiten.php">Neuen Dozenten anlegen</a></p>
</body>
</html>
+14
View File
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Kursverwaltung</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
?>
<h1>Kursverwaltung</h1>
</body>
</html>
+77
View File
@@ -0,0 +1,77 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Kurs bearbeiten</title>
<?php
require_once("kurs.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
$kurs = new kurs();
if (isset($_POST["mode"])) {
if($_POST["mode"] == "null"){
$kurs->anlegen($_POST);
}
else {
$kurs->bearbeiten($_POST);
}
header("refresh:3;url=kurse.php");
}
else {
?>
<div class="ausgabe">
<?php
$tData = array();
if (isset($_GET["kursnr"])) {
$tData = $kurs->lesenDatensatz($_GET["kursnr"]);
$kursnr = $_GET["kursnr"];
?>
<form action="kbearbeiten.php" method="POST">
<input type="hidden" id="mode" name="mode" value="<?php echo $kursnr; ?>">
<label for="kursnr">Kursnummer: </label><input type="text" id="kursnr" name="kursnr" value="<?php echo $kursnr; ?>" disabled><br>
<label for="ressort">Ressort: </label><input type="text" id="ressort" name="ressort" value="<?php echo $tData['ressort']; ?>"><br>
<label for="titel">Titel: </label><input type="text" id="titel" name="titel" value="<?php echo $tData['titel']; ?>"><br>
<label for="beschreibung">Beschreibung: </label><input type="text" id="beschreibung" name="beschreibung" value="<?php echo $tData['beschreibung']; ?>"><br>
<label for="preis">Preis: </label><input type="text" id="preis" name="preis" value="<?php echo $tData['preis']; ?>"><br>
<p><input type="submit" value="Änderung speichern"></p>
</form>
<p><a class="button" href="kloeschen.php?kursnr=<?php echo $kursnr; ?>">Kurs löschen</a></p>
<?php
}
else {
?>
<form action="kbearbeiten.php" method="POST">
<input type="hidden" id="mode" name="mode" value="null">
<label for="kursnr">Kursnummer: </label><input type="text" id="kursnr" name="kursnr" value="AUTO" disabled><br>
<label for="ressort">Ressort: </label><input type="text" id="ressort" name="ressort" value=""><br>
<label for="titel">Titel: </label><input type="text" id="titel" name="titel" value=""><br>
<label for="beschreibung">Beschreibung: </label><input type="text" id="beschreibung" name="beschreibung" value=""><br>
<label for="preis">Preis: </label><input type="text" id="preis" name="preis" value=""><br>
<p><input type="submit" value="Änderung speichern"></p>
</form>
<?php
}
?>
</div>
<?php
}
?>
</body>
</html>
+25
View File
@@ -0,0 +1,25 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Kurs löschen</title>
<?php
require_once("kurs.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
if(isset($_GET["kursnr"])) {
$kurs = new kurs();
$kurs -> loeschen($_GET["kursnr"]);
echo "<h2>Kurs gelöscht</h2>";
}
header("refresh:3; url=kurse.php");
?>
</body>
</html>
+131
View File
@@ -0,0 +1,131 @@
<?php
class Kurs {
private $tabelle = "kurs";
public function loeschen($id) {
require("db.inc.php");
$sql = "DELETE FROM " .$this->tabelle ." WHERE kursnr = :kursnr";
if ($stmt = $pdo -> prepare($sql)) {
$stmt->bindParam(':kursnr', $id);
$stmt -> execute();
}
}
public function anlegen($felder) {
require("db.inc.php");
$kursnr = NULL;
$ressort = $felder["ressort"];
$titel = $felder["titel"];
$beschreibung = $felder["beschreibung"];
$preis = $felder["preis"];
$sql = "INSERT INTO " .$this->tabelle ." (kursnr,
ressort,
titel,
beschreibung,
preis)
VALUES (:kursnr, :ressort, :titel, :beschreibung, :preis)";
if ($stmt = $pdo -> prepare($sql)) {
$param= array(':kursnr' => $kursnr,
':ressort' => $ressort,
':titel' => $titel,
':beschreibung' => $beschreibung,
':preis' => $preis);
if($stmt -> execute($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
}
else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function bearbeiten($felder) {
require("db.inc.php");
$kursnr = $felder["mode"];
$ressort = $felder["ressort"];
$titel = $felder["titel"];
$beschreibung = $felder["beschreibung"];
$preis = $felder["preis"];
$sql = "UPDATE " .$this->tabelle ." SET
ressort = :ressort,
titel = :titel,
beschreibung = :beschreibung,
preis = :preis
WHERE kursnr = :kursnr";
if ($stmt = $pdo -> prepare($sql)) {
$param= array(':kursnr' => $kursnr,
':ressort' => $ressort,
':titel' => $titel,
':beschreibung' => $beschreibung,
':preis' => $preis);
if($stmt -> execute($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
}
else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function lesenDatensatz($id) {
require("db.inc.php");
if ($stmt = $pdo -> prepare("SELECT ressort, titel, beschreibung, preis FROM " .$this->tabelle ." WHERE kursnr=:kursnr")) {
$stmt->bindParam(':kursnr',$id);
$stmt -> execute();
return($stmt->fetch(PDO::FETCH_ASSOC));
}
else {
return false;
}
}
public function lesenAlleDaten() {
require_once("db.inc.php");
if ($stmt = $pdo -> prepare("SELECT kursnr, ressort, titel, beschreibung, preis FROM " .$this->tabelle ." ORDER BY ressort, titel")) {
$stmt -> execute();
echo "<table id=\"zebra\">\n\t";
echo "<thead><tr><th>Nummer</th><th>Ressort</th><th>Titel</th><th>Beschreibung</th><th>Preis</th><th>Bearbeiten</th></tr></thead>";
echo "<tbody>\n\t";
$count = 0;
while ($z = $stmt -> fetch()) {
$count+= 1;
$zebratyp = "ungerade";
echo "<tr ";
if($count % 2 == 0) {
$zebratyp = "gerade";
}
echo "class=\"" .$zebratyp
."\">\n\t<td>"
. htmlspecialchars($z['kursnr'])
."</td>\n\t<td>"
. htmlspecialchars($z['ressort'])
."</td>\n\t<td>"
. htmlspecialchars($z['titel'])
."</td>\n\t<td>"
. htmlspecialchars($z['beschreibung'])
."</td>\n\t<td>"
. htmlspecialchars($z['preis'])
."</td>\n\t<td>"
."<a href=\"kbearbeiten.php?kursnr=" .htmlspecialchars($z['kursnr']) ."\">bearbeiten</a>"
."</td>\n</tr>";
}
echo "</tbody>\n</table>\n";
}
}
}
?>
+24
View File
@@ -0,0 +1,24 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Kurse ausgeben</title>
<?php
require_once("kurs.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
?>
<h1>Kurse</h1>
<div class="ausgabe">
<?php
$kurs = new kurs();
$kurs->lesenAlleDaten();
?>
</div>
<p><a class="button" href="kbearbeiten.php">Neuen Kurs anlegen</a></p>
</body>
</html>
+57
View File
@@ -0,0 +1,57 @@
<?php
function lesenDatensatz($id, $tabelle)
{
require_once("db.inc.php");
$mysqli->close();
}
function lesenAlleDaten($tabelle)
{
require_once("db.inc.php");
if ($stmt = $mysqli -> prepare("SELECT name, vname, plz, ort, strasse, hausnr, telefon1, email FROM teilnehmer")) {
$stmt -> execute();
$stmt -> bind_result($name, $vname, $plz, $ort, $strasse, $hausnr, $telefon1, $email);
echo "<table id=\"zebra\">\n\t";
echo "<tbody>\n\t";
$count = 0;
while ($stmt -> fetch()) {
$count+= 1;
$zebratyp = "ungerade";
echo "<tr ";
if($count % 2 == 0) {
$zebratyp = "gerade";
}
echo "class=\"" .$zebratyp
."\">\n\t<td>"
. htmlspecialchars($name)
."</td>\n\t<td>"
. htmlspecialchars($vname)
."</td>\n\t<td>"
. htmlspecialchars($plz)
."</td>\n\t<td>"
. htmlspecialchars($ort)
."</td>\n\t<td>"
. htmlspecialchars($strasse)
."</td>\n\t<td>"
. htmlspecialchars($hausnr)
."</td>\n\t<td>"
. htmlspecialchars($telefon1)
."</td>\n\t<td>"
. htmlspecialchars($email)
."</td>\n</tr>";
}
echo "</table>";
}
$stmt -> close();
$mysqli->close();
}
?>
+8
View File
@@ -0,0 +1,8 @@
<div>
<a class="button" href="index.php">Kursverwaltung</a>
<a class="button" href="teilnehmer.php">Teilnehmer</a>
<a class="button" href="termine.php">Termine</a>
<a class="button" href="kurse.php">Kurse</a>
<a class="button" href="dozenten.php">Dozenten</a>
<a class="button" href="buchung.php">Buchung</a>
</div>
+82
View File
@@ -0,0 +1,82 @@
body {
background-color: #324873;
color: #F2EB80;
}
.button {
color: #F2EB80;
background-color: #324873;
text-decoration: none;
display: inline-block;
min-width: 110px;
height: 25px;
text-align: center;
margin: 10px;
padding: 10px;
border-style: groove;
border-width: 1pt;
border-radius: 5px;
}
#zebra {
color: #F2EB80;
border-collapse: collapse;
border: 2px solid;
border-color: #D94E4E;
}
#zebra thead {
background-color: #F2EB80;
color: #324873;
}
#zebra td {
padding: 6px;
}
#zebra tbody tr.gerade td {
background-color: #A6333D;
}
#zebra tbody tr.ungerade td {
background-color: #D96B2B;
}
.ausgabe {
display: inline-block;
margin: 15px 5px 5px 5px;
padding: 5px;
border-style: groove;
border-width: 1pt;
border-radius: 5px;
}
form {
background-color: #324873;
color: #F2EB80;
margin: 5px;
padding: 10px;
}
input {
margin: 5px;
padding: 2px;
border-style: solid;
border-width: 1pt;
border-radius: 5px;
}
label {
display: inline-block;
min-width: 150px;
}
select {
margin: 5px;
padding: 2px;
border-style: solid;
border-width: 1pt;
border-radius: 5px
}
+104
View File
@@ -0,0 +1,104 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Teilnehmer bearbeiten</title>
<?php
require_once ("teilnehmer.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once ("navigation.inc.php");
?>
<?php
$teilnehmer = new teilnehmer ();
if (isset ( $_POST ["mode"] )) {
if ($_POST ["mode"] == "null") {
$teilnehmer->anlegen ( $_POST );
}
else {
$teilnehmer->bearbeiten ( $_POST );
}
header ( "refresh:3;url=teilnehmer.php" );
}
else {
?>
<div class="ausgabe">
<?php
$tData = array ();
if (isset ( $_GET ["tnummer"] )) {
$tData = $teilnehmer->lesenDatensatz ( $_GET ["tnummer"] );
$tnummer = $_GET ["tnummer"];
?>
<form action="" method="POST">
<input type="hidden" id="mode" name="mode"
value="<?php echo $tnummer; ?>"> <label for="tnummer">Teilnehmernummer:
</label> <input type="text" id="tnummer" name="tnummer"
value="<?php echo $tnummer; ?>" disabled> <br> <label for="name">Name:
</label> <input type="text" id="name" name="name"
value="<?php echo $tData['name']; ?>"> <br> <label for="vname">Vorname:
</label> <input type="text" id="vname" name="vname"
value="<?php echo $tData['vname']; ?>"> <br> <label for="plz">Postleitzahl:
</label> <input type="text" id="plz" name="plz"
value="<?php echo $tData['plz']; ?>"> <br> <label for="plz">Ort:
</label> <input type="text" id="ort" name="ort"
value="<?php echo $tData['ort']; ?>"> <br> <label for="plz">Straße:
</label> <input type="text" id="strasse" name="strasse"
value="<?php echo $tData['strasse']; ?>"> <br> <label
for="hausnr">Hausnummer: </label> <input type="text" id="hausnr"
name="hausnr" value="<?php echo $tData['hausnr']; ?>"> <br> <label
for="telefon1">Telefon 1: </label> <input type="text" id="telefon1"
name="telefon1" value="<?php echo $tData['telefon1']; ?>"> <br>
<label for="telefon2">Telefon 2: </label> <input type="text"
id="telefon2" name="telefon2"
value="<?php echo $tData['telefon2']; ?>"> <br> <label
for="email">E-Mail: </label> <input type="text" id="email"
name="email" value="<?php echo $tData['email']; ?>">
<p>
<input type="submit" value="Änderung speichern">
</p>
</form>
<p>
<a class="button"
href="tloeschen.php?tnummer=
<?php echo $tnummer; ?>">Teilnehmer löschen </a>
</p>
<?php
} else {
?>
<form action="" method="POST">
<input type="hidden" id="mode" name="mode" value="null"> <label
for="tnummer">Teilnehmernummer: </label> <input type="text"
id="tnummer" name="tnummer" value="AUTO" disabled> <br> <label
for="name">Name: </label> <input type="text" id="name" name="name"
value=""> <br> <label for="vname">Vorname: </label> <input
type="text" id="vname" name="vname" value=""> <br> <label
for="plz">Postleitzahl: </label> <input type="text" id="plz"
name="plz" value=""> <br> <label for="plz">Ort: </label> <input
type="text" id="ort" name="ort" value=""> <br> <label for="plz">Straße:
</label> <input type="text" id="strasse" name="strasse" value=""> <br>
<label for="hausnr">Hausnummer: </label> <input type="text"
id="hausnr" name="hausnr" value=""> <br> <label for="telefon1">Telefon
1: </label> <input type="text" id="telefon1" name="telefon1"
value=""> <br> <label for="telefon2">Telefon 2: </label> <input
type="text" id="telefon2" name="telefon2" value=""> <br> <label
for="email">E-Mail: </label> <input type="text" id="email"
name="email" value=""> <br> <input type="submit"
value="Änderung speichern">
</form>
<?php
}
?>
</div>
<?php
}
?>
</body>
</html>
+240
View File
@@ -0,0 +1,240 @@
<?php
class Teilnehmer {
private $tabelle = "teilnehmer";
public function lesenDatensatz($id) {
require("db.inc.php");
$sql = "SELECT name, vname, plz, ort, strasse,
hausnr, telefon1, telefon2, email
FROM " .$this->tabelle ."
WHERE tnummer=:tnummer";
if ($stmt = $pdo -> prepare($sql)) {
$stmt->bindParam(':tnummer', $id);
$stmt -> execute();
return($stmt->fetch(PDO::FETCH_ASSOC));
}
return(false);
}
public function loeschen($id) {
require("db.inc.php");
$sql = "DELETE FROM "
.$this->tabelle
." WHERE tnummer = :tnummer";
if ($stmt = $pdo -> prepare($sql)) {
$stmt->bindParam(':tnummer', $id);
$stmt -> execute();
}
}
public function anlegen() {
require("db.inc.php");
$tnummer = NULL;
$name = $_POST["name"];
$vname = $_POST["vname"];
$plz = $_POST["plz"];
$ort = $_POST["ort"];
$strasse = $_POST["strasse"];
$hausnr = $_POST["hausnr"];
$telefon1 = $_POST["telefon1"];
$telefon2 = $_POST["telefon2"];
$email = $_POST["email"];
/* $sql = "INSERT INTO " .$this->tabelle ." (
tnummer, name, vname,
plz, ort, strasse, hausnr,
telefon1, telefon2, email)
VALUES (
:tnummer, :name, :vname,
:plz, :ort, :strasse, :hausnr,
:telefon1, :telefon2, :email)";
if ($stmt = $pdo -> prepare($sql)) {
$param = array(
':tnummer' => $tnummer,
':name' => $name,
':vname'=>$vname,
':plz'=>$plz,
':ort'=>$ort,
':strasse'=>$strasse,
':hausnr'=>$hausnr,
':telefon1'=>$telefon1,
':telefon2'=>$telefon2,
':email'=> $email);
*/
$sql = "INSERT INTO " .$this->tabelle ." (
tnummer, name, vname,
plz, ort, strasse, hausnr,
telefon1, telefon2, email)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
if ($stmt = $pdo -> prepare($sql)) {
$param = array($tnummer, $name, $vname, $plz, $ort, $strasse, $hausnr, $telefon1, $telefon2, $email);
if($stmt -> execute($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
}
else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function bearbeiten() {
require("db.inc.php");
$tnummer = $_POST["mode"];
$name = $_POST["name"];
$vname = $_POST["vname"];
$plz = $_POST["plz"];
$ort = $_POST["ort"];
$strasse = $_POST["strasse"];
$hausnr = $_POST["hausnr"];
$telefon1 = $_POST["telefon1"];
$telefon2 = $_POST["telefon2"];
$email = $_POST["email"];
$sql = "UPDATE ". $this->tabelle . " SET
name = :name,
vname = :vname,
plz = :plz,
ort = :ort,
strasse = :strasse,
hausnr = :hausnr,
telefon1 = :telefon1,
telefon2 = :telefon2,
email = :email
WHERE tnummer = :tnummer";
if ($stmt = $pdo -> prepare($sql)) {
$param = array(
':tnummer' => $tnummer,
':name' => $name,
':vname'=>$vname,
':plz'=>$plz,
':ort'=>$ort,
':strasse'=>$strasse,
':hausnr'=>$hausnr,
':telefon1'=>$telefon1,
':telefon2'=>$telefon2,
':email'=> $email);
if($stmt -> execute($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
}
else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function lesenAlleDaten() {
$sql = "SELECT tnummer, name, vname, plz,
ort, strasse, hausnr,
telefon1, telefon2, email
FROM " .$this->tabelle ."
ORDER BY name";
$this->baueTeilnehmerTabelle($sql);
}
/*public function suchen() {
$sql = "SELECT tnummer, name, vname, plz,
ort, strasse, hausnr,
telefon1, telefon2, email
FROM " .$this->tabelle ."
WHERE";
$count = 0;
foreach($_POST As $feld => $wert) {
if(!empty($wert)) {
if($count > 0) {
$sql = $sql ." AND ";
}
$count += 1;
$sql = $sql ." " .$feld ." LIKE '%" .$wert ."%'";
}
}
$sql = $sql ." ORDER BY name";
$this->baueTeilnehmerTabelle($sql);
} */
public function suchen() {
$sql = "SELECT tnummer, name, vname, plz, ort, strasse, hausnr, telefon1, telefon2, email FROM $this->tabelle WHERE";
$count = 0;
foreach ($_POST as $index => $wert) {
if (!empty($wert)) {
if ($count > 0) {
$sql .= " AND ";
}
$count++;
$sql .= " $index LIKE '%".$wert."%'";
}
}
$sql .= "ORDER BY tnummer";
//echo $sql;
$this->baueteilnehmertabelle($sql);
}
private function baueTeilnehmerTabelle($sql) {
require_once("db.inc.php");
if ($stmt = $pdo -> prepare($sql)) {
$stmt -> execute();
echo "<table id=\"zebra\">\n\t";
echo "<thead>
<tr>
<th>Nummer</th><th>Name</th><th>Vorname</th><th>Plz</th>
<th>Ort</th><th>Straße</th><th>Haus-Nr.</th><th>Telefon 1</th>
<th>Telefon 2</th><th>E-Mail</th><th>Bearbeiten</th>
</tr>
</thead>";
echo "<tbody>\n\t";
$count = 0;
while ($z = $stmt -> fetch()) {
//echo "<pre>", print_r($z), "</pre>";
$count += 1;
$zebratyp = "ungerade";
echo "<tr ";
if($count % 2 == 0) {
$zebratyp = "gerade";
}
echo "class=\"" .$zebratyp
."\">\n\t<td>"
. htmlspecialchars($z['tnummer'])
."</td>\n\t<td>"
. htmlspecialchars($z['name'])
."</td>\n\t<td>"
. htmlspecialchars($z['vname'])
."</td>\n\t<td>"
. htmlspecialchars($z['plz'])
."</td>\n\t<td>"
. htmlspecialchars($z['ort'])
."</td>\n\t<td>"
. htmlspecialchars($z['strasse'])
."</td>\n\t<td>"
. htmlspecialchars($z['hausnr'])
."</td>\n\t<td>"
. htmlspecialchars($z['telefon1'])
."</td>\n\t<td>"
. htmlspecialchars($z['telefon2'])
."</td>\n\t<td>"
. htmlspecialchars($z['email'])
."</td>\n\t<td>"
."<a href=\"tbearbeiten.php?tnummer="
.htmlspecialchars($z['tnummer'])
."\">bearbeiten</a>"
."</td>\n</tr>";
}
echo "</tbody>\n</table>\n";
}
}
}
?>
+27
View File
@@ -0,0 +1,27 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Teilnehmerliste ausgeben</title>
<?php
require_once("teilnehmer.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
?>
<h1>Teilnehmer</h1>
<div class="ausgabe">
<?php
$teilnehmer = new Teilnehmer();
$teilnehmer->lesenAlleDaten();
?>
</div>
<p>
<a class="button" href="tbearbeiten.php">Neuen Teilnehmer anlegen</a>
<a class="button" href="tsuchen.php">Teilnehmer suchen</a>
</p>
</body>
</html>
+102
View File
@@ -0,0 +1,102 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Termin bearbeiten</title>
<?php
require_once ("termin.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once ("navigation.inc.php");
$termin = new termin();
if (isset($_POST["mode"])) {
if ($_POST["mode"] == "null") {
$termin->anlegen($_POST);
} else {
$termin->bearbeiten($_POST);
}
header("refresh:3;url=termine.php");
} else {
?>
<div class="ausgabe">
<?php
$tData = array();
if (isset($_GET["termnr"])) {
$tData = $termin->lesenDatensatz($_GET["termnr"]);
$termnr = $_GET["termnr"];
?>
<form action="termbearbeiten.php" method="POST">
<input type="hidden" id="mode" name="mode"
value="<?php echo $termnr; ?>"> <label for="termnr">Terminnummer:
</label><input type="text" id="termnr" name="termnr"
value="<?php echo $termnr; ?>" disabled><br> <label for="kursnr">Kurs:
</label><?php echo $termin->einfSelect("kurs", "kursnr", "titel", $tData['kursnr']); ?><br>
<label for="doznr">Dozent: </label><?php echo $termin->einfSelect("dozenten", "doznr", "name", $tData['doznr']); ?><br>
<label for="beginn">Beginn: </label><input type="text" id="beginn"
name="beginn" value="<?php echo $tData["beginn"]; ?>"><br> <label
for="ende">Ende: </label><input type="text" id="ende" name="ende"
value="<?php echo $tData["ende"]; ?>"><br> <label for="dauer">Dauer:
</label><input type="text" id="dauer" name="dauer"
value="<?php echo $tData["dauer"]; ?>"><br> <label
for="minanzahl">Min Teilnehmer: </label><input type="text"
id="minanzahl" name="minanzahl"
value="<?php echo $tData["minanzahl"]; ?>"><br> <label
for="maxanzahl">Max Teilnehmer: </label><input type="text"
id="maxanzahl" name="maxanzahl"
value="<?php echo $tData["maxanzahl"]; ?>"><br> <label
for="vort">Raum: </label><input type="text" id="vort" name="vort"
value="<?php echo $tData["vort"]; ?>"><br>
<p>
<input type="submit" value="Änderung speichern">
</p>
</form>
<p>
<a class="button"
href="termloeschen.php?termnr=<?php echo $termnr; ?>">Termin löschen</a>
</p>
<?php
} else {
?>
<form action="termbearbeiten.php" method="POST">
<input type="hidden" id="mode" name="mode" value="null"> <label
for="termnr">Terminnummer: </label><input type="text" id="termnr"
name="termnr" value="AUTO" disabled><br> <label for="kursnr">Kurs:
</label><?php echo $termin->einfSelect("kurs", "kursnr", "titel", Null); ?><br>
<label for="doznr">Dozent: </label><?php echo $termin->einfSelect("dozenten", "doznr", "name", Null); ?><br>
<label for="beginn">Beginn: </label><input type="text" id="beginn"
name="beginn" value=""><br> <label for="ende">Ende: </label><input
type="text" id="ende" name="ende" value=""><br> <label
for="dauer">Dauer: </label><input type="text" id="dauer"
name="dauer" value=""><br> <label for="minanzahl">Min
Teilnehmer: </label><input type="text" id="minanzahl"
name="minanzahl" value=""><br> <label for="maxanzahl">Max
Teilnehmer: </label><input type="text" id="maxanzahl"
name="maxanzahl" value=""><br> <label for="vort">Raum: </label><input
type="text" id="vort" name="vort" value=""><br>
<p>
<input type="submit" value="Änderung speichern">
</p>
</form>
<?php
}
?>
</div>
<?php
}
?>
</body>
</html>
+208
View File
@@ -0,0 +1,208 @@
<?php
class Termin
{
private $tabelle = "termine";
public function loeschen($id)
{
require ("db.inc.php");
$sql = "DELETE FROM " . $this->tabelle . " WHERE termnr = :termnr";
if ($stmt = $pdo->prepare($sql)) {
$stmt->bindParam(':termnr', $id);
$stmt->execute();
}
}
public function anlegen($felder)
{
require ("db.inc.php");
$termnr = NULL;
$kursnr = $felder["kursnr"];
$doznr = $felder["doznr"];
$beginn = $felder["beginn"];
$ende = $felder["ende"];
$dauer = $felder["dauer"];
$minanzahl = $felder["minanzahl"];
$maxanzahl = $felder["maxanzahl"];
$vort = $felder["vort"];
$sql = "INSERT INTO " . $this->tabelle . " (termnr,
kursnr,
doznr,
beginn,
ende,
dauer,
minanzahl,
maxanzahl,
vort)
VALUES (:termnr,
:kursnr,
:doznr,
:beginn,
:ende,
:dauer,
:minanzahl,
:maxanzahl,
:vort)";
if ($stmt = $pdo->prepare($sql)) {
$param = array(
':termnr' => $termnr,
':kursnr' => $kursnr,
':doznr' => $doznr,
':beginn' => $beginn,
':ende' => $ende,
':dauer' => $dauer,
':minanzahl' => $minanzahl,
':maxanzahl' => $maxanzahl,
':vort' => $vort
);
if ($stmt->execute($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
} else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function bearbeiten($felder)
{
require ("db.inc.php");
$termnr = $felder["mode"];
$kursnr = $felder["kursnr"];
$doznr = $felder["doznr"];
$beginn = $felder["beginn"];
$ende = $felder["ende"];
$dauer = $felder["dauer"];
$minanzahl = $felder["minanzahl"];
$maxanzahl = $felder["maxanzahl"];
$vort = $felder["vort"];
$sql = "UPDATE " . $this->tabelle . " SET
kursnr = :kursnr,
doznr = :doznr,
beginn = :beginn,
ende = :ende,
dauer = :dauer,
minanzahl = :minanzahl,
maxanzahl = :maxanzahl,
vort = :vort
WHERE termnr = :termnr";
if ($stmt = $pdo->prepare($sql)) {
$param = array(
':termnr' => $termnr,
':kursnr' => $kursnr,
':doznr' => $doznr,
':beginn' => $beginn,
':ende' => $ende,
':dauer' => $dauer,
':minanzahl' => $minanzahl,
':maxanzahl' => $maxanzahl,
':vort' => $vort
);
if ($stmt->execute($param)) {
echo "<h2>Datensatz erfolgreich gespeichert!</h2>\n";
} else {
echo "<h2>Fehler beim Speichern!</h2>\n";
}
}
}
public function lesenDatensatz($id)
{
require ("db.inc.php");
if ($stmt = $pdo->prepare("SELECT termine.termnr,
termine.kursnr,
kurs.titel,
termine.doznr,
dozenten.name,
dozenten.vname,
termine.beginn,
termine.ende,
termine.dauer,
termine.minanzahl,
termine.maxanzahl,
termine.vort
FROM termine
INNER JOIN kurs ON termine.kursnr = kurs.kursnr
INNER JOIN dozenten ON termine.doznr = dozenten.doznr
WHERE termnr=:termnr")) {
$stmt->bindParam(':termnr', $id);
$stmt->execute();
return ($stmt->fetch(PDO::FETCH_ASSOC));
} else {
return false;
}
}
public function lesenAlleDaten()
{
$sql = "SELECT termine.termnr,
kurs.titel As kursTitel,
dozenten.name As dozentenName,
termine.beginn,
termine.ende,
termine.dauer,
termine.minanzahl,
termine.maxanzahl,
termine.vort
FROM termine
JOIN kurs ON termine.kursnr = kurs.kursnr
JOIN dozenten ON termine.doznr = dozenten.doznr
ORDER BY termine.beginn";
$this->baueTerminTabelle($sql);
}
private function baueTerminTabelle($sql)
{
require_once ("db.inc.php");
if ($stmt = $pdo->prepare($sql)) {
$stmt->execute();
echo "<table id=\"zebra\">\n\t";
echo "<thead><tr><th>Nummer</th><th>Kurs</th><th>Dozent</th><th>Beginn</th><th>Ende</th><th>Dauer</th><th>Min-Teiln</th><th>Max-Teiln</th><th>Raum</th><th>Bearbeiten</th></tr></thead>";
echo "<tbody>\n\t";
$count = 0;
while ($z = $stmt->fetch()) {
$count += 1;
$zebratyp = "ungerade";
echo "<tr ";
if ($count % 2 == 0) {
$zebratyp = "gerade";
}
echo "class=\"" . $zebratyp . "\">\n\t<td>" . htmlspecialchars($z['termnr']) . "</td>\n\t<td>" . htmlspecialchars($z['kursTitel']) . "</td>\n\t<td>" . htmlspecialchars($z['dozentenName']) . "</td>\n\t<td>" . htmlspecialchars($z['beginn']) . "</td>\n\t<td>" . htmlspecialchars($z['ende']) . "</td>\n\t<td>" . htmlspecialchars($z['dauer']) . "</td>\n\t<td>" . htmlspecialchars($z['minanzahl']) . "</td>\n\t<td>" . htmlspecialchars($z['maxanzahl']) . "</td>\n\t<td>" . htmlspecialchars($z['vort']) . "</td>\n\t<td>" . "<a href=\"termbearbeiten.php?termnr=" . htmlspecialchars($z['termnr']) . "\">bearbeiten</a>" . "</td>\n</tr>";
}
echo "</tbody>\n</table>\n";
}
}
public function einfSelect($tab, $val, $text, $def)
{
$s = "<select name=\"" . $val . "\" id=\"" . $val . "\">";
require ("db.inc.php");
$sql = "SELECT " . $val . ", " . $text . " FROM " . $tab;
if ($stmt = $pdo->prepare($sql)) {
$stmt->execute();
while ($z = $stmt->fetch()) {
$s = $s . "<option value=\"" . $z[0] . "\"";
if ($z[0] == $def) {
$s = $s . " selected";
}
$s = $s . ">" . $z[0] . " | " . $z[1] . "</option>";
}
$s = $s . "</select>";
return $s;
} else {
return false;
}
}
}
?>
+24
View File
@@ -0,0 +1,24 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Termine ausgeben</title>
<?php
require_once("termin.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
?>
<h1>Termine</h1>
<div class="ausgabe">
<?php
$termin = new termin();
$termin -> lesenAlleDaten();
?>
</div>
<p><a class="button" href="termbearbeiten.php">Neuen Termin anlegen</a></p>
</body>
</html>
+27
View File
@@ -0,0 +1,27 @@
<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Termin löschen</title>
<?php
require_once("termin.class.php");
?>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<?php
require_once("navigation.inc.php");
if(isset($_GET["termnr"])) {
$termin = new termin();
$termin -> loeschen($_GET["termnr"]);
echo "<h2>Termin gelöscht</h2>";
}
header("refresh:3; url=termine.php");
?>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More