2016-04-21 10 views
-1

Entschuldigung für ein weiteres "php include" -Kapitel, aber die Suche nach diesem gibt etwa 90.000 Einträge und ich habe das Gefühl, ich habe 1/2 davon gelesen.PHP "include" schlägt fehl (redux)

Ich reanimiere eine Webseite, die ich vor 9 Jahren auf Win 2000 Pro geschrieben habe. Seitdem habe ich es einfach auf Ubuntu 10.0, Windows 7 portiert und es online über 2 verschiedene Hosting-Seiten veröffentlicht. Jetzt bin ich auf Ubuntu 14.04 und ich kann den php "Einschluss" Befehl nicht zum Funktionieren bringen. Der Code lautet wie folgt:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>Main Menu movietime.php</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 

<?php error_reporting(E_ALL);?> 

<body background="wood.gif"> 
<form method="post"> 
<input type="hidden" name="hiddenn" value="hide & "> 
<hidden name="hidden" value="well hid"> 
</form> 

<?php 
include dirname(__FILE__).'menu.php'; 
?> 

<h1 align="center"><strong>Movie Database</strong></h1> 
<h2 align="center"><strong>Main Menu </strong></h2> 
    <br> 
    <br> 
    <br> 
<?php 
echo '<h3 align="center"><strong>'.$status.'</strong></h3>'; 
?> 

Das Problem hierbei ist, dass die für ‚menu.php‘ sind nie so die Links zu dem Rest der Anwendung geschieht nicht erscheinen. Der Code für menu.php ist:

<div align="center"> 
<font size="2"> 
<a href="../">Home Page</a> &nbsp;&nbsp; 
<a href="create.php">Create Movie Table</a> &nbsp;&nbsp; 
<a href="drop.php">Delete Movie Table </a>&nbsp;&nbsp; 
<a href="list_radio.php">List</a>&nbsp;&nbsp; 
<a href="add.php">Add Movie</a> 
<a href="delete.php">Delete Movie</a></font> 
</div> 

Die folgende php-Anweisung zum Anzeigen des $ Status funktioniert immer. Ich möchte Ihnen die resultierende Seite zeigen, aber ich habe nicht genug Punkte dafür (ich denke ... das erste Mal hier).

Dinge, die ich habe versucht, sind:

  • ctrl-u auf Firefox die Quelle zeigt. Die von ctrl-u angezeigte Quelle unterscheidet sich nicht vom ursprünglichen Code.

  • Ich habe eine php_errors.log-Datei in/var/log eingerichtet und darauf innerhalb
    php.ini hingewiesen. Nichts geht jemals hinein. Berechtigungen sind 755. Ich sogar
    falsch geschrieben "include" und immer noch keine Fehler.

  • Substituierte php.ini_development für php.ini und immer noch nicht gehen.
    (error_reporting und display_errors wurden in beiden aktiviert).

  • Ich tail -f die Apache access.log in einem Xterm-Fenster und Tail -f die error.log in einem anderen. Die einzige Zeit, die ich Ausgabe in error.log sehe, ist, wenn ich Apache herunterfahren/starte. Die einzige Zeit, die ich Ausgabe in access.log sehe, ist, wenn ich die Seite neu lade. Es zeigt ein GET für movietime.php und ein GET für wood.gif und das war's.

  • Versucht, einen vollständigen Verzeichnisverweis für "dirname (FILE)" in der include-Anweisung ... nogo.

Ich weiß nicht, was ich zu diesem Zeitpunkt noch tun soll. Ich laufe Apache 2.4.7 und PHP 5.5.9

Ich freue mich auf alle und alle Vorschläge/Erkenntnisse.

--thanks --Gary

+0

' 'Und' ' –

+4

' dirname() 'gibt keinen abschließenden Schrägstrich zurück, also produzieren Sie'/foo/barmenu.php' anstelle von '/ foo/bar/menu.php'.Und wenn Sie den PHP-Code in der View-Quelle Ihres Browsers sehen, dann führen Sie ** ** ** den PHP-Code überhaupt nicht aus. Das Skript wird als einfacher Text gesendet. –

+0

Ich habe das 'ini_set' dort eingefügt und das fehlende '/' vor der menu.php korrigiert und sehe immer noch nichts. –

Antwort

-2

Stellen Sie sicher, dass Ihre Urls haben einen absoluten Pfad, wie: /path/file.php nicht Pfad/file.php

+0

Wenn include() nicht funktioniert, wird require() auch nicht funktionieren. –