Ingo Lindemann: Variablen werden nicht übergeben, warum??

Hallo,

folgendes Problem:

Habe meinen IIS um PHP erweitert, jetzt läuft die Seite fast, es ist nur so das die Variablen nicht über die Adresszeile übergeben werden. Warum?

Vorher lief alles wunderbar mit Apache.

PS:
Wie richte ich SQL im IIS ein?

MfG

Ingo Lindemann

  1. Hallo,

    Habe meinen IIS um PHP erweitert, jetzt läuft die Seite fast, es ist nur so das die Variablen nicht über die Adresszeile übergeben werden. Warum?

    Ich will mal raten. Die an die URL angehängten Prameter stehen in aktuellen PHP-Versionen einfach nicht mehr als gleichnamige Variablen im PHP-Script zur Verfügung.
    Wenn du ein Script z.B. mit http://xyz.tld/meinscript.php?test=irgendwas aufrufst, hast du in diesem Script nicht automatisch eine Variable $test mit dem Wert "irgendwas".
    Versuch mal zuerst $test = $_GET["test"].

    Gruß, Jan L.

    1. Hallo,

      Habe meinen IIS um PHP erweitert, jetzt läuft die Seite fast, es ist nur so das die Variablen nicht über die Adresszeile übergeben werden. Warum?

      Ich will mal raten. Die an die URL angehängten Prameter stehen in aktuellen PHP-Versionen einfach nicht mehr als gleichnamige Variablen im PHP-Script zur Verfügung.
      Wenn du ein Script z.B. mit http://xyz.tld/meinscript.php?test=irgendwas aufrufst, hast du in diesem Script nicht automatisch eine Variable $test mit dem Wert "irgendwas".
      Versuch mal zuerst $test = $_GET["test"].

      Gruß, Jan L.

      Alles klar, hab ich gemacht, jetzt geht es ein wenig besser, aber folgende Fehler treten jetzt auf:

      Undifined Index...
      und
      Use of undefined constant europa - assumed'europa'.

      und nun?

      1. Hallo,

        Alles klar, hab ich gemacht, jetzt geht es ein wenig besser, aber folgende Fehler treten jetzt auf:

        ist ja schon mal was...

        Undifined Index...
        und
        Use of undefined constant europa - assumed'europa'.

        ohne ein wenig Quelltext läßt sich da jetzt schwer was sagen. Hat das Script mit einer älteren PHP-Version funktioniert?

        Gruß, Jan

        1. Hallo,

          Alles klar, hab ich gemacht, jetzt geht es ein wenig besser, aber folgende Fehler treten jetzt auf:

          ist ja schon mal was...

          Undifined Index...
          und
          Use of undefined constant europa - assumed'europa'.

          ohne ein wenig Quelltext läßt sich da jetzt schwer was sagen. Hat das Script mit einer älteren PHP-Version funktioniert?

          Gruß, Jan

          ich hatte es auf meinem Rechner unter WAMP laufen, alles wunderbar.
          Jetzt habe ich es auf den Intranet-Server gebracht und nur Probleme.

          Quelltext:

          <?php
          /*$test=$_GET["test"];
          $view=$_GET["view"];
          $marke=$_GET["marke"];
          $map=$_GET["map"];*/
           if (!$map && !$view && !$marke)
            {
             echo "<table width=100% height=100% bgcolor=white>
                <tr>
              <td align=center>
               <IMG SRC=Graphics/welt2.gif BORDER=0 USEMAP=#welt2_Map
                      width=860 height=607>
              </td>
                    </tr>
            </table>
           <MAP NAME=welt2_Map>
                   <AREA SHAPE=rect ALT=Europa COORDS=346,216,511,337
                   HREF=test4c.php?map=europa>
            <AREA SHAPE=rect ALT=Konzernweit COORDS=349,567,494,589
                   HREF=test4c.php?view=all>
            <AREA SHAPE=poly ALT='VW Südamerika' COORDS='190,405,
                   237,374, 262,376, 332,421, 300,482, 254,522, 251,575,
                   233,574, 217,556, 229,453' HREF=test4c.php?map=sa>
            <AREA SHAPE=circle ALT=Uitenhage COORDS=458,486,15
                   HREF=test4c.php?view=Uitenhage>
           </MAP>";

          1. Wo soll man da anfangen? Auskommentierte Varibalen, die dann aber abgrfagt werden... nicht geschlossene PHP tags... so lief das script bestimmt nie...

            Elmar

            Undifined Index...
            und
            Use of undefined constant europa - assumed'europa'.

            Quelltext:

            <?php
            /*$test=$_GET["test"];
            $view=$_GET["view"];
            $marke=$_GET["marke"];
            $map=$_GET["map"];*/
            if (!$map && !$view && !$marke)
              {
               echo "<table width=100% height=100% bgcolor=white>
                  <tr>
                <td align=center>
                 <IMG SRC=Graphics/welt2.gif BORDER=0 USEMAP=#welt2_Map
                        width=860 height=607>
                </td>
                      </tr>
              </table>
            <MAP NAME=welt2_Map>
                     <AREA SHAPE=rect ALT=Europa COORDS=346,216,511,337
                     HREF=test4c.php?map=europa>
              <AREA SHAPE=rect ALT=Konzernweit COORDS=349,567,494,589
                     HREF=test4c.php?view=all>
              <AREA SHAPE=poly ALT='VW Südamerika' COORDS='190,405,
                     237,374, 262,376, 332,421, 300,482, 254,522, 251,575,
                     233,574, 217,556, 229,453' HREF=test4c.php?map=sa>
              <AREA SHAPE=circle ALT=Uitenhage COORDS=458,486,15
                     HREF=test4c.php?view=Uitenhage>
            </MAP>";

            1. ist ja auch nur ein ausschnitt von den knapp 800 zeilen!

              1. ist ja auch nur ein ausschnitt von den knapp 800 zeilen!

                Kein Thema! Trotzdem liegen die Fehler in vorangegangener Aussage. Von dem in Zeile 799 abgeschlossenen php-tag vielleicht abgesehen. Kannst Du überhaupt sichergehen, dass die Post-Variablen da sind? Ansonsten vielleicht erstmal prüfen, ob die Übergabevars gesetzt und nicht leer sind bzw. nach Gusto auch noch auf sinnvollen Inhalt prüfen.

                Undef. index kommt auf jeden Fall von undefinierten Vars und die Konstantensache, weil er versucht z.B. europa zu lesen, obwohl du $europa brauchst bzw. weil er versucht wegen fehlenden Abschlusstag HTML zu parsen.

                Bis denne,
                Elmar

          2. Aloha!

            Solche riesigen HTML-Ausgaben lassen sich viel besser erzeugen, indem man den PHP-Modus verläßt, dann pures HTML schreibt und schließlich den PHP-Modus wieder aktiviert. Dann kann man nämlich auch ordentlich Anführungszeichen um die Attributwerte setzen - definitiv notwendig bei XHTML und XML, aber auch bei HTML sehr fehlervermeidend:

            »»if (!$map && !$view && !$marke)
              { ?>
                <table width="100%" height="100%" bgcolor="white">
                  <tr>
                    <td align="center">
                      <IMG SRC="Graphics/welt2.gif" BORDER="0" USEMAP="#welt2_Map" width="860" height="607">
                    </td>
                  </tr>
                </table>
                <MAP NAME="welt2_Map">
                  <AREA SHAPE="rect" ALT="Europa" COORDS="346,216,511,337" HREF="test4c.php?map=europa">
                  <AREA SHAPE="rect" ALT="Konzernweit" COORDS="349,567,494,589" HREF="test4c.php?view=all">
                  <AREA SHAPE="poly" ALT="VW Südamerika"COORDS="190,405, 237,374, 262,376, 332,421, 300,482, 254,522, 251,575, 233,574, 217,556, 229,453" HREF="test4c.php?map=sa">
                  <AREA SHAPE="circle" ALT="Uitenhage" COORDS="458,486,15" HREF="test4c.php?view=Uitenhage">
                </MAP>
            <?php } // IF schließen
               else.... //Hier geht PHP weiter.

            Guter Programmierstil ist es, wenn in der PHP-Datei ganz oben ein PHP-Block mit vorbereitendem Programmcode ist (also Datenbankabfragen, Includes etc.), und darunter dann ein HTML-Block kommt, in dem nur relativ kleine PHP-Blöcke enthalten sind, um die Seitenausgabe zu erzeugen. Denn sonst verliert man bei solch einem Durcheinander von PHP und HTML gerne und sehr leicht die Übersicht.

            - Sven Rautenberg

    2. Versuch mal zuerst $test = $_GET["test"].

      Hallo,

      Du kannst auch automatisch alle Schlüssel des Arrays zu Variablen umwandeln und der Wert wird automatisch zugewisen:

      if (!empty($HTTP_GET_VARS)) {
       extract($HTTP_GET_VARS);
      }