Portál AbcLinuxu, 4. července 2025 03:55
Tak dneska se proti mě spiklo už i PHP a házelo mi zajímavou chybu.
Udělal jsem si do každého includovaného souboru definici, že je to ten a ten soubor
define("FILE_KTEREJ_UNCLUDUJU", "1")a před použitím nějaké funkce z includovaného souboru ověřuji
defined("FILE_KTEREJ_INCLUDUJU")Když se rozhodnu, že něco nechci, jednoduše zakomentuju patřičnej include v indexu a bez dalších změn vše stále funguje. (Diskuze, pošta..)
Některé sekce jsou jen pro přihlášené, což poznávám přes
isset($_SESSION['id'])ale běda jak jsem volání defined a isset dal do jedné podmínky..
if(defined("FILE_KTEREJ_UNCLUDUJU") && isset($_SESSION['id']))hlásilo že funkce isset není definovaná (po přehození defined není definovaná). Dal jsem tedy volání funkce za && do závorek..
if(defined("FILE_KTEREJ_UNCLUDUJU") && (isset($_SESSION['id'])))a prošlo to, ale jen na jednom serveru. Jinde jsem dostal chybu, že je tam prázdná funkce "()", evidentně vadily ty závorky.
Už jsem opravdu nevěděl jak to obejít, aby to prošlo všude a vyřešil jsem to celkem hnusně, ale aspoň to funguje..
if(defined("FILE_KTEREJ_UNCLUDUJU")) if(isset($_SESSION['id'])) echo....
Nechci si ani představit, kdybych měl těch podmínek, co maj platit současně mnohem víc.. : )
Tiskni
Sdílej:
if((defined("FILE_KTEREJ_UNCLUDUJU")) && (isset($_SESSION['id'])))
A co takto? V předposlední ukázce to vypadá na špatně umístěné závorky
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.