Ergebnis 1 bis 3 von 3

Thema: Nachladen einer php-Datei mit Endung *.inc funktioniert nicht

  1. #1
    Neuer Benutzer
    Registriert seit
    14.11.2012
    Beiträge
    2

    Nachladen einer php-Datei mit Endung *.inc funktioniert nicht

    Guten Morgen liebes Forum,

    seit einigen Tagen versuche ich das Problem zu lösen, das ich beim nachladen einer php-Datei mit der Endung *.inc HTML-Kommentare in der nachgeladenen Datei habe. Dadurch wird die Datei leider nicht korrekt ausgeführt.

    So sieht mein Ergebnis aus, wenn ich die Datei mittels load() in ein DIV mit der id "div_working" nachlade:
    HTML-Code:
    <div class="in_site" id="retest">
      <span class="tile_title">ReTest</span>
      <br><hr>
      <!--?php
        $date 				= date("Y-m-d H:i:s");
        $closed_array = array('N', 'Y', 'T', 'IA', 'PV', 'RT', 'R');
        $status_array = array('Open' =--> 'N', 'Closed' =&gt; 'Y', 'Ticket' =&gt; 'T', 'In Arbeit' =&gt; 'IA', 'Problem' =&gt; 'PV', 'R-Test' =&gt; 'RT', 'Routing' =&gt; 'R');
        $grade_array	= array('- -', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10');
        $case_status	= array('All' =&gt; 'All', 'Open' =&gt; 'N', 'Closed' =&gt; 'Y', 'Ticket' =&gt; 'T', 'In Arbeit' =&gt; 'IA', 'Problem' =&gt; 'PV', 'R-Test' =&gt; 'RT', 'Routing' =&gt; 'R');
        $skipped = array('skipped, complete', 'skipped, Not available', 'Not available');
      ?&gt;
    </div>
    Man beachte den einleitenden HTM-Kommentar bei <?php (wird zu "<!--?php") und im Status-Array "'Open' =--> 'N'" den ausleitenden Kommentar.


    Hier sind meine Codeschnipsel:
    Das HTML-Gerüst:
    HTML-Code:
     	  <div id="outer_div">
     	    <div id="inner_div">
      	    </div>
     	    <div id="div_working"></div>
     	  </div>
    Der JQUERY-Teil:
    Code:
    	  // Seiteninhalte nachladen
    	  $("#div_working").load(url_path+"content/"+act_site+".inc",function(response,status,xhr){
    		if(status == 'success') {close_btn (this);}
    		else if(status=='error') {
    		  var ermsg = 'There was an error: '+ xhr.status+ ' '+ xhr.statusText+ '';
              $(this).html(ermsg);
              close_btn (this);
            } else {alert(status);}
          });
    Die Variable "act_site" wird zuvor im Script ermittelt und dann im load() verwendet. das es soweit funktioniert sehe ich ja daran, das der Inhalt zwar geladen wird, jedoch mit den Kommentaren.

    und die nachzuladene Datei:
    HTML-Code:
    <div class="in_site" id='retest'>
      <span class='tile_title'>ReTest</span>
      <br /><hr />
      <?php
        $date 				= date("Y-m-d H:i:s");
        $closed_array = array('N', 'Y', 'T', 'IA', 'PV', 'RT', 'R');
        $status_array = array('Open' => 'N', 'Closed' => 'Y', 'Ticket' => 'T', 'In Arbeit' => 'IA', 'Problem' => 'PV', 'R-Test' => 'RT', 'Routing' => 'R');
        $grade_array	= array('- -', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10');
        $case_status	= array('All' => 'All', 'Open' => 'N', 'Closed' => 'Y', 'Ticket' => 'T', 'In Arbeit' => 'IA', 'Problem' => 'PV', 'R-Test' => 'RT', 'Routing' => 'R');
        $skipped = array('skipped, complete', 'skipped, Not available', 'Not available');
      ?>
    </div>
    Ich habe auch schon andere Varianten probiert, mittels geparstem text(), html() und auch $.post bzw. $.ajax. Leider hat es entweder gar nicht funktioniert oder es wurde nicht korrekt dargestellt.

    Leider ist mir nicht bewusst wieso da Kommentare reinkommen, bei meinen Recherchen habe ich auch andere Beispiele gesehen, die ähnlich aufgebaut sind und die funktionierten. Ich bin auch leider nicht der große Experte was JS oder JQUERY angeht, daher bitte ich Euch um Hilfe.

    Viele Grüße aus Berlin,
    Ollie

  2. #2
    Moderator
    Registriert seit
    08.10.2010
    Beiträge
    1.369
    .inc Dateien werden offenbar von Deinem Server nicht (wie PHP) vor dem Bereitstellen ausgeführt sondern als normale Textfiles (Content-type: text/plain) bereitgestellt, sie enthalten also weiterhin den PHP-Code im Klartext. jQuery kann damit nichts anfangen und kommentiert ihn aus.

    Um Sicherzustellen, dass die .inc Dateien korrekt bereitgestellt werden musst Du entweder
    1) die Endung überall auf .php ändern oder
    2) auf dem Server sicherstellen, dass auch .inc Dateien vom PHP Preprocessor erfasst und abgearbeitet werden

  3. #3
    Neuer Benutzer
    Registriert seit
    14.11.2012
    Beiträge
    2
    Hallo,

    Danke für den Tip, ich werde es ausprobieren und mich dann zurückmelden. :-)


    Viele Grüße,
    Ollie

    NACHTRAG:
    Ich habe die Dateiendung auf *.php umgestellt, allerdings zeigt er mir damit nur noch Fehler 500 (Internal Server Error) an. Auf der Suche nach dem Fehler habe ich nicht viel gefunden, das es ein sehr lapidarer Fehler ist (passt zu vielen, nicht gleichartigen Problemen, wie es scheint). Ich habe für das System (Linuxbasiert mit Apache) die php5-xmlrpc nachinstalliert, aber das half leider auch nicht.

    Apache/2.2.10
    PHP 5.2.14 with Suhosin-Patch 0.9.7 (cli)

    Da die Seite ohne das nachladen (manuell im Browser aufgerufen) funktioniert, vermute ich eine fehlerhafte Serverkonfiguration. Gefunden habe ich einiges, allerdings nichts lies sich bisher bei mir anwenden. So zum Beispiel Seiteneffekte mit mod_rewrite, FollowSymlinks oder angepasste Dateirechte (644 kontra 755). Im Ergebnis steht immer wieder der Fehler 500 auf der Seite.
    Geändert von TheOllie (15.11.2012 um 12:22 Uhr)

Stichworte

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •