Mein include script funzt nicht

  • Hallo, ich beschäftige mich mit einem privaten Projekt für welches ich online angebotene Scripts für Parallax und Popups verwendet habe (mir ist dabei eher die grafische Gestaltung wichtig da ich ein Grafiker bin und kenne mich daher nur begrenzt mit Programmiersprachen wie PHP aus, womit ich mich gerade erst auseinandersetze).
    Ich habe momentan ein Problem mit einem include Script welches ein ehemaliger Bekannter mir mal vor Jahren schrieb und ich schon mehrmals problemlos für einfache Projekte verwendet habe, das nun aber irgendwie rumspinnt (da es viele Jahre her ist, dass ich sowas gemacht habe liegt vielleicht auch daran, dass ich nicht mehr weiß wie es geht). Leider reichen meine Kenntnisse bisher bei weitem nicht aus, um das Problem in nächster Zeit alleine zu lösen und ohne Hilfe kann ich nicht mehr weiter machen. Darum wäre ich sehr froh, wenn mir jemand behilflich sein könnte. :oops:

    Also das Problem ist, dass nicht nur die entsprechende php Datei nicht angezeigt wird, sondern das Script einfach mittendrin als Text angezeit wird, obwohl ich nichts geändert habe und es sonst immer funktionierte. Das ist das Script:

    Code
    <?
          @$content = $_GET['content'];
          if($content == "") {
          $content = "home"; }
          if(!file_exists("content/$content.php")) {
          echo("<span>Information &raquo; Under construction</span><br><br>
          <p>This part of the website is under construction or does not exist.</p>"); } else {
          include("content/$content.php"); }
          ?>

    Hier ein Screenshot:

    Man sieht es, wenn man auf dem Startbildschirm das Raumschiff anklickt: http://deathlock.lima-city.de
    Sollte die Seite komisch angezeigt werden, bitte noch einmal neu laden, da Änderungen manchmal irgendwie verspätet angezeigt werden.

    2 Mal editiert, zuletzt von Chrree (9. November 2015 um 13:29)

  • Bei mir wird kein Text angezeigt, sondern eine Grafik mit Links. Wo soll da welcher Text stehen?

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • Wenn man auf das große Raumschiff klickt, dann sieht man das:

    Falls es anders aussieht, vielleicht nochmal neu laden. Änderungen werden manchmal irgendwie verspätet angezeigt.

    Einmal editiert, zuletzt von Chrree (9. November 2015 um 13:28)

  • Na ist doch deine eigene Fehlerabfrage. Datei existiert nicht. Also Pfade überprüfen.

    Ahh, jetzt verstehe ich.
    Erweiter mal <? mit <?php dann klappt's wieder.

    Einmal editiert, zuletzt von djheke (9. November 2015 um 15:49)

  • Hallo, danke für die Antwort. :)

    Hab beides schon gemacht, hat nichts gebracht. :( Hab sogar die Datei home.php mal an anderer Stelle gepackt und den Pfad entsprechend geändert aber funktioniet immer noch nicht. :(

  • Das du da bei fehlender Übergabe eine "home.php" machen möchtest, sieht man. Offensichtlich ist eine Datei "content/home.php" aber nicht vorhanden.

    Aber was ist zu diesem Zeitpunkt der tatsächliche Inhalt der Variablen? Bau mal eine Ausgabe der Variablen ein.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • Na ist doch deine eigene Fehlerabfrage. Datei existiert nicht. Also Pfade überprüfen.

    Ahh, jetzt verstehe ich.
    Erweiter mal <? mit <?php dann klappt's wieder.


    Ich habe es auf meinem localen Server probirt und es ha funktionirt. Ohne <?php ging auch bei mir nichts.

  • Das sieht eher danach aus als würde dein Webspace keine PHP-Dateien parsen ODER Du hast die PHP-Datei als .html-Datei abgelegt und die wird natürlich nicht von PHP geparst.

    Auf so'ne "Bekl.." Idee bin ich natürlich noch nicht gekommen. Aber, ja kann sein.


    @edit Ich muss mich korrigieren, dei ersten PHP Abfragen werden ja ausgeführt, nur die else Abfrage nich. Ist bei mir auch so, nur mit <?php funktioniert's. Oder dein Server ist doof Konfiguriert.

    Einmal editiert, zuletzt von djheke (9. November 2015 um 19:10)

  • Das sieht eher danach aus als würde dein Webspace keine PHP-Dateien parsen ODER Du hast die PHP-Datei als .html-Datei abgelegt und die wird natürlich nicht von PHP geparst.

    Also geparst wird schon. Sonst würde der gesamte PHP-Code ausgegeben werden. Das ist nicht der Fall.

    Einfach mal das error_reporting einschalten. Dann sehen wir evtl. mehr.

    Ob <?php nötig ist oder <? ausreicht, ist eine Konfigurationsfrage des Servers.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • Wenn der Browser einen Teil des PHP-Codes als HTML interpretiert, zeigt er den restlichen nicht als HTML interpretierbaren PHP-Code direkt an.

    Testen könnte man die PHP-Unterstützung z.B. mit

    PHP
    <php phpinfo(); ?>

    in einer Datei phpinfo.php. Wenn Dann als Ausgabe

    Code
    phpinfo(); ?>

    steht, fehlt eine PHP-Unterstützung beim Webhosting.

  • Guck mal was du machst.

    Code
    <a href="index.html?content=home" class="basic"><img src="images/1.pgn" alt="Proelii 1"></a>

    Du musst deine index.html in index.php umbenennen. Also hat threadi doch schon die richtige Antwort gegeben.

    Einmal editiert, zuletzt von djheke (10. November 2015 um 05:33)

  • Gastl
    Ich verstehe ja so grundlegende Dinge was Variablen sind, wie das so in etwa funktioniert, was Begriffe wie echo, get, post usw. sind und hier und da etwas aber wie das mit phpinfo da genau funktioniert oder wie man dieses error_reporting verwendet ist mir irgendwie noch zu hoch. :(

    djheke
    Das hatte ich versucht und dann kommt nur noch eine Errorseite und die Page funktioniert gar nicht mehr, da dachte ich das hätte ich falsch verstanden.

  • PHP funktioniert nur, wenn man die Seite auch mit der Endung .php speichert. Der Parser sucht danach und interpretiert nur Dateien mit passender Endung. Welche Endungen das sind, kann man per .htaccess festlegen.

    Dei Webserver sucht beim Aufruf der Domain normalerweise nach Dateien, die index oder default heissen läd diese und stellt sie als Startseite dar.
    PHP-Code in .html oder .htm einzufügen funktioniert also nicht. HTML in PHP aber übrigens sehr wohl.

    ERGO:
    Benenne deine Seite in index.php um und ändere alle Verweise (Links), die auf index.htm verweisen in index.php um.

  • Ich hab mich mit den Vorschlägen noch einmal auseinandergesezt und wie vorgeschlagen nochmal die index.html in php umbenannt. Ich hab dann auch das mit dem Error Report verstanden, es aktiviert und herausgefunden das es wegen einer simplen Zeile nicht funktioniert hat.
    Zudem habe ich dann feststellen können, dass es tatsächlich an der Endung lag und nun alles funktioniert!

    Danke an die Hilfe hier im Forum! Da hat man was Neues gelernt. Dankeschön!