index.php kann plötzlich nicht mehr aufgerufen werden

Gyrim

Grünschnabel
Hallo an alle, die mir eventuell helfen können.

Und zwar habe ich ein CMS mit php (5.0) und sql erstellt. Dafür habe ich zwei Bereiche erstellt: einen externen, für alle Nutzer/Leser des CMS lesbaren, Bereich (hier ist die index.php enthalten) und einen internen, per Login und Rechteverwaltung gesicherten, Bereich.

Nachdem ich den internen Bereich vom Code her und den externen Bereich insgesamt (Code und Darstellung) fertiggestellt hatte, wollte ich mich an die Darstellung des internen Bereichs ranmachen. Dies war Sonntag Morgen; zu diesem Zeitpunkt lief der externe Bereich noch ganz normal, es konnten alle Seiten ohne Probleme aufgerufen werden und es wurde alles korrekt dargestellt.

Als ich abends mit der Darstellung des internen Bereichs fertig war, habe ich mich aus dem System ausgeloggt (, um zum externen Bereich zu kommen) und wollte mir alles nochmal angucken. Bei dem Logout erschienen plötzlich Fehler seitens des Firefox, dass es Probleme gäbe mit den Cookies (meine Rechteverwaltung bzw. mein Login arbeitet mit session-ids).

Daraufhin wollte ich die index.php des externen Bereich manuell per Browser öffnen, was aber nicht gelang. Der Browser versucht unendlich lange, diese Seite zu öffnen und zeigt nur "Warten auf localhost.." an. Das gleiche Problem ist übrigens auch beim IE vorhanden.

Alle anderen Seiten und Darstellung (inklusive php-code / sql-abfragen), ob nun internen oder externen Seite funktioneren wunderbar und einwandfrei.
Die index.php bekomme ich nun nur noch zum Laufen, wenn ich den "connect-Befehl" zur Datenbank (über include) entferne. Dann wird die index.php zwar aufgerufen, aber natürlich mit Fehleranzeigen bzw. dem php-code.

Zu erwähnen sei darüber hinaus, dass die eine apache.exe eine CPU-Auslastung von 100% besitzt, sobald ich die index.php aufrufen will (und auch nur dann)!

Ich habe bereits die Datenbank und die php/html-Dateien auf einen anderen Rechner auf einem anderen PC getestet, auch dort liegt das gleiche Problem vor.

Da ich leider nicht, weiss wo genau das Problem liegt (liegt es an php? am apache-server? an der Datenbank?), hoffe ich, dass ich nicht im vollkommen falschen Forenbereich poste.

Hier nun die index.php, die eigentlich bereits seit Tagen korrekt lief und keine Probleme lieferte. Nochmals vielen Dank im Voraus, ich weiss leider nicht mehr weiter. :(

Code:
<?php
include ("connect.php");
session_start (); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>[...]</title>

[...]

</head>

<body>

[...]

<table width="1000" border="0" cellspacing="0" cellpadding="0" bgcolor="#f2f5f7">
	<tr>
         <td width="250" valign="top" bgcolor="#4d7194">

<?php

//Textausschnitt/Preview des aktuellen Artikels der ersten Kategorie
$sql  = "SELECT Artikel.ArtikelID, Artikel.ArtikelHead, Artikel.ArtikelText, ";
$sql .= "       Artikel.ArtikelDatum,";
$sql .= "       Autoren.AutorName,";
$sql .= "       Kategorien.KategorieName";
$sql .= "  FROM Artikel, Artikel_Kategorien, Kategorien, Autoren";
$sql .= " WHERE Artikel.ArtikelID=Artikel_Kategorien.ArtikelKatID";
$sql .= "   AND Artikel_Kategorien.KategorieID=Kategorien.KategorieID";
$sql .= "   AND Autoren.AutorID=Artikel.AutorID";
$sql .= "   AND Kategorien.KategorieID=1";
$sql .= " ORDER BY Artikel.ArtikelID DESC";
$sql .= " LIMIT 0, 1";

$qry = mysql_query($sql);
if(mysql_num_rows($qry) > 0) {
    while($ds = mysql_fetch_array($qry)) {
        $Autor = $ds["AutorName"];
        $ArtikelHead = $ds["ArtikelHead"];
        $ArtikelHead = htmlentities($ArtikelHead);
        $ArtikelText = $ds["ArtikelText"];
        $ArtikelText = substr($ArtikelText, 0, 199);
        $i = 199;
        while(substr($ArtikelText, $i, 1) != " ") { $i = $i - 1; }
        $ArtikelText = substr($ArtikelText, 0, $i );
        $ArtikelText = htmlentities($ArtikelText);
        $Datum = date("d.m.Y", mktime(0, 0, 0, substr($ds["ArtikelDatum"], 5, 2), substr($ds["ArtikelDatum"], 8, 2), substr($ds["ArtikelDatum"], 0, 4)));

echo "<h1 class='home'><span class='white'>eblog-News </span></h1>";
echo "<p class='NewsWhite' style='margin-bottom: 0'><a href='http://localhost/eblog/eblog-news.php' target='_blank' class='NewsLinkWhite'><strong>$ArtikelHead</strong></a></p>";
echo "<p class='NewsWhite'>&nbsp;</p>";
echo "<p class='NewsWhite'>$ArtikelText...</p>";
echo "<p class='NewsWhite'>&nbsp;</p>";
echo "<p class='NewsWhite'><a href='http://localhost/eblog/eblog-news.php' class='NewsLinkWhite'><img src='img/bullet1.gif' width='15' height='9' alt='weiter' border='0'>Lesen Sie weiter...</a></p>";
echo "<p class='spacer40'></p>";
echo "</td>";
    }
}
else { echo "Es können keinen Daten ausgelesen werden!"; }

?>
</td>

<td width="250" valign="top" bgcolor="#7490ac">
<?php

//Textausschnitt/Preview des aktuellen Artikels der zweiten Kategorie
$sql  = "SELECT Artikel.ArtikelID, Artikel.ArtikelHead, Artikel.ArtikelText, ";
$sql .= "       Artikel.ArtikelDatum,";
$sql .= "       Autoren.AutorName,";
$sql .= "       Kategorien.KategorieName";
$sql .= "  FROM Artikel, Artikel_Kategorien, Kategorien, Autoren";
$sql .= " WHERE Artikel.ArtikelID=Artikel_Kategorien.ArtikelKatID";
$sql .= "   AND Artikel_Kategorien.KategorieID=Kategorien.KategorieID";
$sql .= "   AND Autoren.AutorID=Artikel.AutorID";
$sql .= "   AND Kategorien.KategorieID=2";
$sql .= " ORDER BY Artikel.ArtikelID DESC";
$sql .= " LIMIT 0, 1";

$qry = mysql_query($sql);
if(mysql_num_rows($qry) > 0) {
    while($ds = mysql_fetch_array($qry)) {
        $Autor = $ds["AutorName"];
        $ArtikelHead = $ds["ArtikelHead"];
        $ArtikelHead = htmlentities($ArtikelHead);
        $ArtikelText = $ds["ArtikelText"];
        $ArtikelText = substr($ArtikelText, 0, 199);
        $i = 199;
        while(substr($ArtikelText, $i, 1) != " ") { $i = $i - 1; }
        $ArtikelText = substr($ArtikelText, 0, $i );
        $ArtikelText = htmlentities($ArtikelText);
        $Datum = date("d.m.Y", mktime(0, 0, 0, substr($ds["ArtikelDatum"], 5, 2), substr($ds["ArtikelDatum"], 8, 2), substr($ds["ArtikelDatum"], 0, 4)));

echo "<h1 class='home'><span class='white'>SEM-News </span></h1>";
echo "<p class='NewsWhite' style='margin-bottom: 0'><a href='http://localhost/eblog/suchmaschinen-marketing-news.php' target='_blank' class='NewsLinkWhite'><strong>$ArtikelHead</strong></a></p>";
echo "<p class='NewsWhite'>&nbsp;</p>";
echo "<p class='NewsWhite'>$ArtikelText...</p>";
echo "<p class='NewsWhite'>&nbsp;</p>";
echo "<p class='NewsWhite'><a href='http://localhost/eblog/suchmaschinen-marketing-news.php' class='NewsLinkWhite'><img src='img/bullet2.gif' width='15' height='9' alt='weiter' border='0'>Lesen Sie weiter...</a></p>";
echo "<p class='spacer10'></p>";
echo "</td>";
    }
}
else { echo "Es können keinen Daten ausgelesen werden!"; }

?>


      <td width="250" valign="top" bgcolor="#bfccd9">
<?php

//Textausschnitt/Preview des aktuellen Artikels der dritten Kategorie
$sql  = "SELECT Artikel.ArtikelID, Artikel.ArtikelHead, Artikel.ArtikelText, ";
$sql .= "       Artikel.ArtikelDatum,";
$sql .= "       Autoren.AutorName,";
$sql .= "       Kategorien.KategorieName";
$sql .= "  FROM Artikel, Artikel_Kategorien, Kategorien, Autoren";
$sql .= " WHERE Artikel.ArtikelID=Artikel_Kategorien.ArtikelKatID";
$sql .= "   AND Artikel_Kategorien.KategorieID=Kategorien.KategorieID";
$sql .= "   AND Autoren.AutorID=Artikel.AutorID";
$sql .= "   AND Kategorien.KategorieID=3";
$sql .= " ORDER BY Artikel.ArtikelID DESC";
$sql .= " LIMIT 0, 1";

$qry = mysql_query($sql);
if(mysql_num_rows($qry) > 0) {
    while($ds = mysql_fetch_array($qry)) {
        $Autor = $ds["AutorName"];
        $ArtikelHead = $ds["ArtikelHead"];
        $ArtikelHead = htmlentities($ArtikelHead);
        $ArtikelText = $ds["ArtikelText"];
        $ArtikelText = substr($ArtikelText, 0, 199);
        $i = 199;
        while(substr($ArtikelText, $i, 1) != " ") { $i = $i - 1; }
        $ArtikelText = substr($ArtikelText, 0, $i );
        $ArtikelText = htmlentities($ArtikelText);
        $Datum = date("d.m.Y", mktime(0, 0, 0, substr($ds["ArtikelDatum"], 5, 2), substr($ds["ArtikelDatum"], 8, 2), substr($ds["ArtikelDatum"], 0, 4)));

echo "<h1 class='home'><span class='blue85'>SEO-News</span></h1>";
echo "<p class='News' style='margin-bottom: 0'><a href='http://localhost/eblog/suchmaschinen-optimierung-news.php' target='_blank' class='NewsLinkWhite'><strong>$ArtikelHead</strong></a></p>";
echo "<p class='News'>&nbsp;</p>";
echo "<p class='News'>$ArtikelText...</p>";
echo "<p class='News'>&nbsp;</p>";
echo "<p class='News'><a href='http://localhost/eblog/suchmaschinen-optimierung-news.php' target='_blank' class='NewsLink'><img src='img/bullet3.gif' width='15' height='9' alt='weiter' border='0'>Lesen Sie weiter...</a></p>";
echo "<p class='spacer40'></p>";
echo "</td>";
    }
}
else { echo "Es können keinen Daten ausgelesen werden!"; }

?>

<?php

//Ausgabe eines zufallgenerierten Glossarbegriffs
$sql = "SELECT COUNT(GlossarBegriff) AS Anzahl FROM Glossar ";
$qry = mysql_query($sql);
if(mysql_num_rows($qry) == 1) {
      $ds = mysql_fetch_array($qry);
          $Anzahl = $ds["Anzahl"];
//          if(mysql_num_rows($ds["Anzahl"] > 0) {
          mt_srand((double)microtime()*1000000);
          $Zufallszahl = mt_rand(0, $Anzahl -1);
          $Zufallszahl = htmlentities($Zufallszahl);
 //         } else { echo "Keine Einträge im Glossar vorhanden!"; }
}

$sql2 = "SELECT * FROM Glossar ORDER BY GlossarBegriff LIMIT $Zufallszahl, 1";
$qry2 = mysql_query($sql2);
if(mysql_num_rows($qry2) == 1) {
       $ds2 = mysql_fetch_array($qry2);
       $GlossarBegriff = $ds2['GlossarBegriff'];
       $GlossarBegriff = htmlentities($GlossarBegriff);
       $GlossarBeschreibung = $ds2['GlossarBeschreibung'];
       $GlossarBeschreibung = htmlentities($GlossarBeschreibung);

echo "<td width='250' valign='top' bgcolor='#e6ebf0'>";
echo "<h1 class='home'><span class='blue85'>Glossar</span></h1>";
echo "<p class='News' style='margin-bottom: 0'><a href='glossar.php' target='_blank' class='body'><strong>$GlossarBegriff</strong></a></p>";
echo "<p class='News'>&nbsp</p>";
echo "<p class='News'>$GlossarBeschreibung</p>";
echo "<p class='News'>&nbsp;</p>";
echo "<p class='News'><a href='glossar.php' target='_blank' class='NewsLink'><img src='img/bullet4.gif' width='15' height='9' alt='weiter' border='0'>Lesen Sie weiter...</a></p>";
echo "<p class='spacer10'></p>";
echo "<p class='spacer40'></p>";
echo "</td>";

}
else { echo "Es können keinen Daten ausgelesen werden!"; }

?>

</table>

[...]

</body>

</html>


Hinweis:
Ich habe den Text um einige Stellen "[...]" gekürzt, weil diese wunderbar funktioneren und nicht relevant sind.
 
Um den Fehler einzugrenzen, könntest du folgendermassen vorgehen:
entferne erstmal alles aus dem Skript, was nach dem include() kommt.

Gehts dann nicht... musst du den Fehler in der includeten Datei suchen.

Danach packe stück für Stück die einzelnen Queries inkl. HTML-Ausgabe ins Skript.... so kannst du orten, welches Fragment den Fehler verursacht.
 
Hallo Sven.

Vielen Dank für Deinen Tipp:
Ich hatte gestern nur jeweils die einzelnen Fragmente "deaktiviert" / kommentiert, aber nicht vollkommen entfernt bzw. danach wieder eingefügt.

Dies habe ich aber eben getan. Und obwohl es erst Probleme gab bei den ersten beiden Fragmenten, funktionierte das dritte und vierte Fragment. Danach habe ich alle Artikel aus diesen beiden Bereichen entfernt und einige neue erstellt und plötzlich funktionierte alles.

Keine Ahnung, ob es an den Artikeln lag oder was auch immer, hauptsache es funktioniert nun wieder alles. :-)

Vielen, vielen Dank. :)

Bis zum nächsten Mal...
 
Zurück