PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit register_globals Off


pate33
22.07.2002, 17:42
Hi,

ich bin grad dabei meine anwendungen zu debuggen und eben auch die php.ini auf register_globals off ... nun hab ich ein form und uebergeb diverse variablen an eine neue seite ..

wie bekomm ich diese variablen nun auf der neuen seite angezeigt?

muss ich da fuer jede expliziz $variable = $_GET['variable']; schreiben oder gibt es nen befehl, alle variablen zu holen?

thx


pate33
22.07.2002, 17:43
achja, nochwas:

ich uebergeb die variable $action ueber die url mit nem ganz normalen link ... theoretisch muesste ich die doch dann eper $_POST abfragen? geht aber nicht. nur mit $_GET ... :confused:

Apraxas
22.07.2002, 18:54
warum "$var = $_GET[var]"? warum nicht gleich $_GET[var] benutzen?

Warum nur $_GET und nicht $_POST?

weil du die Daten via GET übergibst und nicht per POST....

post(bsp):

<form action="postme.php" method="post">
<input type="text" name="text">
<input type="submit">
</form>

get (bsp):
<a href="getme.php?action=write&id=1">klick mich</a>

natürlich kannst du via <form> auch GET übertragen, einfach method="post" mit method="get" ersetzen...

Jonas
22.07.2002, 20:21
Bei GET gibts aber AFAIK begrenzungen, also da kannst net ewig viel Daten übertragen (ewige Texte im Formular oder so)

Aber auch hier nochmal die Frage nach dem Vorteil des Ausschaltens von register_globals
Also auf der einen Seite hab ich mich damit sowieso nie so richtig anfreunden können, weil ich ja sonst Perl mache und mich das da eher genervt hat

ABER, was soll der Vorteil sein wenn man es ausschaltet? Sicherheit? Performance?

Die Sicherheit ist durch schlechtes coden viel eher gefährtet als durch die Globals
Und die Performance hängt wenn dann eher an solchen sachen wie daß MySQL-Queries bei mysq_fetch_array standardmäßig als assiziosative (hrm wie schreibt man das?) geliefert werden und eben alle werte doppelt geliefert werden. ausserdem müssen diese globalen arrays ja auch existieren...

Apraxas
22.07.2002, 22:19
Ja es gibt bei GET begrenzungen, aber um einen kleine querystring zu übergeben reicht es alle mal...

der Vorteil?
hmm, darüber lässt sich wunderbar streiten...
aber der größte aspekt ist wohl sicherheit...

da du ja eine klare abrenzung bei Session/Cookie/Post/Get hast...

Jonas
23.07.2002, 09:43
Jo wie gesagt, am anfang hat mich das auch genervt mit den globals
weil du zum Beispiel dir auch ewig viele Variablennamen einfallen lassen musst ;)
CookieName, DBName, FormName, etc :D

Aber die größte Sicherheitslücke sind die Programmierer selbst, nicht die globals...

Jan Krüger
23.07.2002, 11:43
richtig. und an stellen, wo man wirklich zwischen cookie, posts und gets unterscheiden muss, kann man ja immer noch die entsprechenden superglobal-arrays benutzen.
btw mit z.b. "extract($_POST);" kannst du alle post-variablen in den aktuellen namespace importieren, egal, ob register_globals aktiviert ist oder nicht. auch in den namespace von funktionen. ;)

Jonas
23.07.2002, 20:46
pah, das is ja sowieso noch ne komplett andere sache in php ;)

die sollten erstmal genau definieren, wie lange eine variable gültig ist etc, bevor sie mit sowas ankommen (wie globals off)... :)