Problem mit Variablenübergabe im Frameset !

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

  • Problem mit Variablenübergabe im Frameset !

    Guten Tag,
    Ich bin grade dabei ein kleines Spiel zu Programmieren mit PHP doch es ist ein großes Problem aufgetaucht !!!

    Nach dem Login werde ich auf eine Seite (game.php) geleitet die mich wiederum gleich weiter Leitet zu einer Seite (cooc.php).Name cooc weil das spiel so heist naja egal aber die weiterleitung auf cooc.php ist ein Problem da es ein Frameset ist

    Quelle:
    cooc.php:
    <frameset cols="170,*">
    <frame src="menue.php" name="links">
    <frame src="uebersicht.php" name="rechts">
    </frameset>

    Von der Seite game.php wird mir die weiterleitung
    cooc.php?nick=Keyto&pass=886bb73b315... und so weiter geben das wollte ich auch so aber eben wollte ich aus 1, 2 Seiten machen also eben ein Frameset.Allerdings soll die Datei uebersicht.php genau so wie die Datei menue.php die Variablen auslesen können die ich über den Link ?... übergebe allerdings keiner der beiden Seiten erkennt die Variablen.Als der Link aber noch uebersicht.php?nick=Keyto&pass... ohne Frameset halt hieß funktionierte das noch...Anscheinend werden die Variablen zu cooc.php übergeben aber nicht zu den beiden Unterseiten.
    Wie kann man das umgehen ich habe das schonmal irgentwo gesehen wo das ging.
    Kurz:Wie übergebe ich die Variabeln auf die beiden Frameset-Seiten !
    mfg Inuyasha
    Zuletzt geändert von Inuyasha; 11.07.2006, 21:11.
    Achtung ich bin eine wandelne Frage

  • #2
    Hai!

    Du musst die Parameter, die du der cooc.php übergibst, den einzelnen Seiten im Frameset weitergeben.

    Lies in der Datei cook.php die $_GET-Parameter aus und hänge sie an die Dateiverweise aus!

    Beispiel cooc.php

    PHP-Code:
    <?php
      $nick 
    $_GET['nick'];  // je nach Sicherheit sollten hier die...
      
    $pass $_GET['pass'];  // ... Variablen geprüft werden!
    ?>

    <frameset cols="170,*">
    <frame src="menue.php?nick=<?php echo $nick?>&pass=<?php echo $pass?>" name="links">
    <frame src="uebersicht.php?nick=<?php echo $nick?>&pass=<?php echo $pass?>" name="rechts">
    </frameset>
    Damit kannst du in den Seiten menue.php und uebersicht.php wiederum die $_GET - Parameter auswerten!

    LGs Steafn
    Man strahlt hier nicht in Wien - denn bald strahlt es aus Temmelin :-|

    Kommentar


    • #3
      Also in diesem Falle wirst du den Aufbau von cooc.php von PHP machen lassen müssen. Die Werte werden ja an cooc.php geschickt. Diese kennt dann die Werte und baut damit das Frameset auf und gibt den src die entsprechenden Var Werte mit
      Code:
      <a href="cooc.php?var=2&var1=3">...</a>
      PHP-Code:
      echo '<frameset cols="170,*">';
      if(
      $_GET['var'] && $_GET['var1']){
          echo 
      '<frame src="menue.php?var='.$_GET['var'].'&amp;var1='.$_GET['var1'].'" name="links">
      <frame src="uebersicht.php?var='
      .$_GET['var'].'&amp;var1='.$_GET['var1'].'" name="rechts">
      </frameset>'
      ;
      else{
         
      //do something else

      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)

      Kommentar


      • #4
        hast du auch argument "target" bei den links benutzt?
        wenn du aber bei 2 frames gleichzeitig Änderungen haben willst, dann kommst du ohne Javascript leider nicht weiter
        Slava
        bituniverse.com

        Kommentar


        • #5
          Oh Vielen Vielen Dank sogar so schnell geantwortet es funktioniert
          mfg Inuyasha
          Achtung ich bin eine wandelne Frage

          Kommentar


          • #6
            Hi Inuyasha,
            sowie ich das verstanden hab willst du Passwort und Name an die beiden php-Dateien weitergeben. Da Name und Passwort einfach sichtbar sind würd ich dir empfehlen eher $_SESSION[] Variabeln zuverwenden als $_GET[]. Werden verschlüsselt als Session-Cookie gespeichert und sind von jeder Seite abrufbar. session variabeln sind genauso ein array wie die get var. Du musst nur am anfang jeder seite session_start(); einbaun.

            Z.B.
            PHP-Code:
            session_start();
            $_SESSION['name']="Name";
            $_SESSION['pass']="Passwort"
            Gruß Sebi

            Kommentar


            • #7
              [Variablen] Wieder Frameset !

              Ich habe noch eine frage die hier reinpasst aber wie ich finde wesentlich komplizierter ist.Ich versuche sie zu Erklären...
              Gleicher Aufbau wie oben !
              Links ist das Menü und Rechts ist die übersicht !
              Die übersicht zeigt momentan die Rohsoffe an und darüber befindet sich so ein Select Formular !

              Quelle:
              uebersicht.php:
              .....
              <?php
              echo'<form name=land>
              <select name=navi onChange="go()">
              <option value="">Länder</option>';

              chdir ('/web/????????/land/');
              for($count=0;$count<$landzahl;$count++){
              $link=$nicklandopen[$count];
              $dateiname=$nicklandopen[$count].".map";
              $name=file($dateiname);
              $nameright=explode("/",$name[1]);
              echo'<option value="uebersicht.php?nick='.$nickr.'&pass='.$passr.'&map='.$link.'">'.$nameright[0].'&nbsp;&nbsp;&nbsp;['.$nicklandopen[$count].']</option>';
              }
              echo'
              </select>
              </form>';
              ......
              Da erstellt er das Selectformular jenachdem wie viele Länder man hat !
              Und wenn ich jetzt z.B. 2 Länder habe einer heißt Venus der das andere Mars habe ,habe ich ein Problem.Jedes Land ist selbstständig das heißt Venus hat z.B. anderere Forschung ,Rohstoffmengen und natürlich auch verschiedent viele Einheiten!!!!
              Das eigentliche Problem ist jetzt das menue. das führt jetzt zwar mit Link z.B. zu buildings.php (Gebäude) oder so aber ich kann hinter dem ? die Variable nicht nicht fetshalten welches Land ich grade bei übersicht.php ausgewählt habe!!!Das heißt das die buildings.php garnicht weiß für welches land gebaut werden soll ,da ich das ja auf der rechten Seite auswähle aber der Link auf der Linken seite ist...Aber (ich weiß nich ob jemand kennt) z.B. Ogame hat das auch so und da geht das auch irgnetwie

              Wenn meine Frage jetzt hier niemand verstanden hat ist es nicht so schlimm und der sie verstanden hat kriegt von mir respeckt

              PS:Session habe ich noch nie richtig verstanden?¿ Wie müsste ich sie denn einbinden und wie rufe ich sie wieder ab ?(Geltungsbreich?)
              mfg Inuyasha

              ?>
              Achtung ich bin eine wandelne Frage

              Kommentar


              • #8
                Also $_SESSION[] ist eine superglobale Variable wie $_POST[], $_GET[] oder$_COOKIE..., du hast sie jedoch immer zuverfügung bis du den Browser schließt, wie ein session-Cookie.

                Du kannst z.B. in einer anderen php Datei auf die session var zugreifen, sofern du vorher die funktion session_start(); aufgerufen hast.
                wenn du in einer Datei z.B. menu.php
                PHP-Code:
                $_SESSION['name']="Name";
                $_SESSION['pass']="Passwort"
                in session variabln schreibst kannst du in einer anderen egal welcher und wie du zu ihr gekommen bist sie wieder auslesen oder z.B. anzeigen:
                PHP-Code:
                echo "Name:".$_SESSION['name']."<br>Passwort:".
                $_SESSION['pass']; 
                oder den Inhalt der session var einfach an eine normale var übergeben:
                PHP-Code:
                $name=$_SESSION['name'];
                $passwort=$_SESSION['pass']; 
                Ich hoffe ich hab dir damit weitergeholfen.
                Gruß Sebi

                Kommentar


                • #9
                  Du kannst z.B. in einer anderen php Datei auf die session var zugreifen, sofern du vorher die funktion session_start(); aufgerufen hast.
                  Kleine Anmerkung noch: Das funzt aber auch nur wenn die Session ID an die nächste Seite weitergegeben wird. Sei es weil der Client Cookies akzeptiert oder die ID an den Link angehängt wurde.

                  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)

                  Kommentar


                  • #10
                    Echt? Bei mir hat das immer funktioniert ohne dass ich eine ID weiter gegeben hab.
                    Na ja, aber so viel Ahnung hab ich dann aber auch net.
                    Aber immerhin wäre mir dann klar für was session_id() zuständig is.(hab ich net geblickt für was das sein soll, als ich mich damit beschäftigt hab)

                    Gruß Sebi

                    Kommentar


                    • #11
                      Im Normalfall, wenn cookies erlaubt sind, zumindest "sessioncookies" muss man sich mit session_id() nicht herumschlagen. session_start() ist das einzige, was es braucht.

                      Bei <FRAME> ist eine Besonderheit, dass die Skripte nicht parallel, sondern der Reihe nach ausgeführt werden, damit nur je eines auf die Session-Variabeln zugriff hat. es wird ein lock gesetzt. Sobald man session_write_close() aufruft, werden die sessionvariabeln gesichert und freigegeben.

                      Kommentar


                      • #12
                        Man könnte aber bei der Datei die im 2. Frame die session variabeln wieder auslesen, sofern man session_write_close() benutzt hat.
                        Muss man session_write_close() immer verwenden wenn man session ID() verwendet?

                        Gruß Sebi

                        PS: Danke für die Aufklärung!!!!

                        Kommentar


                        • #13
                          Klappt nicht

                          Das mit den Session hörte sich mal wieder vielversprechend an aber mal wieder klappt bei diesen session garnichts außer das viele Fehlermeldung wie already send kommen. Gibt es nicht noch eine andere Möglichkeit ? Ich habe zwar schon eine lösung ,das die rechte Seite das Land ienfach in eine Datei schreibt und später wieder ausgelsen werden kann aber so viel aufwand ?
                          mfg Inuyasha
                          Achtung ich bin eine wandelne Frage

                          Kommentar


                          • #14
                            Das mit den Session hörte sich mal wieder vielversprechend an aber mal wieder klappt bei diesen session garnichts außer das viele Fehlermeldung wie already send kommen. Gibt es nicht noch eine andere Möglichkeit ?
                            Ja die gibt es: Richtig machen Lies mal folgenden Sticky hier im Forum zum Thema http://www.php-resource.de/forum/sho...threadid=62965

                            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)

                            Kommentar

                            Lädt...
                            X