Variablen übergabe im Link, hilfe!

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

  • Variablen übergabe im Link, hilfe!

    Also, ich habe jetzt sämtliche Leute die ich kenne gefragtm und stundenlang mit google gesucht, aber irgendwie Hilft mir das alles nicht weiter.
    Ich kann ja per Link einen Wert übergeben:
    PHP-Code:
    echo "<a href=seite.php?var=$wert'>Klick</a>"
    Und per Header klappt das ja auch:
    PHP-Code:
    header("location:seite.php?var=$wert"); 
    So, mein Problem ist jetzt, dass ich ein Layout mit Div´s gemacht habe und die Links per switch Anweisung belege.
    Normalerweiße so:

    ## im index ##
    <div id="content">
    <?php require("$mainframe") ?>
    </div>

    ## switch ##
    PHP-Code:
    $mainframe "../site/clear.php";
    $show $_GET["show"];

    switch (
    $show) {
    default:
    //$mainframe = "../site/clear.php";
    break; 
    u.s.w. ...

    ## Link ##
    PHP-Code:
    echo "<a href='index.php?show=clear>Link</a>"
    Zum Bleistift. Und jetzt kommt mein Problem. Ich kann über einen normalen Link immer noch prima variablen übergeben, aber mit einem Header nicht mehr.
    Wenn ich z.B. auf den Login Button klicke wird, egal was ich in das formular rein schreibe, immer die startseite aufgerufen. Was ich schon mal gar nicht verstehe xD
    Ich habe auch schon die Default Anweisung mal weggenommen, aber das passiert immer noch.

    Also was ich brauche ist eine lösung wie die Header trotzdem funktionieren wie sie sollen und die variablen übergeben, oder eine andere möglichkeit eine neue Seite ber Buttonklick zu laden, aber möglichst mit PHP.

    Ps.: Schreibfehler sind geschenkt ^^"

    Edit:
    Ich habe kein Syntax Problem oder ähnliches, an sich funktioniert ja alles (wenn ichs nicht ins Layout einbinde). Ich weiß nur nicht wie jetzt wegen dem Layout ich die Header umschreiben muss. Ich benutze XAMPP 1.5.2, bei mehr infos bitte sagen wo ich was finde ich bin blutiger angänger und arbeite erst seit 1-2 Wochen richtig mit PhP +_+
    UND
    es kommen keine Fehlermeldungen oder sonst was es wird schlicht und einfach ohne drum rum der index neu geladen(es liegt nicht am heder der steht scho da wo er hin gehört).
    Zuletzt geändert von Lunatic Dragon; 23.07.2006, 09:04.

  • #2
    Dir ist aber klar das deine Seite bei einer Header Umleitung so anfangen muss oder?

    PHP-Code:
    <?php
    header
    ("Location: .....");

    // Rest vom Code
    Besser gesagt KEINE Design oder sonstige ausgaben vor dem header befehl.... (auch kein Link)

    Weiterhin schreib mal

    error_reporting(E_ALL);

    in dein Script.

    Und zeig mal ein wenig mehr von der Switch Anweisung.
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      Ja, das mit dem Header ist schon klar. hab das lay so mit php aufgebaut das die seiten die ich rein laden lasse ganz am anfang stehen. ich weiß nicht wie ichs geschafft hab aber das geht.

      mein switch:
      PHP-Code:
      <?php
      $mainframe 
      "../site/clear.php";
      $show $_GET["show"];

      switch (
      $show) {
      default:
      //$mainframe = "../site/clear.php";
      break;

      case 
      "clear":
      $mainframe "../site/clear.php";
      break;
      case 
      "news":
      $mainframe "../newssystem/news.php";
      break;

      case 
      "admin_login":
      //$mainframe = "../newssystem/admin_login.php";
      break;

      }
      ?>
      letzere auskommentierte Zeile ist mein Problem link, der beim Klick auf den Login Button aufgerufen wird. (in der Seite als Header nach einem isset)
      Wie gesagt ist in der Syntax alles ok, ohne dieses switch geht es. Wenn ich den Switch an dieser stelle weglass und den Header normal lasse, wird die Seite zwar geöffnet, aber nicht im Div. ich bin mir auch nicht sicher ob ich den Header überhaupt so wie die normalen Links umschreiben "darf" oder wo ich die variable dran hängen muss, im Header oder im Switch xD Hab schon viel rumprobiert...

      Edit:
      gibt es noch eine andere möglichkeit eine Seite per Buttonklick zu laden? also eine alternative für den Header?

      (Vllt sollte ich einfach mein Div und ein Iframe umschreiben ich glaub das würde mir viel ärger ersparen. dummerweiße hatt ein iframe eine feste größe aber im notfall kann ich damit auch leben.)
      Zuletzt geändert von Lunatic Dragon; 23.07.2006, 09:53.

      Kommentar


      • #4
        PHP-Code:
        <?php
        if (isset($_GET["show"]))
        {
          switch (
        $_GET["show"])
          {
             case 
        "admin_login":
               
        $url "pfad/zum/admin_script.php";
             break;
          }
          
        header ("Location: $url");
        }
        ?>
        Das würde dich bei gesetztem ?show=admin_login nach pfad/zum/admin_script.php weiterleiten.

        Du redest immer von "In der Seite als Header"

        Wenn du <div><!-- Content --></div> mit leben füllen willst ist ein include oder require angebracht. Hat auch nichts mit header zu tun.
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          an beide:
          * der location-header verlangt einen _absoluten_ URI. rtfm @ http://www.php.net/header
          * zweitens sollte nach einem location-header ein exit() oder die() erfolgen, um den skriptabbruch zu erzwingen. rtfm @ siehe oben.
          PHP-Code:
          <?php
          header
          ('Location: http://www.google.com');
          header('Location: http://www.foo.com');
          ... wird zu foo.com umleiten.

          .. und schließlich sollte OP den tipp von hhcm beherzigen und in seinem fall header() gar nicht erst verwenden.

          Kommentar


          • #6
            ich weiß ich bin verwirrend..
            also ich tu über require("$mainframe") meine seiten ins lay laden, der div befehl steht dabei in den seiten die über das require eingebunden werden drin damit das mit dem header auch immer funktioniert weil das muss ja immer vor html begin stehen.

            Und die Header stehen ja schon in einem isset, weil ich durch buttonklick halt eine neue Seite laden will (und nebenbei noch ne Datenbank beschreiben lasse).
            hmm aber ich werd das mit deinem Switch mal ausprobieren, ich hab aber das gefühl da kommt das selbe raus wie wenn ich switch einfach komplett weglasse und die url normal rein schreib.

            Edit:
            mit relativen pfad hab ichs auch noch nich versucht bis jetzt hats ja auch so geklappt ôo mal sehn. aber ne alternativefür header gibts nicht wirklich oder?
            Zuletzt geändert von Lunatic Dragon; 23.07.2006, 10:31.

            Kommentar


            • #7
              Original geschrieben von Lunatic Dragon
              aber ne alternativefür header gibts nicht wirklich oder?
              doch. eine viertelstunde länger nachdenken. du wirst feststellen, dass du den header gar nicht brauchst und dass du anders arbeiten könntest.

              Kommentar


              • #8
                ôo ich finde ich hab lange genug gedacht.
                Ich kenne keine andere möglichkeit eine Seite automatisch laden zu lassen ohne auf nen link klicken zu müssen.

                Edit:
                außer mit javascript aber ich will kein Javascript benutzen weil man das abstellen kann.

                Kommentar


                • #9
                  Original geschrieben von Lunatic Dragon
                  ôo ich finde ich hab lange genug gedacht.
                  falsche antwort. dann finde ich nämlich, dass du genug hilfe bekommen hast.

                  ein allerletzter hinweis: du willst nicht eine andere seite automatisch laden lassen, sondern den inhalt der bereits geladenen seite anhand eines GET-parameters ändern.

                  grüße
                  axo

                  Kommentar


                  • #10
                    ok jetzt bin ich verwirrt.
                    ich will dei seite nicht "überleden" sondern wirklich einfach die seite weg und ne neue laden. ich weiß nicht wie ich das mit GET machen könnte ôo mag sein das es da ne möglichkeit gibt. aber ich kenn sie nicht.
                    Und ich wüsst auch nicht nach was für nem stichwort ich suchen könnte bei self-php oder sonst wo. mit GET bekomm ich Infos über formulare und wertübergabe. aber das hilft mir so nicht weiter.

                    Kommentar


                    • #11
                      Versteh ich jetz schon wieder nicht.

                      Was macht deiner Meinung nach include oder require?

                      sondern wirklich einfach die seite weg und ne neue laden.
                      PHP-Code:
                      <?php
                      if (isset($_GET["show"]))
                      {
                         switch (
                      $_GET["show"])
                         {
                            case 
                      "seite1":
                              require_once(
                      "pfad/zur/seite1.php");
                            break;

                           case 
                      "seite2":
                              require_once(
                      "pfad/zur/seite2.php");
                            break;
                        }
                      }
                      ?>
                      Das sollte es doch schon gewesen sein.

                      Rufst du http://www.deinedomain.de/index.php?show=seite1 auf, so wird sie auch angezeigt. (Ohne header zu gebrauchen)

                      Solange du nicht auf die blöde idee kommst direkt require($_GET["show"]) zu machen sollte das doch schon reichen ?!

                      Falls deine Unterseiten einfach nur ein

                      <div> Irgendein Content </div> beinhalten kannst du VOR und HINTER dem oben stehenden Code noch dein HTML Grundgerüst einbinden..
                      gruss Chris

                      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                      Kommentar


                      • #12
                        ein require bindet etwas in die seite ein, das weiß ich. so gesehen schaffe ich mir ein "fenster in einem div das durch ein require mit einer seite gefüllt wird. mit was dieses div gefüllt wird bestimme ich mit dem switch und den links darin. das is ja klar. aber das ändert nichts daran dass anstatt die seite die geladen werden soll die startseite aufgerufen wird.

                        ich werd an das problem mal ganz anders ran gehen und mein layout umschreiben. bis jetzt hatte ich das layout im indx und hab den seiteninhalt mit require rein geladen. ich werde mal das layout statt dessen auf jede seite packen und den index weg machen vll bringt mich das weiter.

                        danke trotzdem ich werd das mit dem switch im isset mal ausprobieren.

                        Kommentar


                        • #13
                          Was ist denn so schlimm daran das die Startseite aufgerufen wird?
                          gruss Chris

                          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                          Kommentar


                          • #14
                            naja ganz einfach ich will auf eine andere seite und nicht auf die startseite xD wenn im link steht, bzw. im header, ich will auf die admin seite, dann will ich da nicht die startseite sehen wenn ich drauf klick ^^

                            hab das prob jetz mit designwechsel gelöst ^^

                            Kommentar


                            • #15
                              Wie verwirrend ist das denn ?

                              <a href="../irgendwas/admin.php">Admin Panel</a>

                              Dann bist du doch auf der admin Seite.

                              Wozu Header, require oder überhaupt PHP.. Das möchte ich jetz aber wissen ....
                              gruss Chris

                              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                              Kommentar

                              Lädt...
                              X