Installation von PPBB V2.0
1. MySQL-Tabellen
Das Script benötigt fünf Tabellen mit dem Namen users, categories, posts, threads, profiles.
1.1 Tabelle [users]
- user_id [INT] [AUTOINCREMENT]
- username [VARCHAR]
- user_password [CHAR]
- user_email [VARCHAR]
- user_level [VARCHAR]
- user_date [DATETIME]
1.2 Tabelle [categories]
- cat_id [INT] [AUTOINCREMENT]
- cat_name [VARCHAR]
- cat_description [TEXT]
1.3 Tabelle [posts]
- post_id [INT] [AUTOINCREMENT]
- post_content [TEXT]
- thread_id [INT]
- post_by [VARCHAR]
- post_created [DATETIME]
- user_id [INT]
- FOREIGN KEY (thread_id) REFERENCES threads(thread_id) ON DELETE CASCADE ON UPDATE CASCADE
- FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
1.4 Tabelle [threads]
- thread_id [INT] [AUTOINCREMENT]
- thread_title [VARCHAR]
- category_id [INT]
- thread_created [DATETIME]
- thread_updated [DATETIME]
- thread_by [VARCHAR]
- user_id [INT]
- FOREIGN KEY (category_id) REFERENCES categories(cat_id) ON DELETE CASCADE ON UPDATE CASCADE
- FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
1.5 Tabelle [profiles]
- profile_id [INT] [AUTOINCREMENT]
- profile_image [VARCHAR]
- profile_about [VARCHAR]
- profile_location [VARCHAR]
- profile_videogames [VARCHAR]
- profile_movies [VARCHAR]
- user_id [INT]
- FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
Alternativ kann auch der unten aufgeführte SQL-Code über phpMyAdmin eingefügt werden.
CREATE TABLE `users` (
`user_id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL,
`user_password` char(255) NOT NULL,
`user_email` varchar(50) NOT NULL,
`user_level` varchar(50) NOT NULL DEFAULT 'user',
`user_date` datetime NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `username_unique` (`username`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
CREATE TABLE `categories` (
`cat_id` int(10) NOT NULL AUTO_INCREMENT,
`cat_name` varchar(100) NOT NULL,
`cat_description` text NOT NULL,
PRIMARY KEY (`cat_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
CREATE TABLE `posts` (
`post_id` int(10) NOT NULL AUTO_INCREMENT,
`post_content` text NOT NULL,
`thread_id` int(11) NOT NULL,
`post_by` varchar(30) NOT NULL,
`post_created` datetime NOT NULL,
`user_id` int(10) NOT NULL,
PRIMARY KEY (`post_id`),
KEY `posts_ibfk_1` (`thread_id`),
KEY `posts_ibfk_2` (`user_id`),
CONSTRAINT `posts_ibfk_1` FOREIGN KEY (`thread_id`) REFERENCES `threads` (`thread_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `posts_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
CREATE TABLE `threads` (
`thread_id` int(10) NOT NULL AUTO_INCREMENT,
`thread_title` varchar(50) NOT NULL,
`category_id` int(10) NOT NULL,
`thread_created` datetime NOT NULL,
`thread_updated` datetime NOT NULL,
`thread_by` varchar(30) NOT NULL,
`user_id` int(10) NOT NULL,
PRIMARY KEY (`thread_id`),
KEY `category_id` (`category_id`),
KEY `threads_ibfk_2` (`user_id`),
CONSTRAINT `threads_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`cat_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `threads_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
CREATE TABLE `profiles` (
`profile_id` int(10) NOT NULL AUTO_INCREMENT,
`profile_image` varchar(250) NOT NULL DEFAULT 'no_profile_picture.jpg',
`profile_about` varchar(500) NOT NULL,
`profile_location` varchar(25) NOT NULL,
`profile_videogames` varchar(500) NOT NULL,
`profile_movies` varchar(500) NOT NULL,
`user_id` int(10) NOT NULL,
PRIMARY KEY (`profile_id`),
KEY `user_id` (`user_id`),
CONSTRAINT `profiles_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
2. Verbindungsaufbau zur Datenbank
Der Verbindungsaufbau zur Datenbank erfolgt über [includes/db.php] [Z4-7], wo Name des Servers, Name der Datenbank, Nutzername und Passwort eingetragen werden müssen.
3. Administrationszugang und Registrierung
Ein Administrationszugang wird angelegt, indem man sich über [signup.php] registriert und dann über phpMyAdmin das [user_level] von [user] auf [administrator] ändert. Registrierte Nutzern haben automatisch das [user_level] [user].
4. BB-Code
Der Inhalt eines Beitrages kann mit dem integrierten BB-Code formatiert werden.
- [B]FETT[/B]
- [H]ÜBERSCHRIFT[/H]
- [A]ABSATZ[/A]
- [IMG_B]GROßES BILD[/IMG_B]
- [IMG_S]KLEINES BILD[/IMG_S]
- [LIST][LIST_ITEM]LISTE[/LIST_ITEM][/LIST]
Changelog
Update zur Version 2.0 (16.10.2024)
- Änderung des Passwort-Hashings von SHA1 auf password_hash mit PASSWORD_DEFAULT.
- Anpassung der Ausgabe von Fehlermeldungen.
- Integration eines Profilbildsystems.
- Optimierung der Datenbankabfragen.
- Integration einer Funktion, die es einem Administrator ermöglicht Posts zu editieren oder Threads umzubenennen.
- Anpassung von Design, HTML und CSS.
Update zur Version 1.2 (20.09.2024)
- Integration einer Funktion, die eine Fehlermeldung ausgibt, wenn keine Daten vorhanden sind.
- Anpassung des Designs.
Update zur Version 1.1 (18.09.2024)
- Anzeigen des jeweiligen Nutzernamens in der Navigation.
- Integration von Nutzerprofilen.
- Integration einer Funktion, damit Nutzerprofile vom jeweiligen Nutzer editiert werden können.
- Anpassung der Registrierung, sodass automatisch eine Profilseite erstellt wird.
- Verlinkung der Threads und Beiträge mit dem jeweiligen Nutzer.