WAMP & Variablen

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

  • WAMP & Variablen

    Nachdem ich mein WAMP System auf meinem PC installiert habe und alles läuft ist mir gester gleich etwas aufgefallen :

    Ein Script funktioniert nicht so wie es soll :

    PHP-Code:
    Switch ($order) {
        default :
        
    $myorder "id";
        break;
        case 
    fgroup :
        
    $myorder "fgroup";
        break;
        case 
    url :
        
    $myorder "url";
        break;
        case 
    fsize :
        
    $myorder "filesize";
        break;
        case 
    ddlz :
        
    $myorder "ddl";
        break;
    }

    $anfrage "SELECT * FROM tabelle ORDER BY $myorder"
    wenn man zu Beispiel den link tabelle.php?order=url ordnet das Script die Daten nach der Spalte URL.

    Das hat auf meinem Webspace im Internet auch funktioniert , jedoch auf meinem WAMP system , das ich neu installiert habe scheinen die Varialblen nicht übergeben zu werden .

    Wie und wo kann man da was ändern ?

    thanx
    paddy

  • #2
    Oder noch ein anderes Beispiel :
    PHP-Code:
    <?
    If (!$zahl) {
        $zahl = 4;
    }

    $ergebnis = (10+$zahl);
    echo $ergebnis;
    ?>
    Wenn man nun zahl.php?zahl=42 eingeben würde,
    müsste das script eigentlich 4+42 rechnen = 46.

    Aber es erscheint immer 14 ! Als ob der Parser die variable zahl in der url gar nicht beachtet

    please help

    Kommentar


    • #3
      schreib mal den code der vorhergehenden seite, weil da liegt ja anscheinend der fehler, so kann man nicht helfen.

      Kommentar


      • #4
        hast du - glaube ich - falsch verstanden :

        Das übergeben von Variablen funktioniert nicht !

        beispiel.php enthält folgendes script
        PHP-Code:
        <?
        echo $variable;
        ?>
        wenn man jetzt beispiel.php mit dem anhang ?variable=xyz
        aufruft (beispiel.php?variable=xyz) , musste eigentlich xyz dastehen - das funktioniert auch im normalen PHP Webspace, jedoch nicht auf meinen WAMP system , das eigentlich als lokales entwicklungssystem gedacht ist und keine verbindung zum internet hat .

        Kommentar


        • #5
          Habe den Fehler gefunden !

          In der PHP.ini war register_globals auf "off" gestellt.
          Eigentlich sollte da On stehen .

          trotzdem danke

          Kommentar


          • #6
            Register_Globals = Off ist Standarteinstellung in allen neuen Versionen.
            Programmier liebers so, dass du ohne Register Globals auskommst.
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              kann man dann überhaupt noch vernünftig variablen übergeben ?

              Kommentar


              • #8
                Klar, auf jeden fall vernünftiger als ohne.
                So und so ist es zukunftsorientierter.


                Ich empfehle eine Lektüre des Abschnitts Sicherheit des PHP manuals.
                ; - register_globals = Off [Security, Performance]
                ; Global variables are no longer registered for input data (POST, GET, cookies,
                ; environment and other server variables). Instead of using $foo, you must use
                ; you can use $_REQUEST["foo"] (includes any variable that arrives through the
                ; request, namely, POST, GET and cookie variables), or use one of the specific
                ; $_GET["foo"], $_POST["foo"], $_COOKIE["foo"] or $_FILES["foo"], depending
                ; on where the input originates. Also, you can look at the
                ; import_request_variables() function.
                [COLOR=seagreen]; Note that register_globals is going to be depracated (i.e., turned off by
                ; default) in the next version of PHP, because it often leads to security bugs.
                ; Read http://php.net/manual/en/security.registerglobals.php for further
                ; information.[/color]
                [COLOR=seagreen]; You should do your best to write your scripts so that they do not require
                ; register_globals to be on; Using form variables as globals can easily lead
                ; to possible security problems, if the code is not very well thought of.[/COLOR]
                Zuletzt geändert von Troublegum; 26.04.2002, 21:41.
                [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                © Harald Schmidt

                Kommentar


                • #9
                  Sag mal - wenn man register_globals = Off setzt , und man möchte zum beispiel einen Reflink irgendwoanders einbauen der so aussieht : www.domain.de/index.phtml?refid=42 oder so - wie funktionierts dann eigentlich ?? kann man die variable dann noch irgendwie ins script holen ? oder verstehe ich da jetzt irgendwas nicht -> denn wenn register_globals == off ist dann haben doch die Variablen in der URI keine bedeutung mehr oder ??

                  Hab mir den artikel zwar durchgelesen aba bin irgendwie nicht richtig schlau daraus geworden

                  Kommentar


                  • #10
                    Ja, das steht doch im Manual:

                    Also: Per GET übertragene Variablen (z.b. script?var=value)
                    werden im Array $_GET[] (vor PHP 4.1 $HTTP_GET_VARS[]) zur Verfügung gestellt.
                    Per POST übertragene Variablen im Array $_POST[] (vor PHP 4.1 $HTTP_POST_VARS) und neu ab PHP 4.1 ist auch das Array $_REQUEST[] in dem alle einkommenden Variablen aus GET,POST, COOKIES und Sessions gespeichert sind.

                    mehr dazu erfährst du unter
                    http://www.php.net/manual/en/reserved.variables.php


                    Du rufst script.php?var1=value1 auf
                    statt echo $var1; zu benutzen, nutzt du nun:
                    echo $_REQUEST[var1];
                    Zuletzt geändert von Troublegum; 29.04.2002, 17:03.
                    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                    © Harald Schmidt

                    Kommentar


                    • #11
                      ok danke -> ich habs dann doch irgendwie verstanden *wunder*

                      thanx

                      Kommentar

                      Lädt...
                      X