Formular HTML Array Keys gehen verloren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formular HTML Array Keys gehen verloren

    Hallo,

    ich habe ein Problem mit Arrays in Formularen bzw. dem vergeben von Array-Keys.

    Beispiel:

    Code:
    <form action="" method="post">
    <input type="text" name="meinArray[meinKey]" value="meinValue">
    <input type="hidden" name="hiddenArr[2]" value="meinValue">
    <input type="submit" name="submit" value="senden">
    </form>
    Wenn ich dieses sende, sollte per Post folgendes verschickt werden:

    Code:
    meinArray[meinKey] = meinValue
    hiddenArr[2] = meinValue
    jedoch verändern sich die Keys:

    Code:
    meinArray[0] = meinValue
    hiddenArr[0] = meinValue
    Ich habe dazu mal ein Test-Script online gestellt, welches folgendes Formular enthält:

    Code:
    <form action="" method="POST">
    <input type="hidden" name="foo[bar]" value="true">
    <input type="submit" name="senden" value="senden mit POST">
    </form>
    gesendet wird dort fälschlicherweise:

    PHP-Code:
    array(2) {
      [
    "foo"]=>
      array(
    1) {
        [
    0]=>
        
    string(4"true"
      
    }
      [
    "senden"]=>
      
    string(15"senden mit POST"

    und so sollte es sein:

    PHP-Code:
    array(2) {
      [
    "foo"]=>
      array(
    1) {
        [
    "bar"]=>
        
    string(4"true"
      
    }
      [
    "senden"]=>
      
    string(15"senden mit POST"

    hier gehts zum Script

    Meine PHP-Version ist 5.2.6 (ohne Suhosin).
    Über Hilfe würde ich mich riesig freuen....sitze an dem Problem schon ca. eine Woche und über Google lässt sich nichts finden.

    LG
    TrainingCity -> Hier lernt man richtig

  • #2
    Bist du zufällig auch bei Hosteurope

    Also, das ist ganz sicher kein Standardverhalten.

    Entweder sitzt da irgendwo ein Filter dazwischen, oder da wurde sonstwie rumgewerkelt.

    EDIT:
    Wenn ich deine Startseite versuche aufzurufen, erhalte ich
    Forbidden - You don't have permission to access /scripts/ on this server.
    Sicher dass da nicht irgendwo was umgeleitet (o.ä.) wird?

    Zuletzt geändert von TobiaZ; 18.04.2010, 16:17. Grund: neuer Ansatz

    Kommentar


    • #3
      Zitat von TobiaZ Beitrag anzeigen
      Bist du zufällig auch bei Hosteurope

      Also, das ist ganz sicher kein Standardverhalten.

      Entweder sitzt da irgendwo ein Filter dazwischen, oder da wurde sonstwie rumgewerkelt.

      EDIT:
      Wenn ich deine Startseite versuche aufzurufen, erhalte ich Sicher dass da nicht irgendwo was umgeleitet (o.ä.) wird?
      Als erstes: Du bist mein persönlicher Held!!!!
      Ich habe meine Domain bei United-Domains und mache eine versteckte Weiterleitung auf meinen Server. Wenn ich das Script über die Serveradresse aufrufe und das Formular absende, werden die Array-Keys beibehalten.
      Was hat denn aber die versteckte Weiterleitung damit zutun?
      TrainingCity -> Hier lernt man richtig

      Kommentar


      • #4
        Zitat von NickD Beitrag anzeigen
        Ich habe meine Domain bei United-Domains und mache eine versteckte Weiterleitung auf meinen Server.
        Wie funktioniert diese Weiterleitung?


        Firebug zeigt jedenfalls an, dass
        Code:
        foo%5Bbar%5D=true&senden=senden+mit+POST
        verschickt wird - das ist also noch OK.
        Beim Weiterleiten wird also irgendwie an den Daten manipuliert.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Crossposting: Fomular Array Keys gehen verloren - php.de
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Zitat von wahsaga Beitrag anzeigen
            Wie funktioniert diese Weiterleitung?


            Firebug zeigt jedenfalls an, dass
            Code:
            foo%5Bbar%5D=true&senden=senden+mit+POST
            verschickt wird - das ist also noch OK.
            Beim Weiterleiten wird also irgendwie an den Daten manipuliert.
            Das ist eine gute Frage, wie diese Weiterleitung funktioniert. Ich habe zu jeder Domain die Möglichkeit entweder eine direkte Weiterleitung zu einer Domain zu machen (header redirect), eine Frameweiterleitung oder url-hiding (versteckte Weiterleitung).

            Das Problem ist, dass ich den Server nicht bei United-Domains habe, sondern nur die Domain. Jedoch möchte ich die Domain anzeigen und nicht die direkte Adresse zum Server. Es gibt zwar noch die Frameweiterleitung, jedoch wird dort dauerhaft die Domain "z.b. www.undertunes.de" gezeigt und man kann keine direkten Seiten über die Adresszeile aufrufen "z.b. www.undertunes.de/showPage=blub".....zusätzlich wird Google gehindert, die Seite richtig auszulesen.

            Weißt du zufällig, was ich da machen kann?

            P.S: Ich sitze schon über eine Woche daran und bin nicht auf die Weiterleitung gekommen. Ich konnte schon nicht mehr richtig schlafen....du hast mir mehr als geholfen! Du hast ein Bier bei mir gut
            TrainingCity -> Hier lernt man richtig

            Kommentar


            • #7
              Mit dem Unterschied, dass die Kollegen mal wieder voll daneben getippt haben...

              Weißt du zufällig, was ich da machen kann?
              Da hast du keine Chance. Ich denke mal UD wird da wegen dir nichts dran ändern. Kannst also nur den PHP-Code und idealerweise auch das Formular anpassen.

              P.S: Ich sitze schon über eine Woche daran und bin nicht auf die Weiterleitung gekommen. Ich konnte schon nicht mehr richtig schlafen....du hast mir mehr als geholfen! Du hast ein Bier bei mir gut
              Dafür gibts ja regelmäßige Usertreffen. Kannst aber auch mal meinen Entwertenbutton entweihen...

              Kommentar


              • #8
                Ich habe einfach mal UD angeschrieben,....mal sehen was und ob sie was machen können.

                Was kann ich denn am Formular anpassen bzw. an PHP? Meines Wissen gibt es keine andere Möglichkeit Arrays per Formular zu senden.
                Komisch ist, dass Firebug die POST-Daten korrekt zeigt - da frag ich mich, wie Firebug die POST Daten ausliest?!?
                TrainingCity -> Hier lernt man richtig

                Kommentar


                • #9
                  Zitat von NickD Beitrag anzeigen
                  Was kann ich denn am Formular anpassen bzw. an PHP?
                  Um das Problem zu beheben - vermutlich nichts.
                  Du könntest höchstens nach Workarounds suchen, in dem du die Daten in irgendeinem anderen Format sendest, das durch die defekte Weiterleitung nicht zerstört wird.

                  Komisch ist, dass Firebug die POST-Daten korrekt zeigt - da frag ich mich, wie Firebug die POST Daten ausliest?!?
                  Firebug arbeitet im Browser, und schaut sich die Daten an, die vom Browser versendet werden.
                  Das ist nicht die Stelle, an der sie vermurkst werden - das ist diese obskure Weiterleitung.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Kann ich die Weiterleitung irgendwie anders lösen?
                    Ich habe z.b. einen Root-Server....dort habe ich z.b. auch die Möglichkeit Domains anzulegen und zuzuweisen. Leider reichen meine Kenntnisse in Sachen DNS & Co. noch nicht aus....
                    TrainingCity -> Hier lernt man richtig

                    Kommentar


                    • #11
                      Was kann ich denn am Formular anpassen bzw. an PHP?
                      Du könntest das Formular so aufbauen, dass es mit numerischen Indexen, die bei 0 beginnen(!), arbeitet. Schön und sauber ist das aber natürlich nicht.

                      Besser wäre es, die Domain direkt an deinen Webspace zu koppeln. Was sprich dagegen? Ein paar Cent im Monat?

                      Kann ich die Weiterleitung irgendwie anders lösen?
                      Kommt auf die Möglichkeiten an, die du bei UD hast. Aber da du bisher mit Weiterleitungen gearbeitet hast, kannst du wahrscheinlich nicht die entsprechenden DNS-Einträge vornehmen, oder?

                      Kommentar

                      Lädt...
                      X