[Variablen] PHP5: Variablen auf andere Seite übermitteln geht nicht

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

  • [Variablen] PHP5: Variablen auf andere Seite übermitteln geht nicht

    Hallo Leute!

    Ich steige trotz PHP.net und Einlesen auch hier in die Hilfen nicht durch.

    Das Problem ist ganz simpel.

    Ich hab eine Seite:

    seite.php

    und innerhalb der Seite eine normale IF Abfrage, die je nach Variable entsprechende Ausgaben tätigt.

    Das sieht dann simpel so aus:

    seite.php?id=wert1
    seite.php?id=wert2

    if(id=="wert1") echo "...";


    usw.

    Also das funktionierte bis dato immer, bis auf PHP5 umgestellt wurde. Es erscheint keine Ausgabe, es erscheint einfach garnichts, es wird nicht angenommen, keine Variable über die URL übergeben, hat einer einen Rat?

  • #2
    Solange du keinen echten Code herzeigst nicht. Wenn du schon an solchen "kleinen" Problemchen knabberst, solltest du nicht versuchen den Code abstrakt wiederzugeben.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Ich würde ja auf register_globals tippen ... besonders bei solchem (nicht funktionierenden) Code:
      PHP-Code:
      if(id=="wert1") echo "..."
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        da hat wohl jemand ziemlich lange geschlafen :-)
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Probiere es mit

          PHP-Code:
          if($_GET['id']=="wert1") echo "..."

          Kommentar


          • #6
            Hallo Leute,

            ich kann nicht seitenweise Code tippsen, der im Endeffekt nichts anderes beinhaltet. Ich hab mich seit PHP4 größtenteils von Detailprogrammierung verabschiedet, da ich nicht die Zeit habe, meine private Seite ist das einzige, was ich noch unterhalte.


            Also vielen Dank für die Tipps, wahrscheinlich hab ich auf register globals keinen EInfluss bzw. kanns nicht ändern.

            Ich werd dennoch die vorhandenen Hilfestellungen ausprobieren.

            Edit: Rausgefunden habe ich, dass Registerglobals verantwortlich ist.

            Hilft also lediglich diese Weise, sowas zu verhindern? if($_GET['id']=="wert1")
            Wieso ist das heute auf einmal sicherheitstechnisch problematisch, wo es scheinbar immer problemlos möglich war, Variablen zu übermitteln über die URL?


            Original geschrieben von MelloPie
            da hat wohl jemand ziemlich lange geschlafen :-)
            Tja, nur bin ich nicht zuständig für die Umstellung bei meinem Provider.....
            Zuletzt geändert von der_milchmann; 10.01.2008, 15:22.

            Kommentar


            • #7
              PHP-Code:
              if(isset($pw) && $pw == 'IchBinTotalGeheim')){
                
              $verified true;
              }
              [...]
              if(
              $verified == true){
                echo 
              'Total Geheimer Inhalt';

              Wenn ich jetzt
              Code:
              http://deineDomain.de/secret.php?verified=1
              angebe sehe ich ohne dein PW zu kennen den geheimen Inhalt.
              Verhindern kannst du das eigentlich nur indem du register_globals() ausschaltest und/oder typensichere Vergleichsoperatoren wählst (=== anstatt ==)

              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


              • #8
                Original geschrieben von jahlives
                PHP-Code:
                if(isset($pw) && $pw == 'IchBinTotalGeheim')){
                  
                $verified true;
                }
                [...]
                if(
                $verified == true){
                  echo 
                'Total Geheimer Inhalt';

                Wenn ich jetzt
                Code:
                [url]http://deineDomain.de/secret.php?verified=1[/url]
                angebe sehe ich ohne dein PW zu kennen den geheimen Inhalt.
                Verhindern kannst du das eigentlich nur indem du register_globals() ausschaltest und/oder typensichere Vergleichsoperatoren wählst (=== anstatt ==)

                Gruss

                tobi

                Danke!

                Natürlich möchte ich einerseits keine Lücken erzeugen, andererseits hab ich gerade festgestellt, dass ich ja somit bei register globals = off, was natürlich sicherer ist, tatsächlich jede Variable, die an irgend einer Stelle über die URL übermittelt wird, über diesen recht umständlichen Weg nochmal am Anfang des Scriptes über diese Schreibweise quasi freigeben muss, oder sehe ich das falsch?


                Früher ging es einfach so:

                seite.php?sid=0

                if($sid==0) echo "ich bin die Null";



                heute muss ich - wenn ich das richtig verstehe - diese Zeile am Anfang des Scriptes vorfüge:


                seite.php?sid=0

                $sid = $_GET['sid']

                if($sid==0) echo "ich bin die Null";

                Wenn ich in einem Script 30 Variablen verwende, muss ich 30 Zeilen wie diese hier $sid = $_GET['sid'] am anfang des Scriptes einfügen oder sehe ich das falsch.

                Kommentar


                • #9
                  Dich wird keiner erschießen, wenn du direkt auf die Elemente des $_GET-Arrays zugreifest, also:

                  PHP-Code:
                  if($_GET['foo'] == 'bar') { 
                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Kommentar


                  • #10
                    Danke!

                    Ich werd mich zwingen, meine Scripte anzupassen, auch wenns mir derzeit missfällt

                    Frage - kann ich wenigstens register globals im Htaccess Passwortgesicherten Bereich offenlassen bzw. ON lassen oder ist selbst das gefährlich.

                    Kommentar


                    • #11
                      Verabschiede dich lieber von register_globals. Ansonsten wirst du auf keinen grünen Zweig kommen und wir werden auch in Zukunft noch eine Menge fragen zu beantworten haben.
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Kommentar


                      • #12
                        Frage - kann ich wenigstens register globals im Htaccess Passwortgesicherten Bereich offenlassen bzw. ON lassen oder ist selbst das gefährlich.
                        register_globals auf ON halte ich immer für gefährlich
                        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


                        • #13
                          Original geschrieben von der_milchmann
                          Wenn ich in einem Script 30 Variablen verwende, muss ich 30 Zeilen wie diese hier $sid = $_GET['sid'] am anfang des Scriptes einfügen oder sehe ich das falsch.
                          Es gibt auch noch die Funktion import_request_variables, das du am Anfang jedes Scripts aufrufen kannst. Dann bleibt der Rest wie es ist, aber die Sicherheit auch. Deshalb höchstens zum Umrüsten alter, unkritischer Scripts.
                          Gruss
                          H2O

                          Kommentar


                          • #14
                            Ok,

                            ich hab den Kram umgestellt, seis drum.....

                            Trotzdem - wenn ich jetzt jahlives Beispiel durchspiele:

                            Herkömmlich
                            http://deineDomain.de/secret.php?v=1

                            if($v==1) echo "ganz geheim";



                            Neu
                            http://deineDomain.de/secret.php?v=1

                            $v = $_GET['v'];

                            if($v==1) echo "ganz geheim";




                            Ich bin einfach recht lange draußen, daher sehe ich den Wald vor lauter Bäumen nicht, ich sehe nicht wirklich, wo jetzt dort der unterschied sein soll.

                            Kommentar


                            • #15
                              Bist ja auch selber schuld, wenn du eine User-definierte Variable als Kriterium für so etwas benutzst.
                              Gruss
                              H2O

                              Kommentar

                              Lädt...
                              X