1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

PHP Variablen Problem

Discussion in 'Web-Know-how für die Homepage' started by binauchhier, Sep 10, 2006.

Thread Status:
Not open for further replies.
  1. binauchhier

    binauchhier Kbyte

    Kann mir hier irgendjemand bei meinem Problem helfen?

    Problem: Die Datei menu.php wird 2x mittels include() in einer Datei eingebunden. Jedesmal vorher wird die Variable $menu belegt.
    Aber: jede Belegung != "komplett" hat den gleichen Effekt wie eine Belegung mit "sitemap". Was hab ich hier falsch gemacht?

    Hier mal die Dateien in Auszügen:

    1. Datei
    PHP:
    <?php include($_SERVER["DOCUMENT_ROOT"]."/includes/doctype.php"); ?>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <?php /* Die kopfdaten */ ?>
    </head>
    <body>
      <?php include($_SERVER["DOCUMENT_ROOT"]."/includes/logos.php"); ?>
      <?php $menu "komplett"; include($_SERVER["DOCUMENT_ROOT"]."/includes/menu.php"); ?>
      <div id="inhalt">
        <?php $menu "m0"; include($_SERVER["DOCUMENT_ROOT"]."/includes/menu.php"); ?>
      </div>
    </body>
    </html>
    und die Datei menu.php
    PHP:
    <?php
    if ($menu == "komplett") { ?>

      <div id="Blinde" class="blind">
        <!-- 
          Für Blinde - zum Überspringen vom Menü 
          -->
        <h1>H1</h1>
        <p><a href="#inhalt">Menü &uuml;berspringen</a>.</p>
      </div>
      <!-- 
          Menü
        -->
      <div id="kurznavi" title="Kurznavigation">
        <?php }
    if (
    $menu == ("komplett" || "sitemap")) { ?>
        <ul>
          <li> <a href="/interessiert.php">kontakt</a> </li>
        </ul>
        <?php }
    if (
    $menu == "komplett") { ?>
      </div>
      <div id="menu">
        <?php ?>
        <ul>
          <?php 
    if ($menu == ("komplett" || "sitemap" || "m0")) { ?>
          <li style="z-index:10" id="m0" <?php if($menu=="komplett"){ ?>onmouseover="SHOW(0,6);" onmouseout="HIDE(6);"<?php ?> > <a href="/wir/">wer&nbsp;wir&nbsp;sind</a>
            <ul id="subm0" class="submenu" <?php if($menu=="komplett"){ ?>onmouseover="KEEPSHOWING(0,6);" onmouseout="HIDE(6);"<?php ?> >
              <li> <a href="/denken.htm">denken
      glauben
        erleben</a> </li>
            </ul>
          </li>
          <?php 
     if (
    $menu == ("komplett" || "sitemap" || "m1")) { ?>
          <li style="z-index:9" id="m1" <?php if($menu=="komplett"){ ?>onmouseover="SHOW(1,6);" onmouseout="HIDE(6);"<?php ?> > <a href="/veranstaltung.htm" >termine</a>
            <ul id="subm1" class="submenu" <?php if($menu=="komplett"){ ?>onmouseover="KEEPSHOWING(1,6);" onmouseout="HIDE(6);"<?php ?> >
              <li> <a href="/hauskreis.htm?evt_type=t_2">hauskreise</a> </li>
            </ul>
          </li>
          <?php }
     
    /* Das ganze noch ein paar mal */ ?>
        </ul>
        <?php 
    if ($menu == "komplett") { ?>
      </div>
      <?php 
    $menu ""?>
    Danke!
    binauchhier
     
  2. frajoti

    frajoti Viertel Gigabyte

    Ich bin mir nicht sicher, ob ein mehrmaliges Includieren überhaupt möglich ist. Weil alle Variablen direkt gültig sind. Evtl. hat die Variable $menu einen anderen Wert als gewünscht. Ich würde diesen Wert mal zwischendurch mit echo $menu; ausgeben.

    Evtl. weitere Hilfe: http://de.php.net/manual/de/function.include.php
     
  3. binauchhier

    binauchhier Kbyte

    Irgendwas war wohl mit der if-Schleife falsch. Wenn ich es so schreibe
    PHP:
     if (($menu == "komplett") || ($menu == "sitemap") || ($menu == "m2"))
    geht es.

    @frajoti Die Wertzuweisung was korrekt. Mit echo $menu wurde "m0" ausgegeben.
     
  4. frajoti

    frajoti Viertel Gigabyte

    Hm, ja. Die If-Schleifen sahen schon merkwürdig aus. Da wollte ich auch noch drauf hingewiesen haben. Bin davon ausgegangen, dass es eine andere, evtl. neue Schreibweise ist. Na, jedenfalls es läuft. :)
     
  5. binauchhier

    binauchhier Kbyte

    Das hatte ich auch gehofft :)
    Und danke für die Hilfe!
     
  6. kalweit

    kalweit Hüter der Glaskugel

    Ist es - jedoch in meinen Augen "schlechter Stil". Problematisch wird es zudem, wenn Funktionen inkludiert werden sollen. Aber damit man sich auch da noch keine Gedanken machen muss :rolleyes: , wurde include_once() erfunden.

    @binauchhier

    btw: schon mal über switch() [1] nachgedacht?

    [1] http://de.php.net/manual/de/control-structures.switch.php
     
  7. enschman

    enschman Megabyte

    Hi,
    wäre es für deine menu.php nicht besser gewesen diese in eine Funktion zu schreiben und dann die menu.php einmal am Anfang zu includieren und an den 2 gewünschten Stellen nur die Funktion aufzurufen?

    Das war nämlich mit schlechtem Stil gemeint...

    mfg Tenschman
     
  8. binauchhier

    binauchhier Kbyte

    @kalweit
    switch kannte ich noch gar nicht - klingt aber gut :)
    @ tenschmann
    oh weia, Funktionen - die will ich einfach nicht kapieren. Was ich da wie mit den Variablen beachten muss - keine Ahnung - und auf php.net hab ich auch kein gutes Tutorial gefunden.
     
  9. kalweit

    kalweit Hüter der Glaskugel

    Dafür ist php.net auch nicht da. Einen praxisbezogenen Einstieg findest du unter http://www.php-faq.de/
     
Thread Status:
Not open for further replies.

Share This Page