Caecilia E. Roehl: "Warning: Undefined variable", obwohl per URL übergeben?

Hallo,
ich habe PHP bei meinem Apache 1.3 installiert.

<? echo ("Hallo"); ?>

Das gibt mir normal "Hallo" aus. Sieht so aus als PHP und der Apache funktioniert.

ABER:

<? echo ("Hallo! ");
echo ($test); ?>

Da bekomme ich einen Fehler, trotz Übergabe der Variablen "test" per URL:
"http://localhost/www/test.php?test=hi"

Also eigentlich müßte er doch sowas ausgeben wie:

Hallo! hi

Macht er aber nicht, sondern gibt an, daß er die Variable &test nicht finden kann:

Hallo
Warning: Undefined variable: test in f:\wwwroot\test.php on line 2

Ich bin da fraglos.
Weiß jemand Rat?
Cäcilia

  1. Moin!

    ABER:

    <? echo ("Hallo! ");
    echo ($test); ?>

    Ich bin da fraglos.
    Weiß jemand Rat?

    Ja. In neueren PHP- Versionen wurden die Sicherheitseinstellungen geändert.

    echo $_GET['test'];
    wäre in der beschriebenen Situation Dein Freund.

    Falls Du die Variable mal per POST übergibst: $_POST['test'].

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Hallo,

      Kleine Ergaenzung:

      echo $_GET['test'];
      Falls Du die Variable mal per POST übergibst: $_POST['test'].

      Und falls Du mal GET, mal POST verwendest, und
      Du in beiden Faellen auf den Wert zugreifen willst:
      $_REQUEST['test']

      PHP-Manual: Predefined Variables (englisch, die deutsche
      Uebersetzung ist unvollstaendig/veraltet):
      http://www.php.net/manual/en/language.variables.predefined.php und
      http://www.php.net/manual/en/reserved.variables.php

      dclp-FAQ: Welche Variablenarten gibt es in PHP
      und wie greife ich auf sie zu?
      http://www.dclp-faq.de/q/q-php-variablen.html

      dclp-FAQ: Warum funktionieren meine Formulare nicht?
      http://www.dclp-faq.de/q/q-formular-register-globals.html

      ---

      @Caecilia: Ja, wenn Dein Buch noch von der globalen Verfuegbarkeit
      der GET-/POST-/COOKIE-Variablen ausgeht, solltest Du ein neues
      kaufen, dessen Beispiele dem aktuellen Stand von PHP entsprechen
      und die Sicherheit immer mitberuecksichtigen.

      Gruesse,

      Thomas

  2. Hi,

    Da bekomme ich einen Fehler, trotz Übergabe der Variablen "test" per URL:
    "http://localhost/www/test.php?test=hi"

    Über die Url werden keine Variablen, sondern allerhöchstens Parameter übergeben.

    Hallo! hi
    Macht er aber nicht, sondern gibt an, daß er die Variable &test nicht finden kann:

    Aus Sicherheitsgründen werden in aktuellen PHP-Versionen nicht mehr automatisch aus den URL-Parametern PHP-Variablen generiert.

    Auf URL-Parameter kannst Du per $_GET['parametername'] zugreifen.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  3. Hallo!
    Wow, sowas schöd-einfaches ist das? *schäm*
    Das muß ich mir merken - oder auch einfach nur ein neues PHP Buch anschaffen ;o)
    Danke an euch MudGuard / fastix(R)

    *smile*
    Cäcilia