Ein eigenes Forum erstellen

Moin!

Ich habe bisher noch keine Erfahrung mit PHP, in der Schule vor langer Zeit ein wenig HTML gemacht, privat (und teilweise in der Schule) ein wenig SQL gelernt und ansonsten fast ausschließlich mit Java gearbeitet. Ich möchte mich nun in meiner Freizeit ein wenig fortbilden und dabei gleichzeitig etwas Nützliches für den Eigengebrauch kreieren, deshalb fiel die Entscheidung auf ein Forum als Langzeitprojekt.

Da das Projekt wohl für einen totalen PHP Noob nicht ganz einfach wird, werde ich in Zukunft wohl häufiger hier nachfragen und um Hilfe bitten.

Nun erstmal zu den ersten Schritten:

Welche hilfreichen Pflichtlektüren muss ich für mein Projekt auf jeden Fall lesen?
Beim Googeln bin ich leider nur auf Forenbeiträge gestoßen, in denen es um ganz oder teilweise vorprogrammierte Baukaste-Foren ging. Ich möchte aber nach Möglichkeit alles „from scratch“ selbst machen.

Was ist der erste Arbeitsschritt?
So ganz spontan würde ich einfach mal die Gestaltung des Layouts mit Banner, Textfeldern usw. raten. Das ist zumindest der einfachste Arbeitsschritt (zumindest bis zu einem gewissen Punkt). *g*

MfG,
Hello World

Hallo,

Zum Üben würde ich wie folgt vorgehen.

  1. Session
    0.1 GET / POST logik für Menüparameter .
  2. Login / Registrierung
  3. (Datenbank bzw Login) Rechte Verwaltung (Admin / User / Gast)
  4. Administration : Foren Bereiche Eintragen (Admin)
    3.1. Benutzer : Einen Thread ( schreiben /editieren / löschen)
    3.2. Benutzer : Eine Antwort ( schreiben /editieren / löschen).
  5. 'Alle : Navigation durchs Forum (öffentlich )
  6. 'User : Navigation durchs Forum (mitglieder )

$_POST , $_SESSION und include sind wohl die wichtigsten Anfänge.
Datenbank und Tabellen und Querys kommen danach , dann templates und vielleicht noch javascript und noch JQuery um crossbrowser scripting zu ermöglichen.

Und viel viel try and error .

Hallo,

die Lektüre die du auf jeden Fall immer in einem Browserfenster bereit halten solltest ist php.net (die offizielle PHP-Dokumentation).

Für den Start ist es schon mal sehr gut, wenn du ein Ziel hast. Ein rudimentäres Forum eignet sich super dafür, weil du Dinge wie Session/Datenbanken/PHP zu HTML und so weiter mit dabei hast. 

Allerdings solltest du dabei auch vorsichtig sein, denn gerade bei Dingen wie Login oder Daten aus einer Datenbank die von Benutzern erstellt werden Anzeigen, ist auf die Sicherheit zu achten. Viele Tutorials eignen sich daher meiner Meinung nach als Einstieg nicht, weil sie auf die Gefahren nicht wirklich eingehen. 

Als erstes kann ich das Tutorial von Quake.net als Einstieg empfehlen:
http://tut.php-quake.net/de/Grundsätzliche Dinge lernst du dort Schritt für Schritt. Fang damit aber am besten nicht direkt online an, sondern Lokal oder aber Online hinter einem Schutz (zum Beispiel mit einer .htaccess). Wenn du das durch hast, beschäftige dich mit Begriffen wie SQLI/RFI/LFI/XSS, also grob damit, wie man deinen PHP-Code angreifen könnte und dann natürlich, wie du programmierst um das zu verhindern.

Danach kannst du dann mit dem was du gelernt hast, dein Forum anfangen. Bei einem solchen Projekt wie einem Forum würde ich empfehlen mir Aufzuschreiben, was das Forum alles können soll und dann zu versuchen daraus kleine Teilaufgaben zu erstellen. Das hält die Motivation auch oben, weil das Fertigstellen einer Teilaufgabe schonmal einen Erfolg darstellt. Prinzipiell ist es für den Anfang wohl gar nicht so schlecht von einem Design heraus zu starten und dabei HTML-Seiten einfach mit Funktion zu füllen. Wie du später am besten Arbeitest solltest du meiner Meinung nach selbst herausfinden.

In PHP entscheidest du dich dann irgenwann ob du prozedual oder objektorientiert oder beides gemischt entwickelst, danach kannst du dich mal über die verschiedenen Design-Pattern schlau machen, die später vor allem helfen ein Projekt zu warten oder auch andere Programmierer mit ins Bot zu nehmen. Aber bis dahin ist es noch ein langer weg.

Viele Grüße,
Matthias

Hi,

etwas Nützliches für den Eigengebrauch kreieren, deshalb fiel
die Entscheidung auf ein Forum als Langzeitprojekt.

zunächst solltest Du überlegen, ob es ein Forum, ein Board oder eine Hybridversion wie vBulletin werden soll. Oder für den Anfang vielleicht auch nur ein Gästebuch, welches dann später zu einem Board oder Forum erweitert werden kann - was bei strukturell modularer Programmierung nach dem EVA-Prinzip leicht zu bewerkstelligen wäre.

Was ist der erste Arbeitsschritt?
So ganz spontan würde ich einfach mal die Gestaltung des
Layouts mit Banner, Textfeldern usw. raten.

Zu Anfang sind erstmal die Inhalte zu erstellen und mit HTML auszuzeichnen. Das Layout über CSS wäre dann der nächste Schritt, wobei Du sicherlich keine Werbebanner, sondern einen Header meinst, oder? :wink:
Wenn dann das Eintragsformular steht, fängt die Programmierung an: die Eingaben entgegennehmen, prüfen und verarbeiten, um schließlich die Ausgaben vorzubereiten.

Gruß
Ingo

Moin moin,

ich kann mich da nur den Vorrednern anschließen. Zunächst die Grundlagen klären, und wenn diese stehen, dann kann man loslegen das Design zu entwerfen. Nachdem das Design steht kommt dann die Umsetzung durch die entsprechende Programmierung. Hier sollte man auch das Ergebnis mit verschiedenen Browsern testen, da alle Browser spezielle Features bieten, die vom Standard abweichen, und dann zu bösen Überraschungen führen können, wenn man das Ergebnis immer nur mit einem Browser (speziell IE) kontrolliert hat

Eine nicht zu unterschätzende Eckbedingung sollte auch die „designte Screengöße“ sein. Auch wenn heute viele Bildschirme sehr hohe Auflösungen bieten, so sollte man dennoch versuchen, das Design für eine „normale“ Auflösung von

  •   800x600 bis max 1024x768 (4:3 Format, Computerstandard)

  • 1024x640 bis max 1228x768 (16:10 Widescreenformat)

  • 1024x485 bis max 1280x720 (16:9 Super-Widescreenformat, HD720p)

zu entwickeln, da heute der Trend immer stärker zu mobilen Geräten geht und hier die maximalen Auflösungen deutlich geringer liegen. Auch Beamer, als Darstellungsgeräte, für Präsentationen oder Großprojektionen haben im Consumer- und semiprofessionellen Bereich in der Regel nur physikalische Auflösungen zwischen 800x600 und 1280x720 Pixeln.