PHP Variable per window.open

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

  • PHP Variable per window.open

    Hey Leute!

    Ich frag mich grad in welchen Bereich ich mein Problem posten soll, aber ich bin mal hier gelandet

    Ich arbeite an einem PHP-Skript das ich per Shortcut aufrufe. Der Shortcut ist eine Internet-Verknüpfung auf eine Datei "start.php" diese datei öffnet per window.open ein popup namens "main".

    dieses "main"-popup öffnet wiederum ein popup namens "navi".

    jetzt kann ich z.b. per "opener.location.href="seite2.php";" in diesem navi-popup den inhalt des "main"-popup ändern.

    meine frage ist die, ich hab folgendes schnipsel:

    echo '<script language="JavaScript" type="text/javascript">
    //main.navi.close();
    navi = window.open (
    \'sidemenu.php?&admin=1\',
    \'navi\',
    \'width=100,height=150,scrollbars=no,resizeable=no,menubar=no,toolbar=no,status=yes\');
    </script>';

    wie ihr seht wird mit diesem schnipsel das navi-popup geöffnet...und hinten an der url hängt das "admin=1" dran...im navi-popup kann ich jedoch nicht mehr auf diese variable $admin zurückgreifen, diese ist dann leer!

    was mache ich falsch?!

    mfg
    infernalshade

  • #2
    rieche ich da ein register_globals-problem?
    Freedom is a state of mind. Not a state in which we live.

    troxdev.ch | animefieber

    Kommentar


    • #3
      Ähm ne leider nicht...

      wenn ich z.b. in dem "main"-popup irgendwo einen link setze mit "?&admin=1" haut alles wunderbar hin, also wenn ich "normal" verlinke haut generell alles hin, jedoch nicht wenn ich per window.open verlinke..

      mfg

      Kommentar


      • #4
        error_reporting?

        var_dump( $_GET ) ?
        Freedom is a state of mind. Not a state in which we live.

        troxdev.ch | animefieber

        Kommentar


        • #5
          naja ein error ist ja keiner vorhanden, die syntax stimmt ja, aber er übernimmt mir die variablen nicht! er ruft das navi-popup vollkommen richtig auf nur eben mit einer leeren "admin" variable...

          mit ner session würds z.b. schon gehn aber das will ich eher nicht machen...zu umständlich!

          mfg

          Kommentar


          • #6
            poste mal den schnipsel, in dem du die admin-variable ausliest.

            (und ruf das popup mal mit sidemenu.php?admin=1, nicht mit ?&admin=1 auf)
            Freedom is a state of mind. Not a state in which we live.

            troxdev.ch | animefieber

            Kommentar


            • #7
              die admin-variable wird nirgends ausgelesen, sondern ich setze diese an der stelle

              der ganze block schaut so aus:

              PHP-Code:
              if($admin==1) {
                  echo 
              '<script language="JavaScript" type="text/javascript">
                              //main.navi.close();
                              navi = window.open (
                              \'sidemenu.php?&admin=1\',
                              \'navi\',
                              \'width=100,height=150,scrollbars=no,resizeable=no,menubar=no,toolbar=no,status=yes\');
                        </script>'
              ;
              }else{
                  echo 
              '<script language="JavaScript" type="text/javascript">
                              //main.navi.close();
                              navi = window.open (
                              \'sidemenu.php?&admin=0\',
                              \'navi\',
                              \'width=100,height=150,scrollbars=no,resizeable=no,menubar=no,toolbar=no,status=yes\');
                        </script>'
              ;

              bei der if-abfrage funktioniert die variable noch richtig!

              aber wenn ich hinten bei dem window.open dranhäng und neu setze tut sich nichts!


              und ich hab schon folgendes probiert:

              sidemenu.php?&admin=1 -> Seite lädt, keine Variable
              sidemenu.php?admin=1 -> Seite lädt, keine Variable
              sidemenu.php&admin=1 -> Seite wurde nicht gefunden

              mfg
              infernalshade


              EDIT: Und ja ich weis die if-Abfrage ist eigentlich unnötig, die hab ich nur weil ich probieren wollte ob es so vielleicht funktioniert...
              Zuletzt geändert von infernalshade; 19.02.2008, 15:41.

              Kommentar


              • #8
                Hmm

                in PHP abfragen
                PHP-Code:
                echo $_GET['admin']; 
                Dein Problem ist denke ich schon ein register_globals = Problem
                Nimm mal
                PHP-Code:
                if($_GET['admin']==1){
                   
                // Hier gehts weiter

                oder sicherer mit Sessions arbeiten und die $_SESSION['admin'] = 1;
                setzen.

                Gruß
                Jan

                P.S: Irgentwie sind die ' und " auch komisch da oben im Quelltext ...
                Zuletzt geändert von Skrok; 19.02.2008, 17:58.

                Kommentar


                • #9
                  ja warte mal, das kann aber nicht das problem sein, das skript läuft bei mir lokal in meinem xampp und da ist safe_mode off und register_globals on, ausserdem funktionierts im selben skript überall auf der seite, nur eben nicht wenn ich per window.open öffne!

                  sessions will ich nicht benutzen weil mir das zu umständlich ist irgendwo...

                  und mit abfragen hab ich auch schon probiert, aber da kommt auch nix dabei raus

                  die ' und " müssten schon stimmen, jedoch zeigts das forum hier bissl falsch an, mein echo wird mit ' eingeschlossen die ' im skript sind normal durch schrägstriche maskiert!

                  mfg
                  infernalshade

                  Kommentar


                  • #10
                    Ok...hab was ausprobiert:

                    Hab grad mit Session versucht...in meinem "main"-popup setz ich ganz oben ein "session_start();"

                    Weiter unten prüfe ich auf Richtigkeit des Passworts+Benutzername...Wenn das richtig war, läuft er in den if-Zweig rein wo $admin=1; gesetzt wird.
                    An dieser stelle hab ich jetzt zusätzlich noch "$_SESSION['admin']=1;" eingesetzt.

                    Noch weiter unten wird das "navi"-popup geöffnet. In diesem "navi"-popup steht ganz oben wieder "session_start();" und gleich darunter:

                    PHP-Code:
                    if($admin==1$admin=1; else $admin=0
                    Weiter unten im Navi lass ich die Variable $admin ausgeben... Aber egal was ich mache die Variable ist immer 0!

                    mfg
                    infernalshade

                    Kommentar


                    • #11
                      Ja weil Sie nicht gesetzt ist, warum auch immer ...ich hoffe du hast schon mal ein echo $_GET['admin'] gemacht. Sessions brauchen nicht erst auf der Seite registiert werden. Es hier unter Tutorials ein ganz nettes Tutorial zu dem Thema. Bzw. wenn deine $_SESSION['admin'] registriert ist, dann fragst du aber bitte nicht mehr $admin ab sondern $_SESSION['admin']

                      bsp:

                      PHP-Code:

                      if($_SESSION['admin']==1){
                        echo 
                      "Ich bin Admin";
                      }else{
                        echo 
                      "Ich bin User";

                      Gruß
                      Jan
                      Zuletzt geändert von Skrok; 20.02.2008, 08:45.

                      Kommentar


                      • #12
                        ähm...wenn ich das mit der session so drin lasse und DANN "$_GET['admin']" mach funzt es, aber das $_GET hat doch gar nix mit der session zu tun oder?!?

                        mfg

                        Kommentar


                        • #13
                          Original geschrieben von infernalshade
                          ähm...wenn ich das mit der session so drin lasse und DANN "$_GET['admin']" mach funzt es, aber das $_GET hat doch gar nix mit der session zu tun oder?!?

                          mfg
                          mit $admin geht es nicht
                          mit $_GET['admin'] geht es.

                          funkt es langsam?
                          Freedom is a state of mind. Not a state in which we live.

                          troxdev.ch | animefieber

                          Kommentar


                          • #14
                            Ich weis schon worauf du hinaus willst, ABER

                            PHP-Code:
                            $_GET['admin'
                            funkt ohne die session nicht

                            Kommentar


                            • #15
                              Mit ist so als hätte ich während meiner Ausbildung mal ein ähnliches Problem gehabt. Ich meine das die Sicherheitsrichtlinie deines Browsers die übergabe von Werten per JavaScript unterdrückt. Ich meine es gibt das was mit window.open() da wird die nächste Seite als unsicher eingestuft und deswegen werden keine werte übergeben ... bzw. der IE filtert die ... aber ich habe keine Ahnung da ich bei Benutzerdaten halt immer mit Sessions arbeite ...

                              Nachteil deiner Version da oben ist das ich natürlich auch die PHP Datei aufrufen könnte und einfach ein ?admin=1 anhänge. Sollte ich das machen und hast du keine Prüfung, hab ich adminrechte. Das Problem habe ich mit Sessions nicht ...

                              Kommentar

                              Lädt...
                              X