lieber Dag! in cc: lieber Martin! in cc: suse-laptop ganz herzlichen dank!! die listenmitglieder seien um nachsicht gebeten, dies ist die letzte nachricht in dieser nicht listenspezifischen angelegenheit. ich möchte nur den "thread" mit einer meineserachtens guten lösung für das problem abschließen, so daß andere, die irgendwann einmal dasselbe problem haben sollten, das dann beim suchen im netze finden können. ich habe deinen skriptschnipsel noch so umgeschrieben, daß er mir genau die alte form der variablen auswirft, ohne daß ich register_globals auf "on" setzen müßte - also, sehe ich das richtig? - auch ohne die entsprechende Sicherheitslücke. ich brauche es also nur an den anfang meiner bestehenden skripte zu kopieren - und alles läuft wie gehabt! :-) Skript siehe unten! Rainer On Tue, 15 Apr 2003, Dag Kröper wrote:
Date: Tue, 15 Apr 2003 09:01:23 +0200 From: Dag Kröper <kroeper@mpi-sb.mpg.de> To: M.und.R.Gatz@t-online.de Subject: PHP
Wenn du in den HTML-Formularen "POST" als Übertragungsart wählst sollte Dir folgender Code-Schnipsel helfen (der basiert darauf, dass die Option "track_vars" in der php.ini auf on steht (default)):
-----Snip
if (isset ($HTTP_POST_VARS)){ reset($HTTP_POST_VARS); foreach ($HTTP_POST_VARS as $k=>$elem) { ${"deliv_$k"} = $elem; } }
-----Snip
In der ersten Zeile wird überprüft ob diese Variable gesetzt wurde Die zweite Zeile setzt den Zeiger auf den Anfang des Array's Die foreach Schleife läuft über das Array und baut aus jeder Variable die in dem Formular stand und mit übergeben wurde eine Variable in PHP mit dem Namen "deliv_..." (hierbei steht "..." für den Namen der Variable im HTML-Formular) und weist dieser Variablen den übergebenen Wert zu.
Wenn du "GET" als Übertragungsart wählst, ist das analog, nur das Array heisst dann $HTTP_GET_VARS (Das Funktioniert übrigens auch für Cookies)
Dag Kröper
meine version: // redefine the variables contained in the $HTTP_POST_VARS[variable] array: // test functions are commented out - used only when testing the script if (isset ($HTTP_POST_VARS)){ reset($HTTP_POST_VARS); // $i=1; foreach ($HTTP_POST_VARS as $k=>$elem) { // ${"deliv_$k"} = $elem; $$k = $elem; // testing the output: // echo "element $k<br>"; // echo $elem; // echo "<br>element $i<br>"; // echo $k; // echo "<br><br><br>"; // -- happily using linux and pine ! Rainer Gatz anaesthesiologist e-mail: m.und.r.gatz@t-online.de St.Marienkrankenhaus/ Lünen/ Germany <http://home.t-online.de/home/320023358589-0001/index.html>