Autor | Zpráva | ||
---|---|---|---|
had Profil * |
#1 · Zasláno: 4. 6. 2010, 10:43:35
ahoj, chtěl bych poslat dibi příkaz v php funkci, ale nemůžu tam dostat dibi metodu ani pomocí global $conn (ve který mám uložený připojení) ani jako global dibi. nevíte někdo, jak na to prosím?
|
||
nightfish Profil |
#2 · Zasláno: 4. 6. 2010, 10:47:30 · Upravil/a: nightfish
<?php function myquery() { return dibi::query('...'); } dibi::connect(); $result = myquery(); EDIT: pokud tohle nepomůže, nezbyde ti nic jiného než nám sem poslat esenciální části kódu a lepší popis problému, abychom nemuseli věštit z křišťálové koule |
||
had Profil * |
#3 · Zasláno: 4. 6. 2010, 11:07:59
tak... funkce, kde bych to rád použil:
<?php function firewall(){ // zjistí, jestli má ten člověk přístup na danou stránku podle firewallové tabulky global $_root; $uzivatel = $_SESSION['uzivatel_id']; $ip = $_SERVER['REMOTE_ADDR']; $adresa = $_root.$_SERVER['REQUEST_URI']; dibi::test('SELECT * FROM :prefix:firewall WHERE ip = "'.$ip.'" OR uzivatel = "'.$uzivatel.'" AND url REGEXP "'.$adresa.'" ORDER BY id'); } ?> v souboru conn.php, který má includovaný soubor s fcí firewall je tohle (zaručeně funkční): <?php // $_conn - obsahuje pole s připojovacíma udajema k databazi try{ $conn = dibi::connect($_conn); } catch(DibiException $ex){ echo get_class($ex).': '.$ex->getMessage(); die; } dibi::addSubst('prefix', ''); ?> a hází mi to chybu: Fatal error: Uncaught exception 'DibiException' with message 'Dibi is not connected to database.' in /data/www/volejbalck.cz/www.volejbalck.cz/dibi/dibi.php:882 Stack trace: #0 /data/www/volejbalck.cz/www.volejbalck.cz/dibi/dibi.php(905): dibi::getConnection() #1 /data/www/volejbalck.cz/www.volejbalck.cz/fce_firewall.php(15): dibi::test('SELECT * FROM :...') #2 /data/www/volejbalck.cz/www.volejbalck.cz/fce_firewall.php(21): firewall() #3 /data/www/volejbalck.cz/www.volejbalck.cz/conn.php(26): include_once('/data/www/volej...') #4 /data/www/volejbalck.cz/www.volejbalck.cz/index.php(3): include_once('/data/www/volej...') #5 {main} thrown in /data/www/volejbalck.cz/www.volejbalck.cz/dibi/dibi.php on line 882 |
||
had Profil * |
#4 · Zasláno: 4. 6. 2010, 11:11:07
teď mě to napadlo... já jsem volání fce firewall() měl hned za tou funkcí a připojení k databázi bylo v souboru conn.php až dýl... takže jsem to volání fce přesunul jinam a začlo to fungovat regulérně. Omlouvám se za zdržení, díky :-)
|
||
Časová prodleva: 15 let
|
0