PHP Datein lässt sich nicht in einer Menü-Box includen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Datein lässt sich nicht in einer Menü-Box includen

    Moin moin zusammen

    Ich versuche seit zwei Tagen ein PHP Script in eine Menü-Box zu includen.
    Ich fang mal an...

    Auf der Seite http://index.lan-ev.net ist rechts ein Menü (mit bisher zwei Boxen),
    nach dem 'Counter noch 32 Tage' ist ein roter Balken, dort soll eigentlich eine neue Box mit Inhalt anfangen.

    Die Box ist ein Template mit der Endung .htm, wo ich eigentlich dachte das dies das Problem ist, wegen der Endung.
    Hab bei Google geschaut und fand dann dies: AddType application/x-httpd-php .htm
    Beim Webhoster nachgefragt ob dies möglich sei, ist möglich wurde gemacht.

    So... aber es funktioniert immer noch nicht.

    Wenn man die Seite aufruft wird wie oben gesagt zwar die Box dargestellt aber kein Inhalt.
    Ruft man das Template auf funktioniert das Script, spricht der Inhalt,
    siehe hier: http://index.lan-ev.net/design/templ...nsoren_row.htm

    Hier der Code vom Template:
    Code:
    <!-- TEMPLATE - STANDARD - BOX Sponsoren ROW -->
    <table background="design/sunset/images/menu_bg.gif" cellspacing="0" cellpadding="0"
    class="" style="border-collapse: collapse" bordercolor="#111111">
          <tbody>
            <tr>
              <td>
              <? include('http://index.lan-ev.net/adclick/sponsoren1/1/anzeige.php'); ?>
              </td>
            </tr>
          </tbody>
      </table>
    <!-- TEMPLATE - STANDARD - BOX Sponsoren  ROW -->
    Was merkwürdig ist, wenn auf der Hauptseite sich den Quelltext anschaut, steht der include Befehl immer noch da, nur halt in lila.
    Ich hab da keine Idee mehr woran es liegen könnte, dass der Inhalt nicht in der Box erscheint.

    Hoffe jemand hat eine Idee bzw. Lösung wie man jetzt das PHP-Script in die Box includen kann.

    Danke schonmal im Voraus für die Antworten

    Gruss
    «oMeE»

    ---
    PHP Version 4.3.8
    Hoster: all-inkl.com
    /...PHP Handbuch /..MySQL Handbuch /...SelfHTML /...ForumSuche /...Google

  • #2
    Tach auch.
    Wenn du in einer Datei php-Code verwendest, dann solltest du die Datei auch .php nennen.
    Das PHP-Modul auf deinem Webserver parst ja nur dateien, die auch .php heißen.
    Und du solltest den öffnenden Tag besser noch <?php nennen.

    Probier das mal. Dann sollte es eigentlich funzen...
    No internationalisation, no fun.

    Kommentar


    • #3
      Dank dir Downline für die Antwort

      Mit <?php .... ?> funktioniert es leider auch nicht.
      Da es Template sind die alle die Endung .htm habe funktioniert dies leider auch nicht,
      hab es mit der Endung .php ausprobiert.
      Aber dann kommt der Fehler das die Box bzw. das Template 'box_sponsoren_row.htm' nicht gefunden wurde.

      Gruss
      «oMeE»
      /...PHP Handbuch /..MySQL Handbuch /...SelfHTML /...ForumSuche /...Google

      Kommentar


      • #4
        Also wenn ich das Richtig verstehe ist das deine Template box_sponsoren_row.htm

        *SCHNIPP*
        <!-- TEMPLATE - STANDARD - BOX Sponsoren ROW -->
        <table background="design/sunset/images/menu_bg.gif" cellspacing="0" cellpadding="0"

        class="" style="border-collapse: collapse" bordercolor="#111111">
        <tbody>
        <tr>
        <td>
        <? include('http://index.lan-ev.net/adclick/sponsoren1/1/anzeige.php'); ?>
        </td>
        </tr>
        </tbody>
        </table>
        <!-- TEMPLATE - STANDARD - BOX Sponsoren ROW -->
        *SCHNIPP*

        Richtig? Diese Datei soll dann aber nicht mehr box_sponsoren_row.htm heißen sondern box_sponsoren_row.php
        Weil du ja in der Datei PHP-Code ausführen möchtest.
        <?php include('http://index.lan-ev.net/adclick/sponsoren1/1/anzeige.php'); ?>
        Deswegen sollte die datei box_sponsoren_row.php heißen, damit der PHP-Parser auch die PHP-Befehle ausführt.
        Ich habe mir deinen Quellcode angesehen. Dort steht der Include-Befehl mit <?php drin. Das heißt, das dein PHP-Modul auf dem Webserver diese Datei nicht geparst hat.

        Habe ich das so alles richtig verstanden?

        Dann sollte es kein Problem sein, wenn du die datei .php nennst. Weil dann läuft der Parser über die Datei und führt den include-Befehl aus.

        Wenn du das anders meinst, dann poste nochmal...

        Gruß

        Downline
        No internationalisation, no fun.

        Kommentar


        • #5
          Hab jetzt der box_sponsoren_row die Endung .php vergeben und ebend hochgeladen.
          Als Fehler kommt jedoch (ganz oben) ' Das Template design/templates/box_sponsoren_row.htm konnte nicht geöffnet werden'

          Ich denke auch mal das evtl. daran liegt 'Datei class_func.php'
          Dort steht die Template Endung auf .htm
          PHP-Code:
          function button_userdetails($userid$target) {
              
                  if(
          $target == "new"$target 'target="_blank"';
                  return 
          ' <a href="index.php?mod=usrmgr&action=details&userid='.$userid.'" '.$target.'>
          <img src="design/'
          .$GLOBALS["auth"]["design"].'/images/arrows_user.gif" border="0"></a>';
              }
              
              function 
          gettemplate($template)
              {
                  if(@
          is_file("design/".$_SESSION["auth"]["design"]."/templates/"$template".htm" ) ) {
                      return 
          str_replace("{default_design}"$_SESSION["auth"]["design"], str_replace
          ("\"""\\\"", @implode("", @file("design/".$_SESSION["auth"]["design"]."/templates/".$template.".htm"))));

                  } elseif (@
          is_file("design/templates/"$template".htm") ) {
                      return 
          str_replace("{default_design}"$_SESSION["auth"]["design"], str_replace
          ("\"""\\\"", @implode("", @file("design/templates/".$template.".htm"))));

                  } else echo(
          "<font color=\"red\"> 
          Das Template <b> design/templates/
          $template.htm 
          </b> konnte nicht geöffnet werden</font>"
          );
              }

              function 
          gettemplatebystyle($template)    {
              
                  unset(
          $file_exists);
                  
          $file_exists = @is_file("design/{$_SESSION["auth"]["design"]}/templates/"$template".htm");
              
                  if(
          $file_exists == 1)
                  
                  return 
          str_replace("{default_design}"$_SESSION["auth"]["design"], str_replace
          ("\"","\\\"",@implode("",@file("design/{$_SESSION["auth"]["design"]}/templates/".$template.".htm"))));
                  

                  else {
                  echo(
          "<font color=\"red\"> 
          Das Template <b> design/
          {$_SESSION["auth"]["design"]}
          /templates/
          $template.htm </b> konnte nicht geöffnet werden</font>");
                  }
                      
              }

              function 
          templ_output($template
              {
                     echo 
          $template;
              } 
          Komplette Datei, siehe Anhang.

          Ist es jetzt möglich die Endung .htm & .php zuvergeben?

          Gruss
          «oMeE»
          Angehängte Dateien
          /...PHP Handbuch /..MySQL Handbuch /...SelfHTML /...ForumSuche /...Google

          Kommentar


          • #6
            Ja. Jetzt wenn die Datei nun .php heißt, dann muss nun auch ne PHP-Datei eingesetzt werden.
            Ein möglicher Workaround wäre, wenn du ein weiteres elseif einbaust, mit der Endung .php
            Also etwa so:
            PHP-Code:
            elseif (@is_file("design/templates/"$template".php") ) {
                        return 
            str_replace("{default_design}"$_SESSION["auth"]["design"], str_replace("\"""\\\"", @implode("", @file("design/templates/".$template.".php")))); 
            Ich weiß nicht genau, an welcher Stelle du das entsprechende Template nutzt. Aber dort wo das zutrifft, solltest du die weitere Bedingung mal einbauen.

            Deine Datei heißt nun PHP. Sie wird vom Modul interpretiert. Du bindest dann auch eine PHP datei ein, also der Fehler "Das Template ...." is nicht mehr.

            So sollte es funktionieren. Wäre erstmal nur ein Workaround, sicher geht das auch sauberer, aber so sollte es jedenfalls funktionieren.

            Gruß

            Downline
            No internationalisation, no fun.

            Kommentar


            • #7
              Dank dir Downline
              Werd das mal ausprobieren ob es klappt, meld mich dann nochmal

              Gruss
              «oMeE»
              /...PHP Handbuch /..MySQL Handbuch /...SelfHTML /...ForumSuche /...Google

              Kommentar


              • #8
                Hab das nun ausprobiert

                Das Template 'box_sponsoren_row' hat nun die Endung .php, wird auch angezeigt ohne Fehler.
                Aber... es ist immer noch so wie vorher, spricht der Inhalt wird nicht angezeigt
                Im Quelltext vom Browser steht der Inhalt auch noch so da: <?php ... ?>

                Hab nun auch mal alle Templates die Endung .php verpasst, half allerdings auch nichts.

                Mir fällt dazu nichts mehr ein, eine PHP-Datei in der keine PHP ausgeführt wird

                Gruss
                «oMeE»
                /...PHP Handbuch /..MySQL Handbuch /...SelfHTML /...ForumSuche /...Google

                Kommentar


                • #9
                  Das include von Dateien über http...
                  <? include('http://index.lan-ev.net/adclick/sponsoren1/1/anzeige.php'); ?>
                  funktioniert nur, wenn "URL fopen wrappers" in PHP aktiviert sind, was eine Sicherheitslücke ist. In Deinem Fall ganz sicher.
                  Ausserdem geht das bei einigen php Versionen überhaupt nicht.

                  Aber Dein Problem ist eher, dass Dein Template geparsed wird und da wird der enthaltene code eben nicht ausgeführt.
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Dank dir MelloPie für die Antwort

                    Das include von der Datei über http hab ich mal geändert.
                    Original geschrieben von MelloPie
                    Aber Dein Problem ist eher, dass Dein Template geparsed wird und da wird der enthaltene code eben nicht ausgeführt.
                    Kann man dies irgendwie ändern?

                    Gruss
                    «oMeE»
                    /...PHP Handbuch /..MySQL Handbuch /...SelfHTML /...ForumSuche /...Google

                    Kommentar

                    Lädt...
                    X