total komisch....

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • total komisch....

    Also bin ich blöde?? Ich hab voll was einfaches... aber da kommt immer eine "1" und ich weiß nicht warum?

    Versucht mal folgendes:
    legt bitte mal 2 Dateien an (index.php und navi_a.php)
    index.php
    PHP Code:
    <?php
      
    if (isset($_GET['navi'])) {
        if (
    $_GET['navi'] == "a")  { $navi = include("navi_a.php"); }
        if (
    $_GET['navi'] == "b")  { $navi = include("navi_b.php"); }
      }
      else {
        
    $navi = include("navi_a.php");
      }

    echo 
    $navi;
    ?>
    navi_a.php
    PHP Code:
    <?PHP
    print 'Link';
    ?>
    Rufe ich jetzt die index.php auf, bekomme ich logischerweise die navi_a.php angezeigt. Also sollte da nur stehen "Link" aber neiiiin ich bekomme "Link1" ausgegeben.

    Woher kommt die "1" ????
    Last edited by Nordin; 13-04-2006, 10:00.

  • #2
    Hallo

    entferne mal das "echo" und versuche nicht das was du includest in eine Variable zu schreiben. Also lösche auch "$navi = "

    Dann sollte es gehen!

    Comment


    • #3
      Ah ok, es lag am echo...

      Aber warum kommt wenn ich das echo setze eine 1? Hmm nun gut ich dank dir...

      Comment


      • #4
        Weil die 1 nur der rückgabewert in der variable $navi ist. Also das ergebnis der funktion include. Die navi.php wird bereits in der if-abfrage includiert.

        Ich würde es eher so machen:
        PHP Code:
        <?php
          
        if (isset($_GET['navi'])) {
          if (
        $_GET['navi'] == "a")  { 
             include(
        "navi_a.php");
             }
             elseif (
        $_GET['navi'] == "b")  {
             include(
        "navi_b.php");
             }
          }
          else {
          include(
        "navi_a.php");
          }
        ?>
        [color=blue]...ich sehe was, was du nicht siehst...und das ist der QUELLTEXT![/color]

        Comment


        • #5
          Aber warum kommt wenn ich das echo setze eine 1?
          Vielleicht weil du ein echo mit einem print drinnen machst. Du versuchst php Code mit echo auszugeben. Du kannst aber nur String mittels echo ausgeben.

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Comment


          • #6
            eben! mach mal ein
            PHP Code:
            echo gettype($navi); 
            anstatt
            PHP Code:
            echo $navi
            dann siehst du was tobi meint.
            [color=blue]...ich sehe was, was du nicht siehst...und das ist der QUELLTEXT![/color]

            Comment


            • #7
              Ja ich verstehe... hab es schon bei dir kapiert.


              @cipolla
              danke für dein Hinweis... ich muss die Navi aber in einer Variablen stecken... funzt jedenfalls.

              Comment


              • #8
                Wenn du die navi unbedingt in der variable haben willst ist das etwas komplizierter. ein ansatz wäre die ausgabe zu puffern und dann in der variable abzuspeichern. so grob aus dem kopf:

                PHP Code:
                ob_start();
                include(
                "navi.php");
                $navi=ob_get_contents();
                ob_end_clean();

                // hier die Augabe

                echo $navi
                [color=blue]...ich sehe was, was du nicht siehst...und das ist der QUELLTEXT![/color]

                Comment

                Working...
                X