Also:
HTML ist sozusagen eine "Formatierungssprache". Mit HTML kannst du Texte zu Einheiten gruppieren und anderen Einheiten unterordnen, und zwar mit den Elementen nach dem Prinzip <tag>...</tag>. Das fängt mit den Tags html, header und body an, geht dann weiter mit p, div, img, table, tr, td und vielen mehr. Im Prinzip sind viele Tags untereinander austauschbar. Jeder Tag hat eine vom Browser vordefinierte Formatierung, was Abstände, Schriftart, Größe und Farbe betrifft. Theoretisch kannst du zum Beispiel jedes p durch div ersetzen oder jedes b durch i, du musst nur die Formatierung der Elemente anpassen.
Anfangs geschah die Formatierung nur in HTML, wodurch so Elemente wie b, i, u oder font entstanden, die sind aber von Vorvorgestern. Wer heute "vernünftig" was in HTML schreibt, der verzichtet auf all diese Elemente und macht die Formatierung mit CSS.
XHTML ist eine aufgeräumtere Version von HTML, die ein wenin von XML inspiriert ist. XML ist eine reine Struktursprache, die nicht zweckgebunden ist (wie HTML für Webseiten) und HTML auch sehr ähnlich. Der größte Unterschied ist der, dass es keine Elemente mehr nach dem Typ <tag> gibt, also ohne abschließenden Tag. Das war vorher vorallem bei img, br und hr der Fall. Stattdessen sind die Elemente dann vom Typ <tag /> aufgebaut.
CSS dient zur Formatierung von HTML-Elementen. Die großen Vorteile sind, dass du mehr Möglichkeiten zur Formatierung hast, die Formatierung in eine extra Datei auslagern und mit einem Ausdruck die Formatierung mehrere Elemente übernehmen kannst.
JavaScript (kurz JS) ist eine Sprache, die C++ sehr ähnlich ist und dazu dient HTML-Dateien in der Laufzeit zu verändern. Auch JavaSript kannst du sowohl in die HTML-Datei schreiben, als auch in eine extra Datei. JS läuft nach dem Laden der HTML-Datei weiter, weshalb die Webseite verändert werden kann, ohne dass die Seite neu geladen werden muss. Das wird zum Beispiel zum Ein- und Ausblenden von Texten über einen Button verwendet oder hier zum Einfügen der Smileys in das Text-Formular. Mit JS kann man aber auch viel Scheiße anrichten, weshalb das gern komplett deaktiviert und nur auf ausgewählten Seiten aktiviert wird. Hab ich allerdings selbst in meinem Browser nicht gemacht.
Der Nachteil an JS ist, es läuft auf dem Rechner der Person ab, die die Seite anzeigt. Du hast keine Kontrolle darüber und weißt weder, was der Browser davon ausführt, noch ob er überhaupt etwas ausführt.
JavaScript ist nicht zu verwechseln mit Java! Ich geh zwar davon aus, dass du das weißt, aber ich erwähne es lieder trotzdem mal.
PHP ist eine Skript-Sprache (wie JS übrigens auch), die C++ sehr ähnlich ist. Skript-Sprache heißt, dass es ein richtiges Programm ist, das jedoch nicht kompeliert ist, sondern in der Laufzeit kompeliert wird. Du hast also immer den Quellcode vorliegen, während bei einem C++-Programm du am Ende einen unleserlichen Binärcode hast.
Mit PHP selbst kannst du keine Webseiten erstellen, PHP wird aber normalerweise dazu genutzt HTML-Code zu generieren. Der Browser sieht letztendlich also auch nur eine HTML-Datei.
Da es ein Programm ist, kann es abhängig von äußeren Einflüssen verschiedene Inhalte ausgeben ("dynamisch"), während eine HTML-Datei immer "statisch" ist. Ein simples Beispiel, du könntest in die URL die Information "color=foo" packen und für foo Zeichenketten wie "red", "green" oder "blue" packen, darauf dann im Programm darauf reagieren und dann einen Text in einer der Farben formatieren. Meistens wird PHP aber zusammen mit der Datenbank
MySQL verwendet. In der befinden sich dann Foren-Beiträge und Benutzerdaten, die mit dem PHP-Programm aus der Datenbank ausgelesen und dann in ein immer gleiches Gerüst eingebettet werden. MySQL ist aber auch eigenständig und kann auf dem PC auch für anderen Programme als Datenbank dienen.
PHP hat den Vorteil, dass du genau weißt, was am Ende herauskommt, weil das Programm auf deinem Server abläuft und fertiger HTML-Code beim Browser ankommt. Außerdem kommt so keiner an deinen Code, denn den PHP-Code kann keiner lesen. Immer, wenn die Datei aufgerufen wird, läuft das PHP-Programm ab und der Browser empfängt nur das Ergebnis, nicht aber die Datei selbst.
Mit PHP kannst du nicht nur HTML-Daten generieren, auch CSS-Dateien, Bilder, Excel-Dateien, PDFs oder was auch immer.
So, was brauchst du jetzt wofür? Dazu geh ich vielleicht kurz auf die Entstehung dieser Seite hier ein. Das macht es denk ich ganz gut deutlich.
Am Anfang habe ich alles nur mit HTML und CSS gemacht. Das klappte am Anfang noch ganz gut, aber als ich dann ca. 100 Seiten hatte, war das nicht mehr praktikabel. Wenn ich dann zum Beispiel den Header (das Bild oben mit Haupt-Navigation) anpassen wollte, hießt das, ich musste in allen 100 Dateien den Header umändern. Deshalb bin ich irgendwann auf PHP umgestiegen. Dann generiert eine einzige PHP-Datei den Header und wirft dann den aufgeruften Inhalt aus. Das würde ich dir auf jeden Fall (!) empfehlen. Und wenn du auf MySQL verzichtest und einfach nur den HTML-Code zerpflückt stumpf in PHP-Dateien packst. Dann enthält zum Beispiel eine Datei das HTML-Gerüst und über die URL wird dann eine andere PHP-Datei mit dem richtigen Inhalt eingebunden. Das wäre aber die Variante für ganz Faule und im Grunde noch eine statische Webseite, trotz PHP, aber eben zerstückelt und damit leichter zu verändern. Besser wäre es mit einer Datenbank, in der du dann die Inhalte ablegst. Damit wird es jedoch aufwendiger und du musst dafür sorgen, dass keiner außer dir Zugriff auf die Datenbank bekommt. Entweder du trägst die Inhalte direkt in die Datenbank ein (dann kannst du dir den Zugriffs-Schutz sparen), oder du machst das (wie du es von Foren usw. kennst) über die Webseite. Dann brauchst du eine Benutzersteuerung, oder du erstellst eine extra Datei nur zum Eintragen der Inhalte, die du normalerweise vom Server löschst und nur bei Bedarf auf den Server kopierst. So kann die normalerweise keiner aufrufen. Wenn du das mit Benutzersteuerung machst, kannst du den "Account" aber auch ganz ohne MySQL in die PHP-Datei "hart" einbinden. Das ist dann wesentlich einfacher für dich, verhindert aber, dass mehrere Benutzer hinzugefügt werden können. Wenn du aber allein oder ein fester Kreis an Leuten daran was verändern, reicht das zur Not aus.
Du siehst also, du kannst selbst entscheiden, wie weit du es treibst, ein Minimum an PHP empfehle ich dir wie gesagt aber dringend. (X)HTML und CSS musst du aber so oder so beherrschen, dafür gibt es keinen Ersatz, JS, PHP und MySQL sind nur als Erweiterungen anzusehen. Du kannst also zuerst mal versuchen dich mit HTML und CSS herumzuschlagen und wenn das läuft, beginnst du mit PHP.
Für HTML und CSS kann ich dir
http://de.selfhtml.org empfehlen. Mit PHP hab ich mit
php-quake angefangen. Online ist jedoch eine überarbeitete Version, die alte fand ich besser, auch wenn die nicht ganz so aktuell ist. Aber hier fehlen mir mehr die Grundlagen. Die alte Version habe ich aber gesichert auf meinem Rechner

Wenn du mit PHP anfängst, wende dich aber noch mal an mich, dann gebe ich dir noch ein paar Tipps für den Anfang.
Zu HTML kann ich dir aber jetzt schon den Rat geben: "Programmiere" sauber! Alles schön strukturiert, immer einrücken und so. HTML ist zwar sehr fehlertolerant, das verarbeitet jeden Scheiß noch halbwegs, aber du tust dir langfristig keinen Gefallen damit.
Edit: Ach ja, ich benutze auch Notepad++, jedoch ausschließlich. Wollte mal auf Eclipse umsteigen, aber das ist mir einfach zu klobig.