Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe bei Page (include)

Einklappen

Neue Werbung 2019

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

  • Hilfe bei Page (include)

    Hallo zusammen,
    ich bin ein absoluter Newbieeeeee im Bereich PHP. Jetzt habe ich auf folgender Seite ein interessantes Beispiel gesehen, was ich gerne ausprobieren wollte (http://www.jwweb.com/20010722.html). Ich bin den Anweisungen auch gefolgt, aber bekomme immer wieder die Fehlermeldung das die Variable C nicht definier sei. Wenn ich der Variable beispielsweise die "2" gebe, startet meine content2.php. Das wäre ja richtig, aber die Links im Menu funktionieren nicht so, wie auf diesem Link http://www.jwweb.com/examples/20010722.php !

    Ich würde mich sehr freuen, wenn Ihr eine Lösung für dieses Problem hättet bzw. eine bessere Methode um eine solche Navigation zu erreichen, sprich mit Content durch include usw.!

    Ich wünsche Euch Allen ein frohes Weihnachtsfest und einen guten Rutsch ins neue Jahr.


    Euer Mastereye

  • #2
    verstehe nicht ganz wo das Problem sein sollte..

    zeig mal n' bischen code

    edit: die variable c musst du bei diesem Beispiel über die <a href>`s mitsenden..
    :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

    Kommentar


    • #3
      Also das ist der Quellcode der Index.php

      <html>
      <head>
      <title>Sample Industries Incorporated</title>
      </head>
      <body>

      <?php
      require("header.php");
      ?>

      <table width="95%" cellspacing="15" cellpadding="5" border="0">
      <tr>
      <td valign="top" width="120">

      <?php
      require("menu.inc")
      ?>

      </td>
      <td valign="top">

      <?php
      if ($c != "") {
      include("content".$c.".php");
      } else {
      include("content1.php");
      }
      ?>

      </td>
      </tr>
      </table>

      <?php
      require("footer.php");
      ?>

      </body>
      </html>

      Das das Menu:

      <p align="center" style="font:bold 1em sans-serif;color:#000099">
      Home Page

      Page #2

      Page #3

      </p>

      Kommentar


      • #4
        Hallo Mastereye,

        ein wenig Code wäre natürlich klasse.

        Ausserdem solltest du vielleicht auch mal dieses Grundlagentutorial durchgehen. Danach wirst du kein absoluter Newbieeeeee mehr sein und mit Sicherheit auch um einiges schlauer

        --> http://tut.php-q.net

        MFG HK


        :: EDIT ::
        Benutze bitte für PHP-Code die /PHP/ Tags (rechts oben neben URL der Button, wenn du einen Post schreiben willst). Danke.

        Zu deinem Problem. Wenn du Variablen aus einer URL holen willst, machst du dies nicht einfach mit $variablenname, sondern musst diese Variable, bzw besser gesagt den Wert der Variable mit $_GET['variablenname'] holen.

        in deinem Fall -->$_GET['c']

        Ausserdem Rate ich dir, deinen Quellcode einzurücken (falls du das nicht gemacht hast, seh ich leider nicht, da du nicht in PHP-Tags geschrieben hast.

        MFG

        Kommentar


        • #5
          Zitat von mastereye
          Also das ist der Quellcode der Index.php

          <html>
          <head>
          <title>Sample Industries Incorporated</title>
          </head>
          <body>

          <?php
          require("header.php");
          ?>

          <table width="95%" cellspacing="15" cellpadding="5" border="0">
          <tr>
          <td valign="top" width="120">

          <?php
          require("menu.inc")
          ?>

          </td>
          <td valign="top">

          <?php
          if ($c != "") {
          include("content".$c.".php");
          } else {
          include("content1.php");
          }
          ?>

          </td>
          </tr>
          </table>

          <?php
          require("footer.php");
          ?>

          </body>
          </html>

          Das das Menu:

          <p align="center" style="font:bold 1em sans-serif;color:#000099">
          Home Page

          Page #2

          Page #3

          </p>
          gut, und wo ist das Problem?
          Ich vermute mal register_globals sind bei dir auf OFF

          mach einfach anstelle von $c $_GET['c'] rein und sag was passiert
          :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

          Kommentar


          • #6
            PHP-Code:
            <?php
              
            if (isset($_GET['c']) AND $_GET['c'] != "") {
                include(
            "content"$_GET['c'] .".php");
              } else {
                include(
            "content1.php");
              }
            ?>
            MFG

            Kommentar


            • #7
              Schlechter Vorschlag. Vertraue niemals dem Userinput:

              PHP-Code:
              <?php
              if (isset($_GET['c'])) {
                
              // jetzt genaue Bedingungen, welche c-Werte erlaubt sind
                
              switch ($_GET['c']) {
                case 
              'abc':
                case 
              '4':
                  include 
              sprintf('content%s.php'$c);
                  break;
                default:
                  include 
              'content1.php';
                }
              } else {
                include 
              'content1.php';
              }
              ?>

              Kommentar


              • #8
                PHP-Code:
                <?php
                // default value
                $iContentID 0;

                // get c from GET-Header
                if (!empty($_GET['c'])) $iContentID = (int) $_GET['c'];

                $sContentFile "content$iContententID.php";
                ?>

                <?php
                // include content file
                include $sContentFile;
                ?>
                Basti

                Kommentar


                • #9
                  wie wärs wenn man mit is_file() zuerst überprüft ob es wirklich eine Datei ist, die existiert? und sonst einfach halt content1.php lädt?

                  oder wird is_file() anderst eingesezt?
                  :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                  Kommentar


                  • #10
                    Finde die Prüfung unnötig, da man davon ausgehen sollte, dass die möglichen Rubriken auch existieren. Wenn nicht läuft eh was schief.

                    Kommentar


                    • #11
                      Ola

                      So viele Antworten.... aber mein Kopf dreht durch *g*

                      Welche ist denn die beste Lösung für die Variable $C und welche Lösung überprüft denn, ob die $C vorhanden ist, sprich die PHP-Seite existiert und wenn nicht eine Fehlerseite anzeigt!

                      Gruß
                      Mastereye

                      Kommentar


                      • #12
                        jo aber dann spart man sich z.B. deine ganze SWITCH anweisung, den wens ne Datei ist, soll er genau diesen Link nehmen, und sonst halt ned.
                        :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                        Kommentar


                        • #13
                          Zitat von Zergling
                          Finde die Prüfung unnötig, da man davon ausgehen sollte, dass die möglichen Rubriken auch existieren. Wenn nicht läuft eh was schief.
                          Ich denke eine Überprüfung wäre notwednig, denn wenn eine falsche Datei aufgerufen wird, passiert folgendes.

                          http://www.jwweb.com/examples/20010722.php?c=45

                          c=45 - diese Datei ist nicht vorhanden!!

                          Wie kann ich dies vermeiden?

                          Kommentar


                          • #14
                            eben, es gibt viele Lösunge, entweder du prüfst mit is_file() ob die Datei auch wirklich existiert, oder du gehst in diesem Thread ne Seite zurück (auf Seite 1) und nimmst die anderen Beispiele
                            :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                            Kommentar


                            • #15
                              Mastereye: Ich sag ja, irgendeine Prüfung musst du einbauen, das ist klar. Aber mir langt die Lösung zu wissen, welche Rubriken/Dateien es gibt und diese lege ich im switch-Block fest. Das muss dann nicht nochmal der Server überprüfen.
                              Wenn du nur auf is_file() prüfst kann ich theoretisch jede PHP-Datei includen, die auf dem Server existiert. Das kann nicht das Ziel sein.

                              Kommentar

                              Lädt...
                              X