req999 Creative Commons License 2002.06.03 0 0 465
Ismer valaki használható, kellemesen mozgékony fórumot PHP-ügyben? Mondjuk olyasmit, mint a www.devshed.com? (Nem baj, ha magyar.)

Megy a vita világszerte, hogy jó dolog-e, ha engedélyezettek az automatikus globális változók, tehát hogy a GET illetve POST metódusokban küldött értékeket globális változókká alakítja a PHP. Az ellenzők úgy vélik, ezzel csökken a biztonság. (http://old.lwn.net/2001/0704/a/study-in-scarlet.php3)
Az említett cikkben az alábbi kódot közlik (kicsit hibásan, az első sorban csak 1 db = jel van az eredetiben, ami nem kifejezetten azt csinálja, amit szeretne a program írója):


<?php
if ($pass == "hello")
$auth = 1;
...
if ($auth == 1)
echo "some important information";
?>

A szerző okosan rámutat, hogy az adott program "titkosított" részét simán meg lehet nézni a jelszó ismerete nélkül egy programnev.php?auth=1 URL segítségével.

Nem értem, miért nem a "varázsszóval" kezdi a programot, eképpen:


<?php
unset($auth);
if ($pass == "hello")
$auth = 1;
...
if ($auth == 1)
echo "some important information";
?>

Az unset rögtön kinyírja a külsőleg definiált változót, így azt belül már nyugodtan lehet figyelgetni, az lesz benne, amit a programozó parancsol.

Aztán azt sem értem, hogy miért jó, hogy a függvények nem látják a globális változókat, csak a global parancssal "odaadom" nekik.

Mit szóltok ezekhez? Vélemény, ellenvélemény?