register globals off

Subwoover

Erfahrenes Mitglied
Ich programmiere eigentlich immer mit register globals ON.
Da ich aber immer öfter scriptausschnitte und beiträge hier lese in denen dinge vorkommen wie $HTTP_GET_VARS und ähnliches, wollte ich mal nachfragen wo der unterschied zwischen ON und OFF liegt?!
Ich meine einerseits der unterschied in der programmierung und andererseits der unterschied in variablenübergabe / aufruf etc...

Und zahlt es sich aus das ganze nun "umzulernen" und mit globals off zu arbeiten?

grüsse eLo
 
Für register_globals=off zu programmieren ist immer besser!
Da es auch zu Webservern mit register_globals=on kombatibel ist, aber nicht andersrum.


Bei register_globals=on werden die Post, Get, Cookie und Session Daten automtisch ales vorgefertigte Variablen zur Verfügung gestellt.
Bei register_globals=off muss man darauf über die Arrays _POST, _GET, (_REQEUST), _COOKIE und _SESSION zugreifen.


Beispiel: Du übergibst per Postformular 2 Variablen:
PHP:
<form action="auswerten.php" action="post">
  <input type="Text" name="text1">
  <br>
  <input type="Text" name="text2">
  <br><br>
  <input type="submit">
</form>
Bisher hast du die Daten immer so ausgewertet:
PHP:
echo $text1."<br>";
echo $text2;
Allerdings solltest du es mit der register_globals=off-Kombatiblem Methode folgendermassen machen:
PHP:
echo $_POST["text1"]."<br>";
echo $_POST["text2"];
Der Ünbersicht halber kannst du auch am Anfang die Variablen wie bei register_globals=on manuel belegen:
PHP:
$text1 = $_POST["text1"];
$text2 = $_POST["text2"];

echo $text1."<br>".$text2;
 
schon mal danke für diese erklärung!

Nur was ist nun eigentlich anders? erhöhte sicherheit? warum?
und wie erstelle / lese / lösche ich ein cookie oder eine session mit globals OFF?

und wann brauch ich get_vars?
 
Subwoover hat gesagt.:
schon mal danke für diese erklärung!

Nur was ist nun eigentlich anders? erhöhte sicherheit? warum?

siehe: http://de3.php.net/manual/de/security.registerglobals.php

und wie erstelle / lese / lösche ich ein cookie oder eine session mit globals OFF?

http://de3.php.net/manual/de/features.cookies.php
http://de3.php.net/manual/de/ref.session.php

Kurz: Du kannst auf die Superglobals $_SESSION oder $_COOKIE zugreifen... (bzw. $HTTP_SESSION_VARS und $HTTP_COOKIE_VARS)
 
danke danke :)
schon mal ganz gut und wie gehe ich in folgender situation vor?

ich habe eine abfrage ob ein submit button gesetzt ist:
PHP:
if ((!isset($_POST["do_register"])) OR (!empty($error))) {

und wenn jetzt aber error auf true steht funktioniert das nicht:
PHP:
<input type=\"text\" name=\"username\" value=\"$_POST['username']\" size=\"20\">

...also wenn bereits der button gedrückt wird aber ein error entsteht.
wie kann ich da die vorher vom benutzer eingegeben daten auslesen? bei register globals off
 
Zurück