Yadgar: Windows-Apache kennt GET-Variablen nicht!

Hi(gh)!

Noch ein Problem mit XAMPP unter Windows: bei der Verwendung von $_GET-Variablen bekomme ich immer die Meldung "Unknown index"... was muss ich in der php.ini ändern?

Bis bald im Khyberspace!

Yadgar

  1. Hi(gh)!

    Noch ein Problem mit XAMPP unter Windows: bei der Verwendung von $_GET-Variablen bekomme ich immer die Meldung "Unknown index"... was muss ich in der php.ini ändern?

    Klingt sehr ungewöhnlich und meist ist es ein sehr einfacher Fehler. Vielleicht solltest Du erst mal den Request und dann die Ausgaben von

    echo  "<pre>", htmlspecialchars($_SERVER['REQUEST_URI']), "\n"; print_r($_GET); echo "</pre>"

    ansehen und uns vorstellen sowie ggf. dazu ausführen, was daran nicht mit Deinen Erwartungen übereinstimmt.

    Falls das Ergebnis aber Deinen Erwartungen entspricht müsste von Dir der relevante(!) Code, also das Formular (Falls es eines ist) und der relevante(!) Teil des Skripts gezeigt werden.

    Jörg Reinholz

    1. Hi(gh)!

      Klingt sehr ungewöhnlich und meist ist es ein sehr einfacher Fehler. Vielleicht solltest Du erst mal den Request und dann die Ausgaben von

      echo  "<pre>", htmlspecialchars($_SERVER['REQUEST_URI']), "\n"; print_r($_GET); echo "</pre>"

      Ich hatte mich getäuscht - es waren nur "Notice"-Meldungen, keine Fehlermeldungen... von daher werden mit deinem Code die Elemente von $_GET korrekt angezeigt! Aber da ist noch ein anderes Problem: für das erste Element eines Formulars soll mittels eines Datenbankaufrufs (auf einen Remote-Server) eine Auswahlliste erzeugt werden (und, falls ein bereits bestehender Datensatz geändert werden soll, der bisherige Wert als ausgewählt angezeigt werden):

      
            dbcall();
            dberror();
            $query = "SELECT Firmenname FROM hersteller ORDER BY Firmenname";
            $result = mysql_query($query);
            dberror();
            while ($row = mysql_fetch_row($result))
            {
              dberror();
              if (isset($FirmennameAlt) && $row[0] == $FirmennameAlt[0])
                echo '     <option selected value="'.$row[0].'">'.$row[0].'</option>';
              else
                echo '    <option value="'.$row[0].'">'.$row[0].'</option>';
            }
      
      

      Die Liste bleibt jedoch leer, und ich bekomme nicht einmal eine Fehlermeldung!

      Was stimmt da nicht? Der Remote-Server verwendet MySQL 4.0, ist eventuell die Verbindung zu älteren MySQL-Versionen in der php.ini deaktiviert? Wenn ja, was muss ich ändern?

      Bis bald im Khyberspace!

      Yadgar

      1. Ich hatte mich getäuscht - es waren nur "Notice"-Meldungen, keine Fehlermeldungen...

        Hehe. Wenn Die auftauchen, dann hast Du in einer sehr bedenklichen Zahl der Fälle zwar "nur" eine Notiz im Programmablauf aber einen Fehler hinsichtlich der Resultate. Ein Programm ist erst fertig, wenn es OHNE Notiz sauber durchläuft.Vorher ist nicht zu erwarten, dass es wie erwartet funktioniert.

        Beispiel:

        In der Url steht: skript.php?name=Meier

        im Programm steht:

        echo "Sehr geehrter Herr ", $_GET['Name'],";

        Resultat: eine Notiz und die Ausgabe:

        "Sehr geehrter Herr ,"

        Was ja nicht der Zweck der Sache ist - oder?

        Zu Deiner zweiten Frage:

        Tja, Da hilft Debugging. Anhand Deiner Beschreibung würde ich erst mal:

        
              echo '$FirmennameAlt:'; print_r($FirmennameAlt);
              echo "\nZeilen:";
              while ($row = mysql_fetch_row($result))
              {
                 print_r ($row);
              }
        
        > 
        
        

        versuchen statt gleich ein ganzes Forum mit der Frage zu überfallen.

        Jörg Reinholz