PHP Menu Problem

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

  • PHP Menu Problem

    Es ist warscheinlich ein wenig kompliziert geschrieben!
    Ich versuche es eiinmal...............

    Ich habe die Homepage in einem Unterverzeichnis meiner Domain eingerichtet!
    zB: www.meinedomain.de/homepage1 (das ist das hauptverzeichnis)
    Wenn ich die Seite von diesem Verzeichnis aus aufrufe funktioniert auch alles ($siteRoot="/homepage1/";

    Da meine zweiter domainname direkt auf dieses verzeinis zeigt sollte das script auch dann funktionieren!
    Dann wird aber www.meinedomain2.de/homepage1 aufgerufen und da wird natürlich nichts gefunden.
    Meine Daten liegen auf www.meinedomain.de/homepage1

    Kann mir da jemand helfen?

    PHP-Code:
    <?
    $siteRoot="/";
    $menuStruct=array(
    "Home"=>array("root"=>$siteRoot."xtest.php"),
    "Über uns"=>array("root"=>$siteRoot."xtest2.php", "Firma"=>$siteRoot."firma.php", "Beteiligungen"=>$siteRoot."beteiligungen.php"),
    "Allgemein"=>array("root"=>$siteRoot."allgemein.php", "Irgendwas"=>$siteRoot."irgendwas.php", "Noch mehr"=>$siteRoot."nochmehr.php")
    );


    if($PHP_SELF == $menuStruct[0]['root']){
      foreach($menuStruct as $key=>$value){
        if($PHP_SELF == $value['root']){
           echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">$key</a></div>\n";
        }
        else{
           echo "<div class=\"fstLevel\"><a href=".$value['root'].">$key</a></div>\n";
        }
      }
    } else {
      foreach($menuStruct as $key=>$value){
        if($PHP_SELF == $value['root']){
           echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">$key</a></div>\n";
        }else{
           echo "<div class=\"fstLevel\"><a href=".$value['root'].">$key</a></div>\n";
        }
        foreach($value as $key2=>$value2){
          if(array_search($PHP_SELF,$value)){
            if($key2 != "root")
               if($PHP_SELF == $value2){
                  echo "<div class=\"secLevelActive\"><a href=".$value2.">$key2</a></div>\n";
               }else{
                  echo "<div class=\"secLevel\"><a href=".$value2.">$key2</a></div>\n";
               }
          }
        }
      }
    }
    ?>
    und wenn ich $siteRoot = "http://www.meinedomain.de/homepage1";
    aufrufe erscheinen keine unter-menus!

    kann mir jemand helfen??
    Zuletzt geändert von arnold; 01.03.2005, 18:04.

  • #2
    http://www.php-resource.de/forum/sho...threadid=50454

    was du brauchst, ist pfadgenerierung in abhängigkeit von einer servervariable, die den domainnamen enthält. schau mal ins phpinfo() und such dir eine passende aus.

    Kommentar


    • #3
      du meinst den absoluten pfad oder was??

      Kommentar


      • #4
        nein.

        Kommentar


        • #5
          was ich gar nicht verstehe und wo ich auch nicht weiterkommen (da nützt mir auch phpinfo() nicht)!

          $siteRoot = "http://www.meinedomain.de/homepage1";
          wenn ich das so eintrage -> erscheint kein untermenu!
          wiso?? ich werde einfach nicht schlau daraus!

          Kommentar


          • #6
            du kannst in phpinfo() sehen, welche servervariable sich dazu eignet, zwischen den zwei domainnamen zu unterscheiden. wenn du eine überprüfung einbaust, weißt du, über welche domain die page aufgerufen wurde und kannst einen entsprechenden pfad generieren.

            aber ich wiederhole mich.

            Kommentar


            • #7
              du meinst warscheinlich das hier:

              PHP-Code:

              if ($_SERVER['SERVER_NAME'] == "www.meinedomain.de") {
              $siteRoot "/homepage1/";
              } elseif (
              $_SERVER['SERVER_NAME' == "http://www.meinedomain2.de") {
              $siteRoot "/";

              wenn ich das einbaue erhalte ich eine fehlermeldung:
              Parse error: parse error, unexpected ')', expecting ']'

              Kommentar


              • #8
                Könnte dran liegen, dass du eine ] vergessen hast...
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  ja genau das war ein problem! aber das "alte" bleibt bestehen!

                  PHP-Code:
                  if ($_SERVER['SERVER_NAME'] == "www.meinedomain.de") {
                  $siteRoot "/homepage1/"// Dieser Teil funktioniert!!
                  } elseif ($_SERVER['SERVER_NAME'] == "http://www.meinedomain2.de") {
                  $siteRoot "/"// Da bleibt der Fehler vorhanden! Keine Untermenus!!

                  Kommentar


                  • #10
                    evtl. stimmt der rest der logik nicht, die überprüfung ist an sich bis auf eine kleinigkeit richtig - der servername enthält keine angaben über das protokoll.

                    aber du wirst doch wohl mehr feststellen können, als "menüs funktionieren nicht".

                    Kommentar


                    • #11
                      ich glaube viel mehr das diese abfrage unnötig ist!
                      das menu verhält sich genau gleich wie am anfang.

                      beim punkt "über uns" sollten die restlichen einträge angezeigt werden (zb: "firma")!
                      diese aber erscheinen einfach nicht. und das nur wenn ich die seite über http://www.meinedomain2.de aufrufe.

                      ich glaube das irgendetwas an diesem code nicht stimmt.....

                      PHP-Code:
                      <?

                      foreach($value as $key2=>$value2){
                            if(array_search($PHP_SELF,$value)){
                              if($key2 != "root")
                                 if($PHP_SELF == $value2){
                                    echo "<div class=\"secLevelActive\"><a href=".$value2.">$key2</a></div>\n";
                                 }else{
                                    echo "<div class=\"secLevel\"><a href=".$value2.">$key2</a></div>\n";
                                 }
                            }

                      ?>

                      Kommentar


                      • #12
                        auch das ist kein ansatz.

                        - formuliere das problem kurz und eindeutig.
                        - reduziere den code auf das wesentliche
                        - übertrage das ergebnis auf den rest der anwendung.

                        Kommentar

                        Lädt...
                        X