• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

html/php problem

Shrax

Mitglied
Ich poste es deswegen im html Forum da ich denke es liegt an dem Html.
Allerdings ist es ein php fehler also wenn es nicht passt von den Mods bitte nach eigenen ermessen verschieben.


So das Problem. Zuerst dachte ich alles zu validieren würde das Problem beseitigen aber der fehler steckt anscheinend tiefer.

Ich include per php den content in die index.php wärenddessen die index.htm als Startseite eingestellt ist.

Also besucher kommt auf die Seite und ist auf index.htm.
Klickt er auf einen link kommt er in die index.php mit dem entsprechenden content.

So und jetzt habe ich das alles so gemacht das Problem ist nur
wenn ich bei der index.php vor dem doctype die xml angabe mit dem zeichensatz stehen habe spuckt er beim laden einer anderen Seite folgenden fehler aus:
Parse error: syntax error, unexpected T_STRING in /users/internet-studio/www/index.php on line 1
Was ja anscheinend an der Zeile 1 liegt. Zuerst dachte ich es wäre im php script zum includen des contents aber wenn ich das entverne kommt der Fehler immernoch. Als ich allerdings die xml angabe mit Zeichensatz in der index.php entfernte ging es.

Was kann ich jetzt da am besten machen, oder liegt der fehler wo anders?

http://internet-studio.bplaced.net


Edit: Ich glaube ich hab mich geirrt mit der xml angabe geht es glaub ich auch nicht. Blicke da momentan nicht ganz durch.
 
Zuletzt bearbeitet:
Ohne die xml angabe sagt mir Validome das irgentwas mit dem Zeichensatz nicht stimmt oder so. Der sagt die codierung wäre utf, doch ich Speichere es mit notepad++ immer als ANSI ab.
HTML / XHTML / XML / WML Validator
Du hast:
HTML:
<meta http-equiv="content-type" content="charset=ISO-8859-1" />
also laut meinem Handbuch müsste es heissen:
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
Vielleicht kommt daher die Meldung.
Mfg
 
Habs versucht, leider immernoch der Fehler.
Schlau werd ich nur daraus;
Fügen Sie entweder eine XML-Deklaration mit einer Angabe einer Zeichenkodierung am Anfang des Dokumentes ein (z. B. <?xml version="1.0" encoding="iso-8859-1"?>, oder veranlassen Sie Ihren Server das Senden eines entsprechenden HTTP-Header (bei PHP mit header('Content-Type: text/html; charset=iso-8859-1');).
Da keine gültige Kodierungsabgabe vorhanden ist, wurde dieses Dokument per Fallback mit UTF-8 verarbeitet.
Doch dann geht ja das php nichtmehr >,<
 
Doch dann geht ja das php nichtmehr >,<
Warum nicht? Gib es dann doch mit PHP aus in der ersten Zeile:
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";

edit: das Forum nimmt die Maskierung raus, darum ohne PHPCode-Tag.
 
ich hatte den fehler auch mal.
der kopf hier ist bei beiden validatoren als korrekt eingestuft:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
   <meta http-equiv="content-style-type" content="text/css" />

   <link href="file.ext" rel="stylesheet" type="text/css" />
</head>

Nils aka XraYSoLo
 
Also bei diesem Kopf wo alle Angaben von deinem drin sind
bemängelt ers trozdem immernoch.
(Meta angaben werden noch ausgefüllt)

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
     
    <head><!-- Start head -->
<!-- META und Stylesheets -->
        <title></title>
            <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
            <meta http-equiv="content-style-type" content="text/css" />
                <meta name="description" content="" />
                <meta name="keywords" content="" />
                <meta name="author" content="" />
                <meta name="content-autor" content="" />
                <meta name="web-url" content="" />
                <meta name="robots" content="index, follow" />
                <meta name="content-language" content="de" />
                <meta name="language" content="de" />
                <meta name="date" content="" />
                <meta name="publisher" content="" />
                <meta name="copyright" content="" />
            <link href="css/style.css" type="text/css" rel="stylesheet" media="screen" />
            <link href="css/druckversion.css" type="text/css" rel="stylesheet" media="print" />
            <link href="css/img/favicon.ico" type="image/x-icon" rel="shortcut icon" />
<!-- Patches und Browserhacks -->
                <!--[if lt IE 7]>
                    <script src="js/suckerfish.js" type="text/javascript" language="JavaScript"></script>
                <![endif]-->
                
                <!--[if lt IE 7]>
                        <link href="css/hacks/ie6lnk.css" type="text/css" rel="stylesheet" media="screen" />
                <![endif]-->
                
                <!--[if IE 7]>
                        <link href="css/hacks/ie6lnk.css" type="text/css" rel="stylesheet" media="screen" />
                <![endif]-->
                
                <!--[if lt IE 6]>
                        <link href="css/hacks/ie6lnk.css" type="text/css" rel="stylesheet" media="screen" />
                <![endif]-->
                
    </head> <!-- End head -->
 
Den XML-Prolog kann man auch mit php schreiben lassen.

Code:
<?php
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

Weiterhin solltest Du den Header des Servers kontrollieren. Dieser hat nichts mit dem zu tun was du in deinen HTML-Code schreibst. Er wird quasi unsichtbar für den Server übertragen, ist aber von den Browsern (und dem Validator) mit einigen zwingend erforderlichen Informationen auszufüllen. Die Meldung

oder veranlassen Sie Ihren Server das Senden eines entsprechenden HTTP-Header (bei PHP mit header('Content-Type: text/html; charset=iso-8859-1')

sollte dich bereits darauf hingewiesen haben.

Meine Vermutung ist, dass im Header des Servers ein anderer Zeichensatz und/oder ein anderer Content-Type für php und/oder html Dateien geliefert wird. Diesen Header kann man z.B. mit der Firefox-Erweiterung LiveHTTPHeaders auslesen. Um eventuelle Fehler zu korrigieren müsstest Du entweder diese in der Webserverkonfiguration direkt ändern, oder per .htaccess oder über die header()-Funktion von php.
 
An den Server anzupassen mach ich erstmal nicht da wenn die Seite fertig ist ich sowiso umziehe.
Hab das Problem gelöst, schaue mir das auf dem neuen Server aber nocheinmal an. Für alle die das Thema lesen:


Ich hab in die index.htm diese erste Zeile geschrieben
HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
und in die index.php diese Zeile(n):
Code:
<?php
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";
?>
 
Zurück
Oben