| | |
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
Registrovaný: 21.06.09 Prihlásený: 28.05.11 Príspevky: 179 Témy: 41 | Napísal php30: 23.01.2011 11:38 | |
|
Ahojte chcel by som sa Vas opytat ci sa daju ziskat nejakou jednoduchou cestou vsetky premenne $_SERVER, $GLOBALS, $_COOKIE... v jednom array aj s pomenovanim. Alebo si to musim vytvorit sam.
Predstavoval by som si to tak ako je to vytvorene pri chybe.Vo vlastnom error_handler sa da nastavit piaty nepovynny parameter error_context, ktory vypise vsetky premenne z casu kedy doslo k chybe.
Takze to vyzera takto:
Kód: Array ( [GLOBALS] => Array *RECURSION* [_POST] => Array ( )
[HTTP_POST_VARS] => Array ( )
[_GET] => Array ( )
[HTTP_GET_VARS] => Array ( )
[_COOKIE] => Array ( [PHPSESSID] => rc07bh88ld8jt0po4go7vng606 [__utmc] => 96992031 )
[HTTP_COOKIE_VARS] => Array ( [PHPSESSID] => rc07bh88ld8jt0po4go7vng606 [__utmc] => 96992031 )
[_SERVER] => Array ( _SERVER ( )
[argc] => 0 )
[HTTP_SERVER_VARS] => Array ( HTTP_SERVER_VARS ( )
[argc] => 0 )
[_ENV] => Array ( )
[HTTP_ENV_VARS] => Array ( )
[_FILES] => Array ( )
[HTTP_POST_FILES] => Array ( )
[_REQUEST] => Array ( )
)
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 23.01.2011 11:41 | |
|
http://sk2.php.net/get_defined_vars
Ale ukazat navstevnikovi vsetky zadefinovane premenne moze byt velke bezpecnostne riziko. Odporucam pouzivat na debugovanie a potom odstranit.
|
|
Registrovaný: 21.06.09 Prihlásený: 28.05.11 Príspevky: 179 Témy: 41 | Napísal autor témy php30: 23.01.2011 11:45 | |
|
potrebujem to len pre svoju osobnu potrebu keby doslo k nejakej neocakavanej chybe, aby som vedel lepsie analyzovat
Inak teraz som skusal Kód: print_r ($GLOBALS); a taktiez mi to fungovalo
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 23.01.2011 11:52 | |
|
Jasne. Rozdiel je v tom, ze get_defined_vars() vracia premenne z aktualneho scope.
Kód: $a = 1; function f() { $b = 1; print_r($GLOBALS); } f(); V tomto kode sa ti vo vypise neobjavi nic o premennej $b. Keby si miesto $GLOBALS pouzil get_defined_vars(), zasa sa nic nedozvies o $a.
|
|
Registrovaný: 21.06.09 Prihlásený: 28.05.11 Príspevky: 179 Témy: 41 | Napísal autor témy php30: 23.01.2011 12:01 | |
|
A existuje nejaky kompromis? Alebo pouzit naraz $GLOBALS aj get_defined_vars()?
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 23.01.2011 12:01 | |
|
Kód: array_merge($GLOBALS, get_defined_vars())
ale to ti nevrati premenne pouzivane vo funkciach, ak to volas mimo funkcie.. ako duri pisal
_________________ Sorry za prelkepy |
|
Registrovaný: 21.06.09 Prihlásený: 28.05.11 Príspevky: 179 Témy: 41 | Napísal autor témy php30: 23.01.2011 12:06 | |
|
Tak sa ai budem musiet zmierit s tym ze nebudem vediet o vsetkom A ten piaty parameter v hlaseni chyb je tiez asi len $GLOBALS
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 23.01.2011 12:56 | |
|
Nepotrebuješ vedieť premenné zo všetkých fcií. Premenné vo fciach máš len na ich internú potrebu. Ak zistíš že ti nejde skript kvôli nejakej chybe vo fcií tak si dáš vypísať len premenné tejto fcie počas jej behu.
Inak, toto som sa chcel viackrát spýtať aj ja len som sa na to stále vykašľal, dík, že si to spravil za mňa
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 23.01.2011 13:13 | |
|
_________________ Sorry za prelkepy |
|
Registrovaný: 03.01.11 Prihlásený: 21.02.11 Príspevky: 54 Témy: 1 |
php30 píše: A existuje nejaky kompromis? Alebo pouzit naraz $GLOBALS aj get_defined_vars()? a aku hodnotu by v tvojom kompromise mala premenna $a z mojho prikladu? Kód: $a = 1; function foobar{ $a = 2; //sem pride zavolanie tvojho "kompromisu" } foobar();
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 24.01.2011 15:44 | |
|
prohibit, 2?
_________________ Sorry za prelkepy |
|
Registrovaný: 03.01.11 Prihlásený: 21.02.11 Príspevky: 54 Témy: 1 |
na tu svoju otazku som necakal odpoved, skor ta mala nasmerovat k uvaham preco nic take nie je. Ale tak odpoviem ti ked sa uz pytas. Nie, nenapise 2 a ani 1. Ono totiz nic take ako "kompromis" nie je, lebo neexistuje kompromis medzi dvoma vecami ktore sa rovnako volaju. Na zaklade coho by ich vybralo? Keby taka funkcia ako si si ju vysnival existovala, musela by pouzivat strukturovane pole a vypisovat aj globalne, aj lokalne premenne. Potom by tu premennu vypisalo dvakrat pre oba jej vyskyty a obe hodnoty. Tym padom by to bola funkcia ktora robi to iste co ti bolo napisane, a sice get_defined_vars()
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 24.01.2011 16:07 | |
|
no ver tomu, ze
Kód: array_merge($GLOBALS, get_defined_vars())
by 2 vypisalo. preco by si taky kompromis spravit nemohol? kludne mozes, zistis, ktore prvky sa nachadzaju tam aj tam, pridas prefix a hotovo.. nevidim v tom problem.
_________________ Sorry za prelkepy |
|
Registrovaný: 03.01.11 Prihlásený: 21.02.11 Príspevky: 54 Témy: 1 |
emer píše: no ver tomu, ze Kód: array_merge($GLOBALS, get_defined_vars()) by 2 vypisalo. preco by si taky kompromis spravit nemohol? kludne mozes, zistis, ktore prvky sa nachadzaju tam aj tam, pridas prefix a hotovo.. nevidim v tom problem. pretoze v mojom priklade to neboli dve hodnoty tej istej premennej, ale dve rozne premenne co sa rovnako volali ale existovali v jednom momente obe naraz (len v inych registroch). Tebe vsak vypisalo iba jednu, prave kvoli rovnakemu nazvu
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 24.01.2011 16:32 | |
|
emer píše: no ver tomu, ze Kód: array_merge($GLOBALS, get_defined_vars()) by 2 vypisalo. preco by si taky kompromis spravit nemohol? kludne mozes, zistis, ktore prvky sa nachadzaju tam aj tam, pridas prefix a hotovo.. nevidim v tom problem. Prehod argumenty a vypise 1.
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 24.01.2011 16:59 | |
|
Ďuri píše: Prehod argumenty a vypise 1. ja viem, som to pisal kvoli tomu, ze ako sa moj kompromis zachova prohibit píše: pretoze v mojom priklade to neboli dve hodnoty tej istej premennej, ale dve rozne premenne co sa rovnako volali ale existovali v jednom momente obe naraz (len v inych registroch). Tebe vsak vypisalo iba jednu, prave kvoli rovnakemu nazvu
no ved preto si tam pridas prefixy a mas aj jednu aj druhu, hoc sa rovnako volaju
_________________ Sorry za prelkepy |
|
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|