MudGuard: 'header()' = <head></head> ?

Beitrag lesen

Hi,

jetzt wurde mir hier neulich geraten für die Zeichendatenübertragung - also für ein Forum - folgenden Header in PHP zu benutzen:
header("Content-Type: text/html; ccharset=ISO-8859-1");

es gibt aber die gleiche Angabe auch in HTML:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

  1. bewirken die Angaben das gleiche? und wenn nein: was ist der Unterschied?

Nein. header(...) ist für alle Typen von Ressourcen geeignet. <meta...> aber nur für HTML.
Die header-Funktion schreibt den String in den http-header, der noch vor der eigentlichen Ressource (z.B. HTML-Seite) übertragen wird.
Wenn Dein PHP aber beispielsweise eine Text-Datei ausgeben soll, MUSS die header-Funktion benutzt werden, um den content-type auf text/plain  zu setzen, da im einfachen Text ja kein meta möglich ist.
Abgesehen davon bewirken Deine Beispiele auch schon deshalb nicht das gleiche, wei das PHP-Beispiel kein charset definiert (nur ein ccharset ;-) )
Ansonsten bewirkt die meta-Angabe __für HTML-Ressourcen__ das selbe wie die PHP-header-Funktion

  1. wenn man ein Frameset mit Seiten drin hat, muß '<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">' im Head des Frameset stehen oder in den jeweiligen Seiten oder beides oder egal?

Sowohl die header-Information von PHP als auch die meta-Elemente im HTML gelten jeweils nur für die eine Ressource.
HTTP (das Übertragungsprotokoll) ist zustandslos, die Übertragung der Frameset-Ressource hat keinerlei Zusammenhang mit der Übertragung der im Frameset dargestellten Ressourcen.
cu,
Andreas

--
Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.