Ankündigung

Einklappen
Keine Ankündigung bisher.

if/else, mit include html-code ausgeben

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

  • if/else, mit include html-code ausgeben

    Hallo in die Runde,

    ich hab nun mit Suche das Forum durchsucht und nicht das gefunden was mir bei mein Verständnis hilft.

    Folgendes:
    Ich sitze grad an mein Projekt eigene Webseite, was sie kann und können soll tut nicht zur Sache.
    Ich wollte gerade meine Impressum.php schreiben und bin auf ein Problem gestoßen was unterscheidet ob der User angemeldet ist oder nicht, wenn er das Impressum aufruft (wird später noch weiter Teile in meiner Fußzeile betreffen, da diese immer gleich ist).

    PHP-Code:
    <?php
    session_start
    ();
    require_once(
    "inc/config.inc.php");
    require_once(
    "inc/functions.inc.php");

    include(
    "templates/header.inc.php")  //Kopfzeile bis <body>
    ?>

    <?php
    if(!is_checked_in()) {
    include(
    "templates/navbar.index.inc.php"//Navbar wenn user NICHT angemeldet ist
    }
    else {
    include(
    "templates/navbar.internal.inc.php"//Navbar wenn user angemeldet ist
    }
    ?>

            <div class="container-fluid">
                <div class="row">
                    <div class="col-md-8">
                        <h3>Kontakt</h3>
                        <p>Dieser Bereich wird noch Überarbeitet.</p>
                    </div>
                </div>
            </div>

    <?php
    include("templates/footer.inc.php")
    ?>
    Ergebnis ist, das die Seite nicht mehr aufrufbar ist. Mein Verdacht liegt nah das es an die 2 include hängt.

    Wenn ich es aber so schreibe

    PHP-Code:
    <?php
    session_start
    ();
    require_once(
    "inc/config.inc.php");
    require_once(
    "inc/functions.inc.php");

    include(
    "templates/header.inc.php")
    ?>

    <?php
    if(!is_checked_in()): ?>

    <?php
    include("templates/navbar.index.inc.php")
    ?>

    <?php
    else:
    ?>

    <?php
    include("templates/navbar.internal.inc.php")
    ?>

    <?php
    endif;
    ?>

            <div class="container-fluid">
                <div class="row">
                    <div class="col-md-8">
                        <h3>Kontakt</h3>
                        <p>Dieser Bereich wird noch Überarbeitet.</p>
                    </div>
                </div>
            </div>

    <?php
    include("templates/footer.inc.php")
    ?>
    dann funktioniert es, jedoch erschließt sich mir nicht ganz warum das erste nicht funktioniert.

    Mag mir einer das vielleicht bitte erklären, ggf auf ein Fehler hinweisen den ich jetzt nicht sehe im ersten Code?


  • #2
    PHP-Code:
    include("templates/navbar.internal.inc.php"
    Auf jeden Fall fehlen da überall Strichpunkte am Ende würde ich mal sagen. Spontan.
    Und du brauchst weder bei include noch require Klammern.. das sind wie echo Sprachkonstrukte und keine Funktionen.


    Ergebnis ist, das die Seite nicht mehr aufrufbar ist.
    Sonst wenn du uns sagst was das genau bedeutet? Bleibt die Seite weiß? Dann bitte hier entlang und error reporting aufdrehen und die Fehlermeldung hier zeigen bzw. selbst damit debuggen: https://php-de.github.io/jumpto/faq/#debugging
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Hi,

      zuerst solltest Du deine Syntax korrigieren. Es fehlen bspw. Semikolons hinter deinen includes.

      Weiterhin solltest Du richtig debuggen, bspw. mit XDebug.

      mfg
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        Und noch etwas.. Wenn du in den includes nur HTML-Code hast, dann ist include/require sowieso der falsche Weg.

        Include etc. ist für Scripts mit PHP-Code gedacht. Wenn du nur HTML inkludiert, dann nimm readfile(), file_get_contents() oder noch besser eine Template Engine. Gibts auch kleine, einfache davon. zB http://jspit.de/?page=template von dem Forenuser jspit .
        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Was steht im error.log von PHP?

          Ist eine wenig schwierig, da du wohl nur Ausschnitte zeigst, die Teil eines grösseren Ganzes sind.

          Meine Vermutung ist daher das du dich in den Pfadangaben verzettelst.
          Siehe auch include niemals ohne DIR.

          Kommentar


          • #6
            Ergänzend zu hausl: ich würde direkt ein Framework wie Laravel (MVC Architektur) einsetzen - dann musst Du dich mit solchen Problemen nicht rumschlagen!
            while (!asleep()) sheep++;

            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

            Kommentar


            • #7
              Das ging ja schnell , dabei war ich nur grad Brötchen holen ^^

              Also danke für das Semikolon, das war das warum es nicht funktioniert hat.
              GELÖST
              ...manchmal sieht man sowas echt nicht, mein Debugger hätte mir das selbe gesagt, hätte ich ihn durchrödeln lassen

              Was die Tipps angeht, danke, ich werde mich sofort dahinter setzen. Das mit nur HTML im include nicht cool ist, war mir nicht bewusst bisher, werde das aber mal mit euren Tipps nachbessern.

              Kommentar


              • #8
                Zitat von wolf29 Beitrag anzeigen
                Ergänzend zu hausl: ich würde direkt ein Framework wie Laravel (MVC Architektur) einsetzen - dann musst Du dich mit solchen Problemen nicht rumschlagen!
                Dafür aber mit anderen Problemen.
                Lesenswert finde ich in diesem Zusammenhang diesen Artikel in der Wissenssammlung:
                https://php-de.github.io/jumpto/ich-...fen-attituede/

                Kommentar


                • #9
                  Zitat von protestix Beitrag anzeigen
                  Dafür aber mit anderen Problemen.
                  Lesenswert finde ich in diesem Zusammenhang diesen Artikel in der Wissenssammlung:
                  https://php-de.github.io/jumpto/ich-...fen-attituede/
                  Ich persönlich arbeite gerne mit Laravel und dem Blade Template Engine. Gerade das arbeiten mit Migrations und dem einfachen bauen von Testfällen, erleichtert das arbeiten (auch im Team) ungemein. Probleme hab ich bis dato noch keine feststellen können.
                  Zudem ist das m.E. das Framework deutlich schlanker und einfacher zu verstehen, als andere Frameworks, wie Symfony oder CakePHP.

                  Ich kann es nur jedem empfehlen.

                  mfg
                  while (!asleep()) sheep++;

                  Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                  Kommentar


                  • #10
                    ich lese ja schon, sind halt meine ersten schritte von c++ zu php und bei c++ hatte ich in der Uni nur mit Visual Studio gearbeitet. Daher nehme ich eure Tipps definitiv auf

                    Kommentar


                    • #11
                      wolf29
                      Ich denke du hast den Artikel missverstanden.
                      Es geht nicht um darum, ob du im Team etwas besser, erleichternd oder schneller erledigen kannst.
                      Es geht auch nicht darum, das du keine Probleme gehabt hast.
                      Und es geht auch nicht um die Vorgaben des Chefs, der Firma oder des Kunden.

                      Es geht viel mehr darum, in einem Entwicklerforum Eigeninitiative zu unterdrücken, zugunsten bestehender Bibliotheken, Frameworks oder sonstiger Software.

                      Wenn das alle machen, bleiben wir stehen.

                      Wozu Papier, es verbrennt doch, wir verwenden in unserm Dorf Steintafeln.
                      Verstehst du die Metapher? Wir hätten nie Bücher gehabt und Computer gäbe es heute auch nicht, hätte alle Wellt damals auf IBM gehört.

                      Ich will dich und andere nicht davon abhalten, deine Frameworks und gewohnte Arbeitsweise weiterhin zu verwenden aber viel zu oft wird hier gesagt mach das so oder so, weil wir machen das auch

                      Oder - warum das Rad neu erfinden?
                      Weil vielleicht ein Gummireifen daraus entsteht und Holzräder ablöst?

                      Wenn man immer das macht was andere machen, bleibt man Durchschnitt. Evolution zeichnet sich aber durch Anderssein aus. Die Natur macht es vor.

                      Von daher nicht immer alles gleich schlechtreden und mehr Inspiration zulassen.

                      Ist jetzt leider ein wenig Offtopic geworden, aber so ist das manchmal.

                      Kommentar


                      • #12
                        Also ich kann ja beide Seiten verstehen, aber im Grunde ist PHP auch nur eine riesige Funktionsbibliothek, geschrieben von anderen Entwicklern auf die wir uns verlassen, genau wie alles was dahinter folgt. So pauschal ohne konkrete technische Anforderungen und Projektbezug ist es meines Erachtens nicht entscheidungsfähig, ein Framework an- oder abzulehnen, jeder Technologieeinsatz braucht eine Begründung.
                        You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

                        Kommentar


                        • #13
                          Zitat von protestix Beitrag anzeigen
                          wolf29
                          Ich denke du hast den Artikel missverstanden.
                          Es geht nicht um darum, ob du im Team etwas besser, erleichternd oder schneller erledigen kannst.
                          Es geht auch nicht darum, das du keine Probleme gehabt hast.
                          Und es geht auch nicht um die Vorgaben des Chefs, der Firma oder des Kunden.

                          Es geht viel mehr darum, in einem Entwicklerforum Eigeninitiative zu unterdrücken, zugunsten bestehender Bibliotheken, Frameworks oder sonstiger Software.

                          Wenn das alle machen, bleiben wir stehen.

                          Wozu Papier, es verbrennt doch, wir verwenden in unserm Dorf Steintafeln.
                          Verstehst du die Metapher? Wir hätten nie Bücher gehabt und Computer gäbe es heute auch nicht, hätte alle Wellt damals auf IBM gehört.

                          Ich will dich und andere nicht davon abhalten, deine Frameworks und gewohnte Arbeitsweise weiterhin zu verwenden aber viel zu oft wird hier gesagt mach das so oder so, weil wir machen das auch

                          Oder - warum das Rad neu erfinden?
                          Weil vielleicht ein Gummireifen daraus entsteht und Holzräder ablöst?

                          Wenn man immer das macht was andere machen, bleibt man Durchschnitt. Evolution zeichnet sich aber durch Anderssein aus. Die Natur macht es vor.

                          Von daher nicht immer alles gleich schlechtreden und mehr Inspiration zulassen.

                          Ist jetzt leider ein wenig Offtopic geworden, aber so ist das manchmal.
                          Meine Aussage bezog sich auf dein "Dafür aber mit anderen Problemen".

                          Die Aussage von chorn trifft es ganz gut: PHP ist genauso eine Funktionsbibliothek und ich gehe davon aus, das die meisten hier im Forum bspw. noch weitere Bibliotheken einsetzen.

                          Wozu Papier, es verbrennt doch, wir verwenden in unserm Dorf Steintafeln.
                          Verstehst du die Metapher? Wir hätten nie Bücher gehabt und Computer gäbe es heute auch nicht, hätte alle Wellt damals auf IBM gehört.

                          Ich will dich und andere nicht davon abhalten, deine Frameworks und gewohnte Arbeitsweise weiterhin zu verwenden aber viel zu oft wird hier gesagt mach das so oder so, weil wir machen das auch"
                          Ich glaube, du hast mich hier Missverstanden: ich nutze Laravel weil es das für mich das optimale "rundum-sorglos"-Paket bietet um "beliebigen" Anforderungen in meinem Bereich, abzudecken. Jedem ist es selbst überlassen, was er wie einsetzt.

                          Oder - warum das Rad neu erfinden?
                          Weil vielleicht ein Gummireifen daraus entsteht und Holzräder ablöst?

                          Wenn man immer das macht was andere machen, bleibt man Durchschnitt. Evolution zeichnet sich aber durch Anderssein aus. Die Natur macht es vor.
                          Eine etwas vielleicht sehr polemische Aussage, auch wenn mir natürlich klar ist, was Du damit ausdrücken willst. Ein Framework nutzen (wie bspw. Laravel), heißt nicht zwangsläufig, dass man Durchschnitt bleibt. Wichtig ist (wie Chron bereits geschrieben hat) die Anforderungen und Voraussetzungen für die Umsetzung eines Projektes oder Problems den Einsatz deines Werkzeugs bestimmen. Ein Framework bringt oftmals bereits viele Erleichterungen mit, um bspw. ein Problem zu lösen oder um eine strukturierte Herangehensweise zu lernen, aber natürlich kannst du auch alles im Texteditor runtertippen.

                          mfg
                          while (!asleep()) sheep++;

                          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                          Kommentar

                          Lädt...
                          X