[php] was macht dieser code?

cr4wler

Admiral Special
Mitglied seit
02.09.2003
Beiträge
1.630
Renomée
5
sorry, bin net so der checker... und muss jetzt grad einen batzen php-code verwalten, und derjenige der ihn geschrieben hat is grad ne weile unerreichbar...
was genau macht dieser code?

foreach($_GET as $var => $val){
${$var} = $val;
}
foreach($_COOKIE as $var => $val){
${$var} = $val;
}
foreach($_POST as $var => $val){
${$var} = $val;
}

thx!
 
$_GET, $_POST und $_COOKIE sind alles globale Variablen die alle Werte die entweder per post- (z.B. Formular) oder get-methode (z.B. per Link oder auch Formular) übergeben wurden oder in einem Cookie gespeichert sind in einem assoziativen Array speichern.

Wenn du also einen Link in der Form www.irgendwas.com/index.php?id=1 anklickst, dann hast du danach die Variable $_GET["id"] = 1 gespeichert. Mit dem Code "wandelst" du es wieder um, sodass du über $id auf die id zugreifen kannst.

Wenn du mehr über Konstrukte wie ${$var} wissen willst, kannst du hier nachschauen:
variable Variablen
 
Original geschrieben von kip
der code simmuliert "register_globals on" was nicht schön ist ...

stimmt das? ich mein... klar, man hört immer blabla "register_globals=on ist moppelkotze"
aber ich habs auf dem server wo das läuft an...
der codebereich oben ist outcommented... hab mich nur gefragt was der code da tut ^^
thx auf jeden schonmal!
 
Original geschrieben von cr4wler
stimmt das? ich mein... klar, man hört immer blabla "register_globals=on ist moppelkotze"
aber ich habs auf dem server wo das läuft an...
der codebereich oben ist outcommented... hab mich nur gefragt was der code da tut ^^
thx auf jeden schonmal!


warum klickst du nicht auf den link und liest die Meinung der PHP-Leute zu register_globals? :) Deshalb hab ich den Link u.a. gepostet ... :)
 
klar... SO gut kenn ich mich schon aus dass ich weiß was da passieren KANN...
nur bei der seite die ich da hab is das relativ egal...
und jeder der den quelltext der seite lesen würde und was von php versteht, würde mir den quelltext wohl um die ohren schlagen... auch wenn er net von mir is ^^
aber bis auf einen kleinen fehler, der wohl irgendwie in einem endlos loop endet funktioniert die seite auch einwandfrei... aber wenn man das nicht selbst geschrieben hat, keine kommentare drin sind, und man die programmiersprache net kann hat man probleme einen fehler zu finden ^^

achja, wie kann mir jemand dass hier erklären?

if ((isset($kill) && $kill) || (isset($llik) && $llik) || ....)
{
...
for ($i=0; $i<count($alt); $i++)
{
if ($kill)
{
if ($i == $kill-1 && ...)

imho überprüft der am anfang obs die variable $kill gibt und ob sie boolean true is oder eben dasselbe bei $llik undsoweiter... danach kommt eben diese for schleife, in der nochmal geprüft wird ob $kill true is, und danach wird geguckt ob die laufvariable $i = $kill-1 ist?! $kill ist doch boolean?! ich hab geguckt... die schleife wird tatsächlich durchgeführt (echo eingefügt)
aber die variable $kill kommt nur insgesamt 4 mal vor, und zwar genau in dem codeausschnitt den man hier sieht... wo wird die gesetzt?!?


edit: habs jetzt ^^ if ($kill) liefert nur bei leeren strings und 0 false :-)
 
Zuletzt bearbeitet:
Zurück
Oben Unten