Ankündigung

Einklappen
Keine Ankündigung bisher.

$_GET bei PHP Version 4.4.7

Einklappen

Neue Werbung 2019

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

  • $_GET bei PHP Version 4.4.7

    neues prob... musste neues xampp installieren weil ich formatiert hatte...
    konnte nu das xampp was ich damals runtergeladen hab net mehr finden also hab ich das neuste installiert... dann geswitcht auf php 4.4.7 und bei meiner site ging garnix mehr...

    PHP-Code:
    if (isset($_GET[site]) && $_GET[site] != "news")
    {
        
    $invalid_chars = array('/''//'':''.');
        
    $_GET[site] = str_replace($invalid_chars' '$site);
        include (
    $_GET[site] . '.php');
    }
    else
        echo 
    'Welcome to Admincenter.'
    ausgabe war immer, egal ob "site" (in der URL) gesetzt war oda net,
    'Welcome to Admincenter.'

    habe nu ma nachgeguckt und per "print_r()" $_GET ausgeben lassen...
    ergebnis:
    Code:
    Array ( [site] => )
    mit $_REQUEST:
    Code:
    Array ( [site] => files )
    geht das seit der version nur noch mit $_REQUEST bzw $HTTP_*_VARS ?
    und noch ne frage... lohnt sich das überhaupt noch in php 4.X zu coden... oda mit php 5 anfangen??!?

    danke im voraus
    mfg


  • #2
    Re: $_GET bei PHP Version 4.4.7

    PHP-Code:
    if ((isset($_GET[site]) && ($_GET[site] != "news"))
    {
        
    $invalid_chars = array('/''//'':''.');
        
    $_GET[site] = str_replace($invalid_chars' '$site);
        include (
    $_GET[site] . '.php');
    }
    else
    {
        echo 
    'Welcome to Admincenter.';



    wenn das jetzt mega blödsinn ist nicht sauer sein ich hab 2 nächte durchgemacht

    Kommentar


    • #3
      Ich bin vor ein paar Monaten auf PHP 5 umgestiegen. Allerdings notgedrungen, da ich OOP ausprobieren wollte. Dafür ist PHP 5 halt besser geeignet und ich kann von daher auch von keinen negativen Erfahrungen berichten...

      Versuch mal:
      PHP-Code:
      if (isset($_GET['site']) && $_GET['site'] != "news")
      {
          
      $invalid_chars = array('/''//'':''.');
          
      $_GET['site'] = str_replace($invalid_chars' '$site);
          include (
      $_GET['site'] . '.php');
      }
      else
          echo 
      'Welcome to Admincenter.'
      Wobei das irgendwie auch nicht Hilft, wenn die Parameter gar nicht übergeben werden...

      Ausserdem solltest du die superglobalen Variabeln nicht verändern, sprich die Werte nicht direkt im $_GET - Array modifizieren.
      Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
      Mark Twain

      Kommentar


      • #4
        Ohne das zugehörige Formular zu kennen, kann hier vermutlich keiner was sagen.
        Vielleicht schickst Du die Daten ja mit POST?

        Den Array-Index solltest Du aber auf jeden Fall in Anführungszeichen setzen. Das müssen Strings sein und keine (undefinierten) Konstanten.
        **********************************
        Nein, ich bin nicht die Signatur.
        Ich putze hier nur.
        **********************************

        Kommentar


        • #5
          Re: $_GET bei PHP Version 4.4.7

          Wenn $_GET leer, aber $_REQUEST voll ist, kann der Wert nur aus $_POST oder $_COOKIE stammen, denn
          http://de3.php.net/manual/de/languag...predefined.php
          $_REQUEST
          Variablen, die dem Skript über die GET-, POST- und COOKIE-Eingabemechanismen geliefert werden und von daher nicht vertrauenswürdig sind. Die Präsenz und die Reihenfolge der Aufnahme der Variablen in dieses Array ist entsprechend der Konfigurationsanweisung variables_order definiert. Dieses Array hat in PHP vor Version 4.1.0 keine direkte Entsprechung.
          http://de3.php.net/manual/de/reserve...iables.request

          und noch ne frage... lohnt sich das überhaupt noch in php 4.X zu coden... oda mit php 5 anfangen??!?
          http://de3.php.net/
          PHP 4 end of life announcement
          [13-Jul-2007]

          Today it is exactly three years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable & production-ready and as PHP 6 is on the way, PHP 4 will be discontinued.

          The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5.

          Kommentar


          • #6
            ach man.. ich sag doch scheiss erkältung :/
            'site' wird per url übertragen... also es gibt kein formular... sry, vergessn zu sagen ^^

            //edit: das was oben gepostet wurde, hab ich scho ausprobiert^^

            Kommentar


            • #7
              Unlogisch. Laß Dir einfach mal $GLOBALS per print_r oder var_dump ausgeben und guck, wo die Daten stehen. Möglichst am Anfang des Scripts. Aber im Prinzip sollte es schon $_GET sein. Und benutze fortan Anführungszeichen im Arrayschlüssel.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                PHP-Code:
                <?php if (isset($_GET[site]) && $_GET[site] != "news")
                {
                    
                $invalid_chars = array('/''//'':''.');
                    
                $_GET[site] = str_replace($invalid_chars' '$site);
                    include (
                $_GET[site] . '.php');
                }
                else
                    echo 
                'Welcome to Admincenter.';
                Was soll eigentlich dieses $_GET['site'] = str_replace($invalid_chars, '', $site);

                Sofern register_globals auf off ist (was ich hoffe), ist $site gar nicht initialisiert... Wo hast du dir print_r ausgeben lassen? Wenns nach dem str_replace war ist klar, dass nichts drin war
                Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
                Mark Twain

                Kommentar


                • #9
                  Hallo fadass,

                  Hier solltest Du nochmals nachbessern...:
                  1. den request-arrays $_GET, $_POST,...etc. weist man keine Werte zu, sondern
                  holt sich nur welche heraus. Wenn du Strings aus den Variablen Escapen/ sichern
                  möchtest, dann weise den gesicherten String eleganterweise einer neuen/
                  anderen Variable zu.

                  2. sicherheitstechnisch bist du total auf dem Holzweg.
                  PHP-Code:
                  include ($_GET['site'] . '.php'); 
                  ist ein absolutes no-go. Wenn du dir diese Zeile mal in Ruhe ansiehst, wird - hoffe
                  ich - jede erklärung überflüssig

                  Kommentar


                  • #10
                    Ich schätze der Preis geht diesmal an Igäl...
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Zitat von Igäl
                      Wo hast du dir print_r ausgeben lassen? Wenns nach dem str_replace war ist klar, dass nichts drin war
                      Das ist zwar Mist, aber nicht relevant für das Problem.
                      Laut Ursprungsposting wird immer "welcome to Admincenter" ausgegeben. Das bedeutet, dass schon vor der if-Abfrage der Fehler vorliegen muss.

                      Zitat von nikosch77
                      Ich schätze der Preis geht diesmal an Igäl...
                      Nicht so schnell....
                      **********************************
                      Nein, ich bin nicht die Signatur.
                      Ich putze hier nur.
                      **********************************

                      Kommentar


                      • #12
                        Wow, da hat wer aufgepaßt. Naja, manchmal kriegt man nen Tunnelblick bei solchem Code.

                        Der Preis ist also noch zu haben.
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Die Forenregeln sollten nachgebessert werden, error_reporting(E_ALL) taucht dort nirgends auf...Autsch.

                          Kommentar


                          • #14
                            wie gesagt.. hab scho alles probiert... ob $_GET['site'] oda ohne die '' hat alles net geklappt...

                            das bei
                            str_replace(..... , $site);
                            war nur ein ausversehn.. das war eigentl nur das reusltat durch das ausprobieren... hab vergessen das dann wider richtig umzuschreiben..

                            Unlogisch. Laß Dir einfach mal $GLOBALS per print_r oder var_dump ausgeben und guck, wo die Daten stehen. Möglichst am Anfang des Scripts. Aber im Prinzip sollte es schon $_GET sein. Und benutze fortan Anführungszeichen im Arrayschlüssel.
                            werde es ausprobieren... bin aber atm total besoffen dank meines geburtstages :P

                            ty trotzdem an alle

                            Kommentar


                            • #15
                              Zitat von fadass
                              bin aber atm total besoffen dank meines geburtstages
                              Auch eine Möglichkeit, ein logisches Problem anzugehen. Au mann.
                              --

                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                              --

                              Kommentar

                              Lädt...
                              X