Verschiedene Wege (path=) mehre Variablen

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

  • Verschiedene Wege (path=) mehre Variablen

    Hi leute

    Ich hab eine Frage/Idee und ich weiss nicht wie ich diese realisieren kann.

    Wenn wir auf die Seite:
    http://www.vct-coding.net
    gehen könnt ihr es genau ansehen was ich meine.

    http://www.vct-coding.net/?section=home&site=news
    Man öffnet die News!

    In Section wird eine Anfangsvariable gemacht welche das Design enthaltet.
    Mit home wird das Menü in der linken Navigation bestimmt.
    Und mit Site die Seite natürlich.

    http://www.vct-coding.net/?section=p...ite=leistungen
    Hier ist es genau dasselbe ausser dass =projekte -> links ein anderes Menü defniert.
    Wie kann ich nun so etwas realisieren.
    Den code für index.php?path=seitenname <- hab ich bereits.
    Und weiss auch wie er funktioniert vollständig.

    Hoffentlich könnt ihr mir da weiterhelfen.

    Greez starchild
    PHP Anfänger

  • #2
    Re: Verschiedene Wege (path=) mehre Variablen

    PHP-Code:
    $navi_bereiche = array('home''projekte');
    $_GET['section'] = strtolower($_GET['section']);
    if (!
    in_array($_GET['section'], $navi_bereiche)) {
      
    $_GET['section'] = 'home';
    }
    require(
    'navigation/' $_GET['section'] . '.php'); 
    wenn ich deine Frage richtig verstanden habe ...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Ich hab mir das mal genau angeguckt.

      Ich bin nicht so der held in genau solchen sachen.

      Sorry ich kann das nicht so nachvollziehen und kann dir auch nicht sagen ob ich sowas gemeint habe!

      Ich verstehe zwar den meisten Teil deines Scripts aber ich kann da nichts zusammenbauen.

      PHP-Code:
      <?
          if(!isset($path) || empty($path)) { $path = "news"; }
              $filename = $path.".php";
                  if (file_exists($filename)) {
              include($path.".php");
          } else {
          echo "404 Fehler - Seite nicht gefunden."; 


      ?>
      Das ist der Code für meine including der Seiten. Da muss ich jetzt mit ?path=seitenamen einen Link generieren damit er funktioniert.

      und wie kann ich jetzt das so ausbauen dass ich: ?path=home&seite=

      Ich jemand kann mir da ein bisschen weiterhelfen.
      Zuletzt geändert von starchild; 19.01.2006, 19:22.
      PHP Anfänger

      Kommentar


      • #4
        Na soo genau hast du es dir offensichtlich nicht angesehen, sonst wäre dir aufgefallen, dass ghostgambler ein Array namens _GET verwendet.

        http://de2.php.net/register_globals

        Kommentar


        • #5
          onemorenerd
          oder
          ghostgambler


          Könntet ihr mir helfen beim bauen des scripts dass ich für meine Idee brauche?
          PHP Anfänger

          Kommentar


          • #6
            Das versuchen wir doch hier gerade.

            Vielleicht nochmal von vorn und in aller Klarheit:
            Du möchtest deiner index.php zwei Werte einimpfen, einer soll den Menü-, der andere den Contentbereich bestimmen. Das sieht dann etwa so aus: http://www.example.com/index.php?menu=foo&content=bar
            Solche an die URL angehangenen Werte nennt man GET-Parameter und in PHP-Scripten stehen sie dir automatisch im Array $_GET zur Verfügung.

            Nun lies dir mal folgenden Zweizeiler durch:
            PHP-Code:
            <?php
            include $_GET['menu'] . '.php';  // bindet foo.php ein
            include $_GET['content'] . '.php';  // bindet bar.php ein
            ?>
            Ich denke, das hast du verstanden.
            Leider ist das so noch zu gefährlich, du willst eigentlich nur bestimmte Menüs und Contents anzeigen. Das sieht dann so aus:
            PHP-Code:
            <?php
            $menus 
            = array('menu1''menu2''foo');  // zulässige Menüs
            $contents = array('conten1''bar''content2');  // zulässige Contents

            if (in_array($_GET['menu'], $menus)) {  // prüfen ob Menü erlaubt
                
            include $_GET['menu'] . '.php';  // bindet foo.php ein
            } else {  // unerlaubter Menü-Parameter, normales Menü anzeigen
                
            include 'menu1.php';  // bindet menu1.php ein
            }
                
            // jetzt das selbe nochmal für den Content
            if (in_array($_GET['content'], $contents)) {
                include 
            $_GET['content'] . '.php';
            } else {
                include 
            'content1.php';
            }

            ?>
            Das wars schon, ... und er hat nichtmal gebohrt!

            Kommentar


            • #7
              Sorry das ich solange nicht zurückgeschrieben habe!

              Ich hatte sehr zu tuhn !

              Nun hatte ich Zeit und habe ein bisschen rumgebastelt und verstehe das ganze so halb. Es funktioniert auch nur halbwegs hehe .

              Ich hab jetzt einmal eine TestSeite gemacht und alles eingebaut.

              Die Testseite findet ihr hier

              Folgender PHP Code verbirgt sich dahinter.
              Es ist ein durcheinander finde ich.
              PHP-Code:
              <?php
                  
                  
              if(!isset($path) || empty($path)) { $path "news"; }
                      
              $filename $path.".php";
                          if (
              file_exists($filename)) {
                      include(
              $path.".php");
                  } else {
                  
              //echo "404 Fehler - Seite nicht gefunden."; 


              $menus = array('programm_navi''tutorials_navi');  // zulässige Menüs
              $contents = array('programme_naviinhalt''tutorials''programme');  // zulässige Contents

              if (in_array($_GET['menu'], $menus)) {  // prüfen ob Menü erlaubt
                  
              include $_GET['menu'] . '.php';  // bindet foo.php ein
              } else {  // unerlaubter Menü-Parameter, normales Menü anzeigen
                 // include '404.php';  // bindet menu1.php ein
              }
                  
              // jetzt das selbe nochmal für den Content
              if (in_array($_GET['content'], $contents)) {
                  include 
              $_GET['content'] . '.php';
              } else {
                  include 
              'programm_navi.php';
              }


              ?>
              Aber der zb: ?path=menu&content=programme funktioniert.

              Wie genau muss ich jetzt das machen um links in der Navigation
              ein anderes Menü zu laden?
              Und wenn ich die Ausklammerungen heraus nehme, zb: bei // include '404.php'; // bindet menu1.php <- Er includet dieses File immer. <- Das bedeutet dass es ja logischerweise noch "Fehler" hat.
              PHP Anfänger

              Kommentar


              • #8
                Ist wohl etwas spät, aber:

                Man sollte NIEMALS per GET- Variable (die jeder Kiddie selber umschreiben kann) den Dateinamen eines includes bestimmen, selbst wenn das Ganze noch überprüft wird.

                Zur Sache...

                wie wärs mit:

                PHP-Code:

                switch(true//navi
                {
                   case(
                $_GET['menu'] ==  "programm_navi"):
                      include 
                "programm_navi.php";
                      break; 
                // break beendet nach dem include den Durchlauf des switchers
                   
                case($_GET['menu'] ==  "tutorials_navi"):
                      include 
                "tutorials_navi.php";
                      break;
                   default:
                      include 
                "404.php"//standard, falls $_GET['menu'] bei keinem "case" passt

                Dasselbe nochmal für den content switcher

                MfG rACT



                Zuletzt geändert von rACT; 13.08.2006, 20:14.

                Kommentar

                Lädt...
                X