foreach hjælp..

Tags:    php

foreach($_GET as $key=>$value) {
eval("$$key = \\"$value\\";");
}



Er der en fejl i den foreach sætning?


- walker
http://walker-wod.tk



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
hmm... Da du ikke har skrevet $_GET['et_eller_andet'], antager jeg at du vil skrive alt hvad der er i $_GET[].. Det kan du gøre med print_r:

print_r $_GET;

Det ser bare ud som om du vil noget mere... Du skal jo vise de data du får ud af eval... eval skriver ikke selv data, den formatere dem bare..

prøv med:

foreach ($_GET as $key=>$value) {

echo $key ."=". $value ."\\n";

}

Hvis det er det du vil


[Redigeret d. 26/10-04 11:01:59 af JT]



Til de andre svar: der står eval, ikke echo.

Jeg vil gætte på at det er en register_globals funktion. PAS PÅ med det!!

Koden kommer med fejl, hvis der ikke er get variabler, for så er $_GET ikke en array.

prøv evt:

if(is_array($_GET)) foreach($_GET as $key=>$value) $$key = $value;


Koden tester om der er get variabler, og den er mere sikker, da den kun giver brugeren fuld adgang til at ændre variabler, ikke adgang til at køre tilfældig kode, som din egen version gjorde!!!!!!

[Redigeret d. 26/10-04 16:04:27 af Jesper Kristensen]



Den skriver at der er fejl i argumentet.. :/



Hvis du vil skrive indholdet af $_GET, så brug

print_r $_GET;

eller:

while (list($key, $value) = each($array)) {
echo "Key: $key; Værdi: $value\\n";
}

Prøv evt at skiv hvad du vil??

[Redigeret d. 26/10-04 12:08:06 af JT]




Havde nu set at der stor eval, men da der ikke var en if indvolveret, troede jeg at der skulle skrives...

My bad :)




t