ulli: variablen: sind se da oder nicht?

hiho euch

wie kann ich überprüfen, ob eine variable gesetzt ist/existiert? ich weiß, dass es isset() und empty() gibt aber die liefern mir nicht das gewünschte ergebnis(*grübel*). ich möchte überprüfen, ob eine variable (zB $test) im url-string existiert. dazu nehme ich

if (isset($test)) {
...
}
else {
...
}

der url-string sieht ungefähr so aus http://www.domain.de/index.php?test (ohne wert, da nur wichtig ist, ob $test existiert oder nicht)

wenn der parameter $test nicht in der url steht, dann geht alles glatt aber selbst wenn er drin steht, erkennt weder isset() noch empty(), dass er existiert ... versteht ihr das? wenn ja wo liegt mein denkfehler?

  1. Holladiewaldfee,

    suche nach register_globals und bitte um Vergebung.

    Ciao,

    Harry

    --
      Man weiß erst was man hatte, wenn man es verloren hat.
      Intelligenz ist nicht zwingend etwas positives.
    1. Holladiewaldfee,

      hi

      suche nach register_globals und bitte um Vergebung.

      hab ich beides gemacht, obwohl mir zweites nicht viel gebracht hat.
      eigentlich erstens auch nicht. register_globals ist bei dem server on. ich kann also direkt auf die urlparameter zugreifen aber warum geht dann die überprüfung, ob sie da sind oder nicht, nicht?

      Ciao,

      cu

      Harry

      ulli

      1. Holladiewaldfee,

        eigentlich erstens auch nicht. register_globals ist bei dem server on. ich kann also direkt auf die urlparameter zugreifen aber warum geht dann die überprüfung, ob sie da sind oder nicht, nicht?

        Oh, ich glaube dann ist 'ne Entschuldigung fällig ... *tschuldigung* *duck*

        Du solltest übrigens wenn möglich immer mit register_globals=off arbeiten (warum steht im Archiv). Schau also mal nach, ob Dir isset($_REQUEST['test']) was bringt. Wenn nicht mußt Du wohl oder übel den ganzen Kladeradatsch mit argv[] abfragen.

        Ciao,

        Harry

        --
          Man weiß erst was man hatte, wenn man es verloren hat.
          Intelligenz ist nicht zwingend etwas positives.
  2. Hallo ulli

    wenn der parameter $test nicht in der url steht, dann geht alles glatt aber selbst wenn er drin steht, erkennt weder isset() noch empty(), dass er existiert ... versteht ihr das? wenn ja wo liegt mein denkfehler?

    Hast du dich vergewissert, dass register_globals=on? Das sollte aber aus Sicherheitsgründen am besten auf off stehen. auf die in der URL per GET übergebenen Parameter greifst du dann mit $_GET['parameter'] zu.

    Hope this helps und Schöne Grüße

    Johannes

    --
    ss:| zu:) ls:[ fo:) de:] va:) ch:? sh:( n4:& rl:( br:< js:| ie:{ fl:( mo:}
  3. Hallo

    Man nehme:
    -> einen Testserver
    -> ein phpinfo()-script
    -> etwas Kombinationsvermögen

    Vorbereitung:
    Man lege das Script mit dem inhalt "<?php phpinfo(); ?>" unter einem beliebigen Dateinamen, wahlweise info.php3, im Serververzeichnis ab und öffne einen Browser nach belieben.

    Zubereitung:
    Man rufe nun das Script über den Server auf. Läuft der Server lokal, so wäre http://127.0.0.1/info.php3 ein korrekter Link. Dann beobachte man die ausgegebenen Variabeln, insbesondere die letzten beiden Abteilungen.
    Nun wiederhole man den Aufruf mit http://127.0.0.1/info.php3?test und schaue sich wieder die Ausgaben an.

    Aufbereitung:
    Man kombiniere aus den beiden Ausgaben, welche Variabel man für die Abfrage verwenden könnte.

    Viel Erfolg wünscht
      David ;)

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
  4. if (isset($test)) {
    ...
    }
    else {
    ...
    }

    Hi,

    hatte auch mal probleme mit isset in php. hab's dann einfach weggelassen, d.h.

    if ($test)
    {}

    vielleicht funktioniert's ja auch so bei dir :-)

    grüße,
    Linda

    1. Hallo Linda

      hatte auch mal probleme mit isset in php. hab's dann einfach weggelassen, d.h.

      if ($test)
      {}

      vielleicht funktioniert's ja auch so bei dir :-)

      Nein, da mit überprüfts du nur, ob die Variable den Wert true hat.

      $test = false;
      if($test) {
          echo "ja";
      }
      else {
          echo "nein";
      }

      wird als Ausgabe immer nein ergeben, da $test ja explizit den Wert false zugewiesen bekommen hat.

      Schöne Grüße

      Johannes

      --
      ss:| zu:) ls:[ fo:) de:] va:) ch:? sh:( n4:& rl:( br:< js:| ie:{ fl:( mo:}
  5. hi euch

    auch wenn der thread gleich ins archiv geschickt wird, schreibe ich mal die lösung meines problems ... es war verblüffend einfach ... zur vorgeschichte: ich wollte ja testen, ob eine variable da ist oder nicht ... das tat ich mit isset($test) ... taja aber mein testserver hatte global_requests = off ... der webserver allerdings noch on ... mit dem hinweis "$_REQUEST['test']" ging es dann auf beiden servern ... *grins ... man sollte eben nicht verschiedene server varianten betreiben ... aber trotzdem danke für die antworten

    ulli