defined(ADATBAZIS) típusú ellenőrzés nem működik
Sziasztok!
Egyszerre több különálló oldalt működtettek ugyanazokkal a programokkal (fórum, regisztráció, cikk stb. kezelés), de külön táblákkal. A legegyszerűbb megoldás több adatbázis használata lenne, de erre nincs lehetőségem. Eddig úgy oldottam meg az index.php –ban megadtam egy változót és minden függvényben – ahol kellett – globálissá téve kiolvastam, hogy most mit kell a tábla neve elé illeszteni. Ez az érték soha sem változott meg a program futása közben, sőt azon kívül se túl gyakran …
Arra gondoltam állandóval fogom mostantól megoldani. Definiáltam az index php-banEzt egyszerűen beágyazott fájlokban és függvényeken keresztül is elérem.
Eddig minden rendben.
Van a programjaimban egy biztonsági zár az első sorban. Mindig megnézi, hogy létezik-e a változó vagy nem? Ha igen, akkor mehet a beolvasás. Ha nem, akkor valószínűleg a php fájl pontos helyét írták be, ilyenkor elküldöm az boklászót a főoldalra.
A konstans nem tudom isset()-el megnézni, csak azt, hogy definiáltam-e már.Egyik megoldás sem működik, mert mindig elugrál a főoldalra. Pedig az index.php-ban definiálva van és abba ágyazódnak be ezek a fájlok is.
Mi a hiba?
Tud valaki a leírtaknál egyszerűbb megoldást?
Ugye, lehet egyszerre több konstansom is.
■ Egyszerre több különálló oldalt működtettek ugyanazokkal a programokkal (fórum, regisztráció, cikk stb. kezelés), de külön táblákkal. A legegyszerűbb megoldás több adatbázis használata lenne, de erre nincs lehetőségem. Eddig úgy oldottam meg az index.php –ban megadtam egy változót és minden függvényben – ahol kellett – globálissá téve kiolvastam, hogy most mit kell a tábla neve elé illeszteni. Ez az érték soha sem változott meg a program futása közben, sőt azon kívül se túl gyakran …
Arra gondoltam állandóval fogom mostantól megoldani. Definiáltam az index php-ban
define("ADATBAZIS","egyes_");
Eddig minden rendben.
Van a programjaimban egy biztonsági zár az első sorban. Mindig megnézi, hogy létezik-e a változó vagy nem? Ha igen, akkor mehet a beolvasás. Ha nem, akkor valószínűleg a php fájl pontos helyét írták be, ilyenkor elküldöm az boklászót a főoldalra.
A konstans nem tudom isset()-el megnézni, csak azt, hogy definiáltam-e már.
if (defined(ADATBAZIS)==false) {header("Location: http://valmi.hu");}
if (! defined(ADATBAZIS)) {header("Location: http://valmi.hu");}
Mi a hiba?
Tud valaki a leírtaknál egyszerűbb megoldást?
Ugye, lehet egyszerre több konstansom is.
Aposztróf
A defined(konstansNeve) és a defined('konstansNeve') közötti különbség az, hogy előbbinél a konstansNeve nevű állandó értékét adod át paraméterként, míg utóbbi esetben a nevét.
További variációs lehetőséget ad, ha a konstans értékét is figyeled.
Köszönöm
Egy kicsit furcsa a logikája, de mire leírtam a problémáimat, már meg is értettem.
A második esetben (’-os változat) a változó nevét hasonlítja össze a semmivel.
Vagyis az ADATBAZIS állandó neve (ADATBAZIS) egyenlő-e a semmivel ...
1.) Ha nem létezik, akkor nincs is az ADATBAZIS állandónak neve ...
2.) Ha meg létezik, akkor meg az a neve amit adtam (ADATBAZIS) ...
Tehát, akkor az 1.) esetben semmit se (üres karakter) ad vissza, és ezért működik.