Inkludierte Funktion wird nicht ausgeführt
Yadgar
- php
Hi(gh)!
Ich versuche gerade, meinen Website auf einem lokal installierten Apache unter Windows 7 zum Laufen zu bringen... prinzipiell funktioniert PHP, aber ich muss (wie schon bei früheren Versuchen) feststellen, dass in inkludierten Dateien definierte und in der Hauptskriptdatei aufgerufene Funktionen nicht ausgeführt werden - aber andererseits keinerlei Fehlermeldungen angezeigt werden!
Konkret:
So sollte die Seite aussehen: http://www.rock-o-data.de/khyberspace/start-d.php
Tatsächlich wird die Text-Navigationszeile unter dem Link zur englischen Version nicht angezeigt...
Der fragliche Code sieht so aus, zuerst das Hauptskript:
<?php
require("head.php");
require("navdata-d.php");
require("nav.php");
head("Willkommen im Khyberspace!", "format_start.css");
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
<body>
<div>
<p>
<a href="start-e.php" target="_top">[ English version ]</a>
</p>
<?
nav(0, $nav, $navlinks);
?>
<h1>Willkommen im Khyberspace!</h1>
<p>
<span class="i">Khyberspace? Das heißt doch Cyberspace! Oder?</span>
</p>
head.php:
<?php
function head($title, $stylesheet)
{
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"';
echo ' "http://www.w3.org/TR/html4/loose.dtd">';
echo '<html>';
echo ' <head>';
echo ' <title>'.$title.'</title>';
echo ' <meta http-equiv="Content-Type" content="text/html; charset=utf8">';
echo '<link rel="stylesheet" href="'.$stylesheet.'" type="text/css"></link>';
echo ' </head>';
}
?>
Interessanterweise wird head() im Hauptskript durchaus ausgeführt...
navdata-d.php:
<?php
$nav = array ("Startseite", "Impressum", "Fahrrad-Blog", "Khyberspace", "POVEarth", "Schwingungen", "Rock-o-Data", "Flagmaker", "Musical Box", "GREENBOOK");
$navlinks = array ("start-d.php", "impressum.php", "bikeblog.php", "#", "#", "schwingungen-d.php", "#", "flagmaker_einfuehrung.php", "musicalbox.php", "greenbook-d.php" );
?>
nav.php:
<?php
function nav($gap, $nav, $navlinks)
{
echo '<p style="text-align:center">';
$max = count($nav);
for ($i=0; $i<$max; $i++)
{
if ($i == $gap) continue;
if ($i < count($navlinks))
echo '<a href="'.$navlinks[$i].'" target="_top">';
echo " ".$nav[$i]." ";
if ($i < count($navlinks))
echo "</a>";
if ($i < $max-1 && !($i == $max-2 && $gap == $max-1)) echo "|";
}
echo "</p>";
}
?>
Aus unerfindlichen Gründen kann ich nav() aufrufen, es wird aber nicht ausgeführt - was läuft da falsch?
Bis bald im Khyberspace!
Yadgar
Hi,
Aus unerfindlichen Gründen kann ich nav() aufrufen, es wird aber nicht ausgeführt - was läuft da falsch?
Vermutlich sind es die Short Open Tags, die du nur an dieser einzigen Stelle verwendest, während du überall sonst <?php notiert hast.
MfG ChrisB
Hi(gh)!
Vermutlich sind es die Short Open Tags, die du nur an dieser einzigen Stelle verwendest, während du überall sonst <?php notiert hast.
Tatsächlich, das war wohl der Grund... wirklich Tausend Dank für den Tipp - du hast meinen Abend gerettet!
Ich wundere mich allerdings, dass dies bei meiner lokalen Linux-Version keine Rolle spielt...
Bis bald im Khyberspace!
Yadgar
Hi,
Vermutlich sind es die Short Open Tags, die du nur an dieser einzigen Stelle verwendest, während du überall sonst <?php notiert hast. Ich wundere mich allerdings, dass dies bei meiner lokalen Linux-Version keine Rolle spielt...
Dann sind die dort erlaubt und andernorts nicht ... Kann man, soweit ich mich erinnere, in der PHP.ini aktivieren
cu, Andreas
Moin
Kann man, soweit ich mich erinnere, in der PHP.ini aktivieren
da erinnerst du dich richtig. man kann in der ini short_open_tag erlauben oder verbieten
Gruß Bobby