conni: PHP Parameterübergabe

Hallo zusammen,
ich habe folgendes Problem, das ich auch nach tagelangem Rumstöbern u.a. im Forum nicht lösen konnte: möchte eine PHP-Navigation basteln, in der bei Auswahl eines Menüpunktes die entsprechenden Untermenüpunkte ausklappen/sichtbar werden. Das Ganze hat im Frameset super geklappt, will nun aber von Frames wegkommen und den alten Navigationsframe in einem Div der einzelnen Seiten haben. In diesen div wird eine nav.php includet. Mein Quelltext in der nav.php:
...
<a href="leistungsspektrum.php?seite=1">Leistungsspektrum</a>
<?php //Untermenüs zu Leistungsspektrum
$zahl=$_GET['seite'];
echo "var zahl:".$zahl;
  if ($zahl == 1) // Wenn der Zahl eine Seite zugeordnet ist
  {
echo "<br><a href=".$prophylaxe.">Prophylaxe</a><br>";
...
?>

In der aufgerufenen Datei Leistungsspektrum ist $zahl bekannt. In der dort includeten Datei nav.php nicht. Liegt das daran, dass dieser div mit nav.php nicht neu geladen wird? Oder habe ich einen anderen grundsätzlichen Denkfehler? Register globals sind auf dem Server jedenfalls on und ich verwende php 4.3.1

Über Hilfe/Denkanstöße würde ich mich freuen.

Viele Grüße
conni

  1. hi,

    In der aufgerufenen Datei Leistungsspektrum ist $zahl bekannt. In der dort includeten Datei nav.php nicht.

    wie hast du denn das include gemacht - mit relativem pfad über das dateisystem des servers, oder absolut über http://... ?

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. hi,

      In der aufgerufenen Datei Leistungsspektrum ist $zahl bekannt. In der dort includeten Datei nav.php nicht.

      wie hast du denn das include gemacht - mit relativem pfad über das dateisystem des servers, oder absolut über http://... ?

      gruß,
      wahsaga

      Hi, in der Datei leistungsspektrum.php wird die nav.php so includet:
      <?php
      require ("/www/htdocs/.../php/inc.php");
      ?>
      </head>
      <body>
      <?php
      include ($nav);
      ?>
      In der Datei inc.php werden alle Parameter definiert, u.a.:
      $nav = "http://www....de/nav_neu.php";

      Hoffe, ich habe die Nachfrage richtig verstanden.

      Viele Grüße
      conni

      1. hi,

        Hoffe, ich habe die Nachfrage richtig verstanden.

        ja, aber warum beantwortest du sie nicht direkt?

        $nav = "http://www....de/nav_neu.php";
        include ($nav);

        also machst du das include über HTTP.
        dabei kann nav.php die variablen aus deinem hauptscript natürlich nicht kennen, weil so ein separater HTTP-request an den webserver gestellt wird.

        mach das include also über das lokale dateisystem des servers, dann kennt nav.php auch die variablen aus dem übergeordneten script.

        include '/relativer_pfad/nav.php';

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Hi,

          Hoffe, ich habe die Nachfrage richtig verstanden.

          ja, aber warum beantwortest du sie nicht direkt?

          hab nicht direkt geantwortet, weil ich mich leicht in den Begriffen vertue.

          mach das include also über das lokale dateisystem des servers, dann kennt nav.php auch die variablen aus dem übergeordneten script.

          include '/relativer_pfad/nav.php';

          Habe es jetzt mit relativen Angaben gemacht
          include ("../nav_neu.php");
          aber es klappt trotzdem nicht.

          Trotzdem danke schonmal.
          Viele Grüße
          conni

          1. aber es klappt trotzdem nicht.

            Was klappt nicht?
            Fehlermeldungen sind da immer ganz hilfreich, findet der include statt?

  2. Hi Conni!

    Der Fehler muß irgendwo anders liegen. Wahrscheinlich hast Du den problematischen Codeteil noch nicht hier gepostet, ich kann jedenfalls keinen Fehler erkennen.

    Register Globals dürfte damit gar nichts zu tun haben, da Du die Seite ja über $_GET ausliest und nicht direkt als $seite ansprichst.

    freundlichen Gruß
    Danny

    --
    Selfcode: fo:) br:& n4:& ie:% mo:) va:| de:] zu:) fl:| ss:) ls:& ls:& js:|
    Motto:    OpenSource - Das Wissen der Menschheit gehört der Welt!
  3. Hallo nochmal,
    hatte bei meinem letzten Versuch eine realtive Pfadangabe vergessen.

    So geht es tatsächlich !!

    Gibt es aber denn keine andere Möglichkeit, die nav.php zu includen. Wenn es sich in der Site um sehr viele Dateien handelt, die von mehreren Redakteuren geschrieben werden, welche sehr unterschiedliche HTML- geschweige PHP-Kenntnisse haben, dann wäre es also schön, wenn ihnen eine Variable in den zu schreibenden Seiten vorgegeben werden könnte, ohne dass sie relative Verweise basteln müssen.

    Vielen Dank aber für die Hilfe. Auf die Lösung wäre ich ewig nicht gekommen.

    Grüße
    conni

    1. Hallo nochmal,
      hatte bei meinem letzten Versuch eine realtive Pfadangabe vergessen.

      So geht es tatsächlich !!

      Gibt es aber denn keine andere Möglichkeit, die nav.php zu includen. Wenn es sich in der Site um sehr viele Dateien handelt, die von mehreren Redakteuren geschrieben werden, welche sehr unterschiedliche HTML- geschweige PHP-Kenntnisse haben, dann wäre es also schön, wenn ihnen eine Variable in den zu schreibenden Seiten vorgegeben werden könnte, ohne dass sie relative Verweise basteln müssen.

      Es gibt die möglichkeit ein Standard include Pfad zu definieren, das geht sogar in der .htaccess, zunächst versucht hph nämlich die Datei immer im eigenen Verzeichniss zu finden, und dann im Standard include Verzeichniss.
      http://de.php.net/manual/de/function.ini-set.php
      Dann kannst die komplette Navi immer mit include ("menue.php"); einfügen.
      Wenn Du von externen Servern zugreifen willst, geht das in der Regel nur über file oder ähnliche Funktionen, das Manual liefert dir dazu ausreichend Futter!

      Viele Grüße aus Lichtenberg

      TomIRL

      1. Hi,

        Es gibt die möglichkeit ein Standard include Pfad zu definieren, das geht sogar in der .htaccess, zunächst versucht hph nämlich die Datei immer im eigenen Verzeichniss zu finden, und dann im Standard include Verzeichniss.
        Wenn Du von externen Servern zugreifen willst, geht das in der Regel nur über file oder ähnliche Funktionen, das Manual liefert dir dazu ausreichend Futter!

        danke für den Tipp.

        Da muss ich mich erstmal schlau machen, ist aber schön, dass es prinzipiell geht.

        Viele Grüße
        conni