if($_GET["page"] == "news"){} vs if($page == "news"){}

Lamavic

Mitglied
Hi,
ich bin ein wenig auf #php.de rumgesurft und da hat jmd eine Frage gestellt ob if($_GET["page"] == "news"){..} im Zusammenhang mit ...index.php?page=news korrekt sei. Ich riet ihm dazu, doch einfach if($page == "news"){...} zu benutzen. Aber er lachte mich mehr oder weniger aus. Er meinte, so etwas sei zu 'unsicher' und viele PHP-Versionen würden dies nicht mehr 'unterstützen'. Außerdem sei es 'unschön' und 'unprofessionell'. Aber ich verstehe nicht wieso diese Methode : if($page == "news"){...} so schlecht sein soll und warum 'man' (angeblich) if($_GET["page"] == "news"){..} den Vorrang lässt. Könntet ihr mir das bitte einmal kurz erläutern ?

mfg Laddy
 
bei neueren php-versionen ist die funktion register_globals von hause aus deaktiviert (== off).
das bedeutet das man auf variablen die mittels GET oder POST übertragen wurde nicht mehr über $lalala zugreifen kann, sondern man muß sie mittels $_GET[] bei der methode GET und $_POST[] bei der methode POST u.s.w auslesen.

weiterhin ist ein optischer untertschied zwischen normalen variablen und varibalen die übertragen wurde sehr einfach ersichtlich, was das quelltext lesen sehr sehr vereinfacht.

cu bloddy
 
Es ist vor allem ein großes Sicherheitsrisiko. Stell dir vor, du übergibst eine Variable $var per POST an ein Script, und verwendest darin die Variable $var anstelle von $_POST["var"]. Jetzt kommt jemand auf die Idee, dem Script die Variable $var per GET zu übergeben. Damit könnte er dein Script aushebeln.
 
Wenn in dem Script gescheite Überprüfungen drin sind, sollte es eigentlich kein Problem sein. Denn wenn keine Referrerüberprüfung stattfindet, könnte sich jemand der das Script aushebeln will das Formular (POST) nachbasteln.
 
Zurück