Wieso dieser komplexe Quellcode?

Moleman

Erfahrenes Mitglied
Hi,
ich habe vor einer Woche angefangen PHP zu lernen. Es hat auch schon vieles geklappt.
Da ich schon forgeschrittene C++ Kenntnisse habe war es bisher auch noch nicht sehr schwierig.
Allerdings habe ich folgendes Problem.
Wenn ihr euch mal folgende Seit anschaut:
http://www.csc-hollen.de/php/index.php
erkennt ihr auf dem ersten Blick sicher nichts.
Aber wenn man sich mal den Quelltext anschaut, erkennt man das dort sehr oft wieder ein Header etc drin steht.
Das kann ich mir irgendwie nicht erklären. Habt ihr eine Idee wie ich das weg bekomme?



Gruß
Reno
 
Ohne den PHP Code kann man da nur Vermutungen anstellen.
Die Seite setzt sich vermutlich aus mehreren html Dokumenten zusammen ( wahrscheinlich geladen mit include oder require ), die alle einen Head und Body besitzen, daher werden auch mehrere Heads und Bodys am ende Ausgegeben.
 
Hier sind die Quellcodes.
Vielleicht bringen sie euch ja etwas..

Index.php:
PHP:
<?php
    error_reporting(E_ALL);
    include "inc/config.php"; // die Konfigurationsdateien lesen.

    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

    // Session starten wenn ?section=admin geöffnet wurde
    if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
        session_start();
        if(!isset($_SESSION['IP'])) {
            $_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
        }
        if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
            echo "<p class=\"error\">\n";
            echo "    Sie dürfen nicht die Session von einem\n";
            echo "    anderen user Benutzten. Bitte benutzen sie\n";
            echo "    folgenden Link um zur Homepage zu gelangen.\n";
            echo "    <a href=\"/\">Zurück zur Homepage</a>\n";
            echo "</p>\n";
            die(); // Aus Sicherheitsgründen die Abarbeitung sofort beenden
        }
    }

    if(get_magic_quotes_gpc()) {
        array_stripslashes($_GET);
        array_stripslashes($_POST);
        array_stripslashes($_COOKIE);
    }

    echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
    echo "         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
    echo "<html>\n";
    echo "    <head>\n";
    echo "        <title>Meine Seite</title>\n";
    echo "        <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
    echo "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
    echo "    </head>\n";
    echo "    <body>\n";

    echo "        <div id=\"root\">\n"; // ganz oberer Div-Holder
    echo "            <div id=\"banner\">\n"; // banner
    include "banner.php";
    echo "            </div>\n";
    echo "            <div id=\"links\">\n"; // linkes Menu
    include "menu.php";
    echo "            </div>\n";
    echo "            <div id=\"mitte\">\n"; // In der Mitte der Inhalt
    include "inhalt.php"; 
    echo "            </div>\n";
    echo "            <br style=\"clear:both;\" />\n"; // css-float beenden
    echo "       </div>\n";

    echo "    </body>\n";
    echo "</html>\n";
?>

banner.php:
PHP:
<?php
echo "<body bgcolor=\"#666666\"\n>";
echo "<img src=\"avatar_2914.jpg\" alt=\"Banner\">\n";
?>

Menu.php
PHP:
<body alink="#FFFFFF" vlink="#FFFFFF" link="#FFFFFF" text="#FFFFFF">
<ol>
    <li><a href="index.php">News</a></li>
    <li><a href="index.php?section=member">Members</a></li>
    <li><a href="index.php?section=gb">Gästebuch</a></li>
	<li><a href="index.php?section=admin">Admin</a></li>
    <!-- usw. -->
</ol>
<?php
    $sql = "SELECT
                COUNT(*) as Anzahl
            FROM
                Online
            WHERE
                IP = '".$_SERVER['REMOTE_ADDR']."'";
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);
    if($row['Anzahl']) {
        // Nur Datum Updaten
        $sql = "UPDATE
                    Online
                SET
                    Datum = NOW()
                WHERE
                    IP = '".$_SERVER['REMOTE_ADDR']."'";
        mysql_query($sql) OR die(mysql_error());
    } else {
        // Neuer eintra
        $sql = "INSERT INTO Online
                    (IP, Datum)
                VALUES
                    ('".$_SERVER['REMOTE_ADDR']."', NOW())";
        mysql_query($sql) OR die(mysql_error());
    }

    // alte Datensätze löschen
    $sql = "DELETE FROM
                Online
            WHERE
                DATE_SUB(NOW(), INTERVAL 1 MINUTE) > Datum";
    mysql_query($sql) OR die(mysql_error());

    // Anzahl Ausgeben
    $sql = "SELECT
                COUNT(*) as Anzahl
            FROM
                Online";
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);

    echo "User Online: ".$row['Anzahl']."<br />";
?>
</body>
</html>

Inhalt.php
PHP:
<?php
	include "config.php";

    if(isset($_GET['section']) AND isset($dateien[$_GET['section']])) {
        include $dateien[$_GET['section']];
    } else {
        include $dateien['news'];
    }
?>

News.php:
PHP:
<?php
    // news.php
	error_reporting(E_ALL);
	
    echo "<h2>News</h2>\n";
    $sql = "SELECT
                Titel,
                Text,
                Datum
            FROM
                News
            ORDER BY
                Datum DESC";
    $result = mysql_query($sql) OR die(mysql_error());
    if(mysql_num_rows($result)) {
        while($row = mysql_fetch_assoc($result)) {
            echo "<div class=\"newseintrag\">\n";
            echo "    <div class=\"Titel\">\n";
            echo $row['Titel'];
            echo "    </div>\n";
            echo "    <div class=\"Datum\">\n";
            echo $row['Datum'];
            echo "    </div>\n";
            echo "    <div class=\"Text\">\n";
            echo nl2br($row['Text']); // \n in <br /> umwandeln
            echo "    </div>\n";
            echo "</div>\n";
        }
    } else {
        echo"<p>Keine News vorhanden</p>\n";
    }
?>

Bitte verzeiht mir, wenn die Fehler sehr gravierend sind. Ich probier mich an PHP wie gesagt erst eine Woche. :-(
Danke für jede Hilfe.

Gruß
Moleman
 
Ist ja klar:
Du bindest in dein PHP-Skript (schon mit <body>, ...) nochmal eine Datei mit <body>, ... ein, daher sind in der Deti auf einam soviele Sachen.
 
Zurück