Paco: Variablenübergabe funktioniert im Firefox aber im IE nicht

Hallo!
Ich habe folgendes Problem:
Ich habe eine Tabelle die aus einer mysql-datenbank mit Daten gefüllt wird.

<?php &query ="SELECT * FROM..undsoweiter" ?>

<tr>
 <td> <?=$a?> </td>
 <td> <?=$b?> </td>
 <td> <?=$c?> </td>
 <td> <form action="auswertung.php" method="post">
      <input type="submit" name="aktion" value="bearbeiten">
      <input type="hidden" name="id" value="<?=$id?>">
      <input type="hidden" name="user" value="<?=$user?>">
      <input type="hideen" name="seite" value="seite1">
      </form>
 </td>
</tr>

Die Variable $seite verarbeite ich in auswertung.php mittels switch/case und unterscheide dann weiter je nach $aktion.

Im Firefox funktioniert alles super, aber der IE hört schon vor dem switch case auf. wenn ich vor dem switch die Variablen mit echo ausgebe, zeigt er mir $user und $aktion korrekt an, aber $seite und $id nicht, obwohl die ja beide richtig in die Tabelle eingetragen werden. Woran kann das denn liegen? Hab mit der Suche irgendwie nichts vernünftiges gefunden und mich auch immer ein bißchen um die IE-Eigenheiten gedrückt. Weiß jemand Rat? ich weiß einfach nicht recht wie ich weiter vorgehen soll bei der Fehlersuche.
vielen dank im Voraus,
Paco

  1. Mahlzeit,

    <input type="hidden" name="id" value="<?=$id?>">
          <input type="hidden" name="user" value="<?=$user?>">
          <input type="hideen" name="seite" value="seite1">

    Du solltest Dir die Short-Open-Tags abgewöhnen. Sie führen gerade in Verbindung mit XHTML nur zu Fehlern und tragen nicht unbedingt zur Übersichtlichkeit des Skripts bei.

    Im Firefox funktioniert alles super, aber der IE hört schon vor dem switch case auf.

    Wetten nicht? Mach Dir klar, wo PHP ausgeführt wird: auf dem Server. Also spielt es bei der Verarbeitung eines Skripts überhaupt keine Rolle, welcher Browser benutzt wird. Es kann natürlich sein, dass der IE Probleme mit dem Formular hat und es nicht korrekt oder vollständig abschickt. Das hat dann aber wiederum mit PHP nichts zu tun. Also: wo liegt nun Dein Problem? In PHP oder beim Browser (der vielleicht z.B. invalides HTML zu fressen bekommt und deswegen Amok läuft)?

    wenn ich vor dem switch die Variablen mit echo ausgebe, zeigt er mir $user und $aktion korrekt an, aber $seite und $id nicht,

    Wo und wann genau geschieht das echo?

    obwohl die ja beide richtig in die Tabelle eingetragen werden.

    In eine Tabelle wird da nichts eingetragen. Du baust auf dem Server mittels PHP ein - mehr oder weniger valides - HTML-Dokument zusammen. Wenn der Code in Ordnung ist, haben vernünftige Browser in der Regel keine und der IE nur relativ wenig Probleme, diesen richtig zu parsen, anzuzeigen und z.B. enthaltene Formulare korrekt abzuschicken. Wenn Du Murks an den Browser schickst, darfst Du Dich nicht wundern, wenn er nicht so richtig weiß, was er damit machen soll.

    ich weiß einfach nicht recht wie ich weiter vorgehen soll bei der Fehlersuche.

    Eine gute Methode wäre z.B. in PHP das error_reporting auf E_ALL zu stellen. Darüber hinaus solltest Du Dir mal alle Werte, die im zu verarbeitenden Formular enthalten sind, als Debug-Informationen ausgeben lassen.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Halo EKKI, danke für die Antwort.

      Du solltest Dir die Short-Open-Tags abgewöhnen. Sie führen gerade in Verbindung mit XHTML nur zu Fehlern und tragen nicht unbedingt zur Übersichtlichkeit des Skripts bei.

      wird gemacht

      Wetten nicht? Mach Dir klar, wo PHP ausgeführt wird: auf dem Server. Also spielt es bei der Verarbeitung eines Skripts überhaupt keine Rolle, welcher Browser benutzt wird. Es kann natürlich sein, dass der IE Probleme mit dem Formular hat und es nicht korrekt oder vollständig abschickt. Das hat dann aber wiederum mit PHP nichts zu tun. Also: wo liegt nun Dein Problem? In PHP oder beim Browser (der vielleicht z.B. invalides HTML zu fressen bekommt und deswegen Amok läuft)?

      Hast recht, ist natürlich falsch ausgedrückt. Tippe aber schwer auf Browser und Formularproblem, da das PHP echt nicht sonderlich kompliziert ist und wie gesagt im FF funktioniert. Hab auch mal von nem Bug gelesen, wo der IE das erste hiddenfield nicht überträgt, wenn im gleichen Formular ein Textfeld ist, das einen Umlaut enthält..

      Wo und wann genau geschieht das echo?

      Das Echo geschieht im verarbeitenden Script vor dem switch/case, also quasi ganz am anfang. Direkt vom Formular ans Auswertescript (form submit -> $_[POST] -> echo)

      In eine Tabelle wird da nichts eingetragen. Du baust auf dem Server mittels PHP ein - mehr oder weniger valides - HTML-Dokument zusammen. Wenn der Code in Ordnung ist, haben vernünftige Browser in der Regel keine und der IE nur relativ wenig Probleme, diesen richtig zu parsen, anzuzeigen und z.B. enthaltene Formulare korrekt abzuschicken. Wenn Du Murks an den Browser schickst, darfst Du Dich nicht wundern, wenn er nicht so richtig weiß, was er damit machen soll.

      »»
      Damit meinte ich nur, dass die Variablen gefüllt sind, also korrekt aus der Datenbank gelesen werden

      Eine gute Methode wäre z.B. in PHP das error_reporting auf E_ALL zu stellen. Darüber hinaus solltest Du Dir mal alle Werte, die im zu verarbeitenden Formular enthalten sind, als Debug-Informationen ausgeben lassen.

      Im Grunde ist klar, dass das PHP in Ordnung ist. Das skript funktioniert ja auch insofern normal, dass es halt einfach den case $seite=seite1 nicht abarbeitet, weil $seite leer ist. Aber warum schickt der IE das Formular nicht komplett ab?

      1. Mahlzeit,

        Im Grunde ist klar, dass das PHP in Ordnung ist. Das skript funktioniert ja auch insofern normal, dass es halt einfach den case $seite=seite1 nicht abarbeitet, weil $seite leer ist. Aber warum schickt der IE das Formular nicht komplett ab?

        Wenn Du mir 'ne Glaskugel sponsorst, sag ich es Dir gerne ... ansonsten müsstest Du Dich dazu durchringen, Deinen relevanten Quellcode zu posten - aber bitte erst, nachdem Du ihn validiert und die enthaltenen Fehler beseitigt hast.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Oh mein Gott..
          ..ich traus mich fast nicht zu sagen, aber es war ein nicht geschlossenes input-tag, dass der gutmütige FF geschluckt hat aber der IE nicht. Ich kann einfach nicht glauben, dass ich das so oft übersehen hab.. vielen dank EKKi,
          Problem gelöst, der Tip mit error_reporting ist gut, werd ich mit sicherheit noch brauchen.

          1. Mahlzeit,

            ..ich traus mich fast nicht zu sagen, aber es war ein nicht geschlossenes input-tag, dass der gutmütige FF geschluckt hat aber der IE nicht. Ich kann einfach nicht glauben, dass ich das so oft übersehen hab..

            Dafür ist der Validator ja da (schließlich verliert man - insbesondere in längeren HTML-Dokumenten oder komplizierten Skripten - gerne mal die Übersicht). Deswegen habe ich auch in meiner ersten Antwort zweimal darauf hingewiesen ... :-)

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|