[PHP 5.4.4 + Xampp] Problem mit Frameless Aufbau

nchristoph

Erfahrenes Mitglied
Hallo Zusammen,

ich habe gerade meinen Xampp auf die neueste Version aktualisiert und beim testen meines Codes auf ein kleines Problem gestossen: Unter PHP 5.4.4 funktioniert er nicht mehr, wie er soll.

Nach downgrade auf Xampp 1.7.7 funktioniert wieder alles.

Jetzt stellt sich die Frage:

Liegt es an PHP, an meinem Code oder an Xampp.

Der Code funktioniert auf meinem Webserver mit php 5.3.x ohne Probleme.

Hier mal der Code

incconfig.def.php
PHP:
<?
$section = array();
$section['start'] = "incdateien/content.php";
$section['kontakt'] = "incdateien/kontakt.php";
$section['about'] = "incdateien/about.php";
$section['full'] = "incdateien/single.php";
$section['kat'] = "incdateien/kategorie_ansicht.php";
$section['suche'] = "incdateien/suche.php";
$section['archiv'] = "incdateien/archiv.php";
$section['admin'] = "admin/admin.php";
$section['adminlogin'] = "admin/index.php";
?>

Content.inc.php
PHP:
<?php
if (isset($_GET['p'], $section[$_GET['p']])) {
    include $section[$_GET['p']];
} else {
    include $section['start'];
}
?>


Ich habe alles doppelt gecheckt und die config.php ist includiert.

Fehlermeldung

Code:
Notice: Undefined variable: section in C:\xampp\htdocs\core\includes\content.inc.php on line 5

Warning: include(): Filename cannot be empty in C:\xampp\htdocs\core\includes\content.inc.php on line 5

Warning: include(): Failed opening '' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\core\includes\content.inc.php on line 5

Index.php

PHP:
<?php
	ob_start();
	session_start();
	require_once ('core/defines/config.def.php');
	include ('core/defines/incconfig.def.php');
	include ('core/functions/theme_manager.func.php');
	
	$sql_querry = "SELECT id, titel, autor, teaser, kategorie, datum, DATE_FORMAT(datum,'".DATUM_FORMAT."') as form_datum FROM post ORDER BY datum DESC";
	$sql = mysql_query($sql_querry);
	

        include"templates/".$themename."/index.php";
	ob_end_flush();

Ich suche da jetzt seit ca. 3 Stunden nach einer Lösung, habe aber noch keine gefunden.

Kann mir da wer von euch helfen?
 
Code:
Notice: Undefined variable: section in C:\xampp\htdocs\core\includes\content.inc.php on line 5

Warning: include(): Filename cannot be empty in C:\xampp\htdocs\core\includes\content.inc.php on line 5

Warning: include(): Failed opening '' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\core\includes\content.inc.php on line 5

Steht doch alles da!
Du hast die Notiz und die Warnungen in 3 Stunden nicht übersetzen können?

Diese Fehler, oder besser unsauber geschriebener Quelltext war auch vorher schon.

Da hättest Du die Anzeige z. B. mit
PHP:
ini_set("display_errors", "on");
erzwingen können.

Und jetzt ist das eben standardmäßig "on"!
 
Ich hab display_errors immer on, das is ja das komische dran.

Ich hab mir auch $section mit print_r und var_dump ausgeben lassen. Wurde daraus auch nicht schlauer.

Haben die PHP Entwickler da seit 5.3.8 etwas verändert?
 
Var_dump von $section

Code:
array(7) { ["start"]=> string(22) "incdateien/content.php" ["kontakt"]=> string(22) "incdateien/kontakt.php" ["about"]=> string(20) "incdateien/about.php" ["full"]=> string(21) "incdateien/single.php" ["kat"]=> string(32) "incdateien/kategorie_ansicht.php" ["suche"]=> string(20) "incdateien/suche.php" ["archiv"]=> string(21) "incdateien/archiv.php" }

Trotzdem kommt die obige Fehlermeldung und das is auch der Grund, warum ich nich schlau werd draus.

Das lustige: Ich hab den neuen Xampp auf ner anderen Maschine installiert, da läufts ohne Probleme.

Ist also mein Code Müll oder ist auf meinem Arbeitslaptop die Xampp Installation kacke?
 
Mach das mal bitte mit
PHP:
echo "<pre>". print_r($section, true) ."</pre>";
bekommt man ja sonst Kopfweh ;-)

Scheinbar gibt es auch die content.php nicht!
 
Zuletzt bearbeitet:
Code:
Array
(
    [start] => incdateien/content.php
    [kontakt] => incdateien/kontakt.php
    [about] => incdateien/about.php
    [full] => incdateien/single.php
    [kat] => incdateien/kategorie_ansicht.php
    [suche] => incdateien/suche.php
    [archiv] => incdateien/archiv.php
)

Wie du siehst, ist alles so, wie es sein soll. Ausser das die Seite nicht funktioniert, sobald ich Xampp auf 1.8.0 update...
 
Woher weiß denn die Content.inc.php was
PHP:
include $section['start'];
ist, wenn die incconfig.def.php erst danach in deiner index.php inkludiert wird?
 
Die content.inc.php wird momentan direkt über das Template eingebunden.

PHP:
include"templates/".$themename."/index.php";

Die incconfig.def.php wird also vorher geladen.

Oder sehe ich das Falsch?
 
Zurück