unerklärliche phänomäne (HTML/PHP)

Peace ;)

Ich habe mal ein wenig mit PHP rumgespielt.

Jetzt treten da lustige Problemchen auf.

erstmal das Szenario:

Die Datei index.php befinden sich im /opt/lampp/htdocs Verzeichnis.
In demselbigen das Verzeichnis cnt, wo die zu inkludierenden Dateien lagern.

Im Verzeichnis cnt befinden sich folgende dateien:

head.php
index.php
footer.php

Der Quellcode der ersten index.php:

PHP:
<?php 
include('cnt/head.php');
?>

<?php
switch ($_GET['page'])
{
    case 'portal':
        $page = 'cnt/index.php';
        break;
    case 'port':
        $page = 'cnt/porto.php';
        break;
    default: 
        $page = 'cnt/index.php';
}
include($page);
?>

<?php 
include('cnt/footer.php');
?>

Die 3 dateien des cnt-verzeichnises bilden folgenden code:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>GraphiX | Portal</title>
    <meta name="description" content="Portfolio of Christian Schulze, Germany.">
    <meta name="keywords" content="Portfolio Christian Schulze Graphix zeex crac webdesign">
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="header">
    <ul id="nav">
        <li><a href="?page=portal">Portal</a></li>
        <li><a href="?page=port">Portfolio</a></li>
        <li><a href="#">Link 3</a></li>
    </ul><!-- Navigation Ende -->
    <h1>GraphiX</h1>
</div><!-- Header Ende -->


<div id="main">
    <div id="content">
        <h2>Inhalt</h2>
    </div><!-- content ende -->

    <div id="sidebar">
        <ul id="recposts">
            <li>Letzte Posts</li>
            <li>Letzte posts</li>
        </ul><!-- letzte posts ende -->
    </div><!-- sidebar ende -->
</div><!-- main ende -->

</body>
</html>

Tja, ich weis echt nicht weiter.
Der W3 validator gibt mir 24 errors a la:
(habs reinkopiert ;) )

Line 13, Column 8: character " " not allowed in attribute specification list
<ul id="nav">

wtf?

genau der selbe quellcode hat hier:
http://www.gfx-sector.de/Tutorial-Html-4-01-Vs-Html-5.t28044.html
einen sticker bekommen -.-


Desweiteren der Output Shiretokos (firefox 3.5.1):

Code:
# Â Â Â Â  Â Â Â Â  Â Â Â Â  Â Â Â Â  Â Â Â Â  Â Â Â Â  Â Â Â Â Â Â Â Â Portal
# Â Â Â Â Â Â Â Â Portfolio
#         Link 3
         
GraphiX
             
Inhalt
#                                Letzte Posts
#             Letzte posts
            Â

Unter Midori wird alles richtig dargestellt, nur ich kann keine links anklicken -.-

ich hoffe alle infos sind da,
ich bin verwirrt ...
(oder zu müde? :D)
lg

achja: irgendwelche sicherheitslücken bisher?
 
das ist kein php code in deinem cnt ordner, das ist html, wo du einmal <?php ?> drumrum geschrieben hast.
 
Also korrigier mich wenn ich falsch liege, aber zwischen <?php und ?> muss meines Wissens nach PHP Code liegen. Du hast da ja HTML. Wundert mich jetzt gerade nicht, dass es da knallt.

cu
serow
 
Die <?php ?> Tags werden vom WBB hier hinzugefügt, weil der Code als
PHP:
 eingefügt wurde statt als [code].

Das wird also nicht der Fehler sein.
 
LX hat natürlich Recht :D

Was mir gerade noch aufgefallen ist, du includierst ja vor dem Code auch noch head.php. Was steht denn darin? Kannst du vielleicht mal den kompletten HTML-Code posten, also so wie es letztendlich im Browser steht? Vielleicht kommt da ja dann erst der Fehler, denn wie gesagt, der HTML-Code, den du gepostet hast, ist valide.
 
Ja das is der Oben, aber ich kann ihn trotzdem nochmal kopieren.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
    <title>GraphiX | Portal</title>
    <meta name="description" content="Portfolio of Christian Schulze, Germany.">
    <meta name="keywords" content="Portfolio Christian Schulze Graphix zeex crac webdesign">
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="header">
    <ul id="nav">
        <li><a href="?page=portal">Portal</a></li>
        <li><a href="?page=port">Portfolio</a></li>
        <li><a href="#">Link 3</a></li>
    </ul><!-- Navigation Ende -->
    <h1>GraphiX</h1>
</div><!-- Header Ende -->


<div id="main">
    <div id="content">
        <h2>Inhalt</h2>
    </div><!-- content ende -->

    <div id="sidebar">
        <ul id="recposts">
            <li>Letzte Posts</li>
            <li>Letzte posts</li>
        </ul><!-- letzte posts ende -->
    </div><!-- sidebar ende -->
</div><!-- main ende -->

</body>
</html>

Das ist der unter Midori ↑

Das unter Firefox:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>GraphiX | Portal</title>
    <meta name="description" content="Portfolio of Christian Schulze, Germany.">
    <meta name="keywords" content="Portfolio Christian Schulze Graphix zeex crac webdesign">
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="header">

    <ul id="nav">
        <li><a href="?page=portal">Portal</a></li>
        <li><a href="?page=port">Portfolio</a></li>
        <li><a href="#">Link 3</a></li>
    </ul><!-- Navigation Ende -->
    <h1>GraphiX</h1>
</div><!-- Header Ende -->


<div id="main">
    <div id="content">
        <h2>Inhalt</h2>
    </div><!-- content ende -->

    <div id="sidebar">
        <ul id="recposts">
            <li>Letzte Posts</li>

            <li>Letzte posts</li>
        </ul><!-- letzte posts ende -->
    </div><!-- sidebar ende -->
</div><!-- main ende -->

</body>
</html>


/e: Wenn ich den code hier rauskopier und beim w3 validator wieder einfüg' und prüfen lasse bekomme ich nur noch 2 fehler...
Werde ihn nochmal komplett neu aufsetzen...
Aber mcih interessiert, wie sone scheisse überhaupt ablaufen kann =/

lg
 
Oh, da hab ich das oben falsch verstanden.

Ich habe gerade beide Varianten nochmal durch den Validator überprüfen lassen und beide sind ok. So richtig nachvollziehen, wieso das nicht geht, kann ich also gerade nicht. Ist die Seite schon übers Internet erreichbar, damit man mal ein wenig probieren kann?
 
nope, das design ist noch offen, deswegen habe ich da noch nichts gemacht xP

aber ich werde da vlt mal was hochladen.
immerhin geht es ja bei dir und bei mir nicht.

lg
 
Du hast da in deinen Firefox-Ausgaben so seltsame Zeichen drinstehen. Das könnte auf ein Zeichensatzproblem hindeuten. Deswegen wäre es besser, die Seiten irgendwo hochgeladen zu haben, da man das hier in Forum nicht nachvollziehen kann.
 
Ist oben:

zeex.bplaced.de/1
zeex.bplaced.de/2

(Vorsicht, die 2te lässt iwie immer Browser abchmieren xP)

lg
 
Ich hab's mir mal angeschaut. Das Problem ist, dass Firefox nicht erkennt, dass die Seite in Unicode übertragen wird. Wenn man manuell den Zeichensatz von ISO-8859-1 auf UTF-8 umstellt, dann wird alles richtig angezeigt.

Versuch mal, diese Zeile
Code:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
durch diese zu ersetzen:
Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Bei mir hat's danach funktioniert. Ich wusste gar nicht, das Firefox jetzt Case-Sensitive parst... Naja, wieder was gelernt ;)

EDIT:
Zu deiner zweiten Seite: was hast du denn da angestellt? Wenn ich die mit wget herunterlade, dann hört der gar nicht mehr auf zu laden! Nach 4 MB hab ich's dann abgebrochen. Das ist wahrscheinlich auch der Grund, warum der Firefox abschmiert.
 
Oha, danke ;)

Das ist ja simpel.

Werds gleich mal abändern.

Das zweite ist übrigens genau dasselbe wie beim ersten.
Nur neu geschrieben.
Schon lustig.

lg

/e:

Also ich hab mal deine zeile kopiert und eingefügt.
Aber lustigerweise ist es irrelevant, ob ichs groß oder kleinschreibe.
Immerhin stellt FF das jetzt richtig dar ^^

Achja:

Shiretoko zeigt mir keinerlei bullets vor den listen an.
CSS ist noch leer xO

lg
 
Hallo,

in deinem zweiten hast du wohl irgendwo eine Endlosrekursion drin.
Schau mal, ob du irgendwie was inkludierst, was sich wieder selbst inkludiert.

Und ansonsten kannst du den Zeichensatz auch gleich vom Webserver korrekt übertragen lassen.
Schreib dazu einfach ein
PHP:
header('Content-Type: text/html; charset=utf-8');
ganz an den Anfang der PHP-Datei, die direkt aufgerufen wird.
Dann überträgt der Webserver schon den richtigen Zeichensatz per HTTP-Header und der Browser muss das nicht mehr aus dem HTML rausparsen.

mfg, metax.
 
Fatal error: Call to undefined function php header() in /opt/lampp/htdocs/index.php on line 1

*rofl*

Das ist ein cooler Vorschlag.
Leider funzt er irgendwie nicht.

Ich werds komplett neu tippen. Alles.

Wenn wer ideen hat, wieso das alles passierte, dann immer her damit.
Ich danke für die Ideen.

lg
/e:

Im 2ten ist lustigerweise zu 100% der selbe code wie beim 1ten.
Unverständlich.
Aber gut...kann man wohl nichts machen.
 
Du hast da bei dir irgendwo ein böses Problem mit dem Zeichensatz.
Mit welchem Editor erstellst du denn die files?

Fatal error: Call to undefined function php header() in /opt/lampp/htdocs/index.php on line 1

Da ist wieder so ein  das PHP wohl zum Funktionsnamen zählt.
Außerdem meckert der Validator bei mir genau an den Stellen, wo diese Zeichen auftreten. Der scheint also das gleiche Problem wie der Firefox zu haben.
Ich vermute desshalb, dass das Problem nicht in deinem PHP oder HTML Code zu suchen ist, sondern in deinem Editor und wie dieser die Dateien abspeichert.
 
Zurück
Oben