Veröffentlicht 7. November 200222 j Hallo, ich hänge gerade an einem kleinen Problem fest. Vielleicht kann mir ja jemand von euch helfen. ich habe ein Script, welches eine unbestimmte Anzahl von Variablen übergeben bekommt. Diese Variablen haben alle den gleichen Namen mit einer sich vortlaufend um 1 erhöhenden Nummer hinten dran: $chk_box0 $chk_box1 $chk_box2 $chk_box3 u.s.w. Kennt jemand eine Möglichkeit zu ermitteln, wieviele Variablen übergeben wurden? Vieleicht in einer Schleife mit dem Befehl isset()? $i = 0; while (isset($chk_box$i)){ $i++; } So funktioniert halt die schreibweise der Variablen nicht... Vielen Danl schon mal Oneside
7. November 200222 j Am besten du gehst das array $HTTP_GET_Vars durch, so bekommst du alle Variablen die übergeben werden, und dann kannst du eventuell noch nach den Bestimmten Variablen filtern die du brauchst filtern: reset ($HTTP_GET_VARS); $i=0; while (list ($key, $val) = each ($HTTP_GET_VARS)) { $i++; } [/PHP] bzw $HTTP_POST_VARS wenns von Checkboxen kommt... Gruß Fraggy
8. November 200222 j Originally posted by Fraggy Am besten du gehst das array $HTTP_GET_Vars durch, so bekommst du alle Variablen die übergeben werden, und dann kannst du eventuell noch nach den Bestimmten Variablen filtern die du brauchst filtern: bzw $HTTP_POST_VARS wenns von Checkboxen kommt... Sind $HTTP_GET_VARS und $HTTP_POST_VARS nicht allein abhaengig von der verwendeten Methode?
8. November 200222 j Wieso übergibst Du die Variablen nicht schon in einem Array mit fortlaufendem Index ? Das würde die dann anfallende Überprüfung doch sehr erleichtern.
8. November 200222 j Originally posted by Schledo Wieso übergibst Du die Variablen nicht schon in einem Array mit fortlaufendem Index ? Das würde die dann anfallende Überprüfung doch sehr erleichtern. Weil Deine Loesung nicht mit ausgeschalteten register_globals (Standard ab php 4.2) funktioniert.
8. November 200222 j Originally posted by oneside $i = 0; while (isset($chk_box$i)){ $i++; } So funktioniert halt die schreibweise der Variablen nicht... Probier's so: $i = 0; while( isset( ${"chk_box".$i} ) ) { $i++; }
9. November 200222 j Die Frage ist zwar beantwortet, aber nur als Nachtrag : Weil Deine Loesung nicht mit ausgeschalteten register_globals (Standard ab php 4.2) funktioniert.Das war nirgendswo hier zu lesen, aber egal.
9. November 200222 j > Weil Deine Loesung nicht mit > ausgeschalteten register_globals (Standard ab php 4.2) funktioniert Die letzte Lösung wohl ebenso wenig. Aber soll das etwa heissen, dass man nun keine Arrays mehr übergeben kann? Würde mich ehrlich wundern.
9. November 200222 j Originally posted by Schledo Die Frage ist zwar beantwortet, aber nur als Nachtrag : Das war nirgendswo hier zu lesen, aber egal. Stimmt. Nur brauchst Du Dich nicht wundern, dass Skripte in neueren Versionen ohne Anpassung (im Quellcode oder in /etc/php.ini) nicht mehr richtig funktionieren.
9. November 200222 j Originally posted by hades Stimmt. Nur brauchst Du Dich nicht wundern, dass Skripte in neueren Versionen ohne Anpassung (im Quellcode oder in /etc/php.ini) nicht mehr richtig funktionieren. Also? Keine Lust auf meine Frage einzugehen?
9. November 200222 j @Ryson: Egal ob register_globals on oder off ist, Du kannst immer Arrays an Funktionen uebergeben. Meine Aussage: Weil Deine Loesung nicht mit ausgeschalteten register_globals (Standard ab php 4.2) funktioniert. ist fuer Schledos Loesungsansatz nicht zutreffend. Es bezog sich faelschlicherweise auf das Uebergeben mit Post und Get und nicht auf das grundsaetzliche Uebergeben von Argumenten und Parametern an Funktionen. So langsam weichen wir vom bereits geloesten Problem ab.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.