Hallo,
ich habe Probleme mit einem älteren PHP-Code. Da ich nicht programmieren kann und den Fehler nicht finde, möchte ich euch um Unterstützung bitten.
Im Moment sehe ich zwei Möglichkeiten: Entweder jemand hilft mir den vorhandenen Code lauffähig zu bekommen, oder aber man könnte mir eine Alternative anbieten - wobei ich nicht mit Kanonen auf Spatzen schießen möchte, ein CMS sollte es also nicht sein. In beiden Fällen bitte ich um den Kostenrahmen.
Worum es sich handelt: vor längerer Zeit hatte mir ein Programmierer einen gutfunktionierenden PHP-Code bereitgestellt. Diesen Code wollte ich für meine neue Homepage wieder nutzen, bekomme ihn aber nicht mehr zu laufen. Vermutlich hat es etwas mit PHP Version 5 zu tun, denn unter Version 4 lief das Script. Genau erklären kann ich mir den Zusammenhang jedoch nicht.
So in etwa sollte der PHP-Code funktionieren:
Code:
Kopfbereich der Homepage
/
index.php - Variabler Inhalt
\
Fußbereich der Homepage
Hier der PHP-Code, der den Parameter (content=x) in den Links auswertet und die Templates dann zusammensetzt:
PHP-Code:
<?php
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
$config['template_dir']='content/';
/* Filecheck */
function filecheck($file) {
if (!($fp=@fopen($file,'r'))) {return FALSE;}
else {fclose($fp); return TRUE;}
}
/* Get Template */
function getTemplate($tpl,$ext='') {
global $config, $template_cache;
if ($ext!='') $tname=$tpl.'.'.$ext;
else $tname=$tpl;
if ($template_cache[$tname]=='') {
$tplstr=$config['template_dir'].'/'.$tpl;
if ($ext!='') {$tplstr.='.'.$ext; $ext=".".$ext;}
$tplstr.='.html';
if ($config['templatename']==1) $tplName="\n\n<!--\n".$tpl.$ext."\n-->\n\n";
else unset($tplName);
if (filecheck($tplstr)) $template_cache[$tname]=$tplName.str_replace("\"","\\\"",implode("",file($tplstr))).$tplName;
else echo '<table><tr><td><font><b>FEHLER:</b> Template file "<b>'.$tname.'</b>" wurde nicht gefunden.</font></td></tr></table>';
}
return $template_cache[$tname];
}
/* Oberes Layout */
eval ("echo \$site_head= \"".getTemplate("site_head")."\";");
/* Content */
// Auswerten der Variable $content, zuweisen der Content-Seite
switch($content){
case 0: $template_name="12_disclaimer";break;
case 1: $template_name="04_about";break;
case 2: $template_name="06_music";break;
case 3: $template_name="02_news";break;
case 4: $template_name="10_imprint";break;
case 5: $template_name="08_contact";break;
case 6: $template_name="99_empty";break;
case 7: $template_name="14_contactresponse";break;
}
// Wiedergeben der Templateseite
if(isset($template_name)){
eval ("echo \$site= \"".getTemplate($template_name)."\";");
}
unset($template_name);
/* Unteres Layout */
eval ("echo \$site_foot= \"".getTemplate("site_foot")."\";");
?>
Was jetzt nicht mehr funktioniert: Im Kopfbereich-Template sind die Links eingetragen, also beispielsweise "index.php?content=1". Ausgegeben wird jedoch immer die Seite, die im PHP-Code dem Wert 0 zugewiesen wurde. Ich klicke also beispielsweise auf den Link "index.php?content=3" und es wird "index.php?content=0" angezeigt. In der Adresszeile des Browsers steht jedoch der Link der angeklickt wurde, der Content ändert sich jedoch nicht.
Ich hatte vor Jahren eine Seite für einen Verwandten damit zusammengebastelt, das wäre ein (Live-)Beispiel wo es funktioniert (auf dem Server sollte PHP 4 laufen, ich kann es jedoch nicht checken):
****
Auf meinem neuen Webspace (PHP 5.2.6) funktioniert identische Seite nicht:
****
Ich bieße mir daran seit Stunden die Zähne aus und wäre über Unterstützung dementsprechend dankbar.
Gruß