[Funktion] include ohne ausgabe

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

  • [Funktion] include ohne ausgabe

    Hallo zusammen,

    per
    PHP-Code:
    include ('andereDatei.php'
    verarbeitet er mir diese und spuckt sie an der stelle des includes Befehl in der index.php aus.

    Gibt es eine Funktion mit der ich die "andereDatei.php" includen kann ohne das sie in der index.php ausgegeben wird?
    (Also nur verarbeiten und Variablen übergeben, aber nicht ausgeben)
    -------------

    Der Grund dafür ist, das ich in der index.php per case: ... verschiedene $content definiere.

    Wenn ich nun in einer dieser $content dateien eine Berechnung ausführe die mich -je nach ergebniss- auf eine andere Seite weiterleiten soll fällt mir da nur der header(URL) Befehl dazu ein.

    Da aber in der Index.php vor include($content) schon ein text ausgegeben wird funktioniert leider auch der header Befehl nicht mehr.

    --------------

    Die einzige Alternative die mir dazu einfällt ist ganz oben in der index.php eine abfrage zu starten.

    if (content==sowieso) {
    hier steht die Berechnung die eigentlich in der "andereDatei.php" stehen sollte.
    -> header(url);
    exit;
    }

    Aber ist ja auch doof, wenn der gesamte Inhalt und alle Abfragen in der index stehen

    Hoffe ist etwas verständlich geschrieben? ^^

    Konnte leider auch nix im internet finden, also wen jemand nen tip hat wäre ich ihm echt dankbar

    Lg, Flo
    Zuletzt geändert von flo_urlaub; 26.01.2006, 14:20.

  • #2
    hm

    kennst Du die require-Funktion?

    Kommentar


    • #3
      jo kenn ich, aber macht doch das selbe wie include?

      andereDatei.php
      PHP-Code:
      $a="test";
      echo 
      "das brauch ich nicht"
      index.php
      PHP-Code:
      require 'andereDatei.php';
      echo 
      $a
      Ausgabe der Index.php:
      das brauch ich nicht test
      Ich bräuchte NUR die Ausgabe von echo $a;

      Irgendwie dumm
      Zuletzt geändert von flo_urlaub; 26.01.2006, 14:41.

      Kommentar


      • #4
        Abgesehen davon das das was du dort tust schlechter stil ist könntest du das ganze mit Outputbuffering lösen.

        Schau im Handbuch nach:
        - ob_start()
        - ob_get_contents()
        - ob_end_flush()

        Kommentar


        • #5
          man seit ihr schnell

          jo danke, das mim buffern werd ich mal testen.

          Kommentar


          • #6
            include bindet den Soucrecode angegebenen Datei ein.

            "Ausgegeben" wird php gar nicht, vielmehr wird php auf dem Server in html übersetzt und an den Client (Browser) geschickt.

            Du kannst eine Abfrage machen und dann je nach case includen. Wo ist das Problem?

            Kommentar


            • #7
              @Koala:
              Auch nicht ganz richtig. PHP wird interpretiert, was ich bei einem "echo" ausgebe bleibt mir überlassen, ob HTML, JavaScript, CSS, Text, Bilder, Binärdaten, MP3s, .....

              @flo_urlaub:
              Das mit deinen Cases sieht doch schon ganz gut aus, nur warum organisiert du deine includes nicht so, das bestimmte Dateien nur ausgeben und ander nur variablen verändern?
              Warum gibt "andereDatei.php" was aus?

              Kommentar


              • #8
                oki, in meiner ersten eingebundenen Datei ist z.b. ein Formularfeld.

                diesen Wert übergebe ich an die 2te Content Datei, in der einen mysql abfrage ist.

                Und je nach Ergebniss dieser abfrage will ich per header() befehl aus der 2ten contnet datei auf eine andere seite weiterleiten.

                ABER da vor dem include(2te Content Seite) Befehl in der index.php bereits anderer Text ausgegeben wird, klappt der header Befehl aus der includeten Datei nicht mehr..

                Kommentar


                • #9
                  Mach doch einfach mal eine Datei mit den Sachen die sich mit ausgabe beschäftigen und eine zweite die sich mit dem Funktionalen teil beschäftigt.

                  Ich kann dir nur hier keinen grundliegende Strukturkurs geben, dazu fehlt mir die Zeit, sorry

                  Kommentar


                  • #10
                    kompliziert....

                    mach doch ein Formular und wenn Du es auswertest rufst Du dieselbe Seite nochmal auf, fragst den Inhalt $_POST ab, machst Deine DB-Abfrage und leitest dann mit require an die jeweilige Seite weiter.

                    Kommentar


                    • #11
                      Oki, ich schreib hier mal mehr rein vom Quelltext, nun versteht man das dann auch besser


                      PHP-Code:

                      -----------------------
                      ---->  Index.php  <----
                      -----------------------

                      <?php

                      switch ($content)
                      {

                      // ###### Home ######

                      case 'home':
                      $head="header.tpl";
                      $inhalt="home.tpl";
                      break;

                      case 
                      'formular':
                      $head="header.tpl";
                      $inhalt="formular.tpl";
                      break;

                      case 
                      'form_fertig':
                      $head="header.tpl";
                      $inhalt="form_fertig.tpl";
                      break;

                      default:
                      ...

                      }
                      ?>

                      <html>

                      <?php include($head); ?>

                      <body>

                      <?php include($inhalt); ?>

                      </body>
                      </html>

                      PHP-Code:

                      --------------------------
                      ---->  
                      Formular.tpl  <----
                      --------------------------



                      <
                      form action="index.php?Content=Formular" method="post"
                      // leitet z.b. auf die gleiche Seite weiter
                      <input name="un" type="text" id="un">
                      Submit.. etc.

                      if(
                      un==schoen) { header (Location index.php?content=Seite 1);} 
                      else { 
                      header (Location index.php?content=seite2);} 
                      Header(Location =xxx.php) in der Formular.tpl funktioniert nicht, da in der index.php zuvor text ausgegeben wird.


                      ---------------------------------

                      Wenn ich in der Formular.tpl eine Variable definieren. --> z.b.

                      if(un==schoen) { $goto_url = "irgendwas"; } kann ich auf diese $goto_url erst

                      NACH dem include Befehl in der index.php drauf zugreifen --> wo aber schon der Inhalt ausgespuckt wird und deshalb auch kein
                      header (Location $goto_url; ) mehr funktioniert.
                      Zuletzt geändert von flo_urlaub; 26.01.2006, 15:21.

                      Kommentar


                      • #12
                        Original geschrieben von flo_urlaub
                        Oki, ich schreib hier mal mehr rein vom Quelltext, nun versteht man das dann auch besser
                        Wozu? Wir haben längst verstanden, wo dein Problem liegt - in einer vermurksten Struktur nämlich.

                        Und auch, wie du das Problem behebst, wurde dir bereits gesagt - in dem du dir eine sinnvolle(re) Struktur überlegst.
                        Also mach das bitte, anstatt hier Code abzuladen, der niemanden außer dir selbst ernsthaft interessiert.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Danke prego und Koala für eure Hilfe mit meinem "hier abgeladenen vermurksten Code, der niemanden interessiert" ...

                          Kommentar

                          Lädt...
                          X