[ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.09
Prihlásený: 28.05.11
Príspevky: 179
Témy: 41 | 41
NapísalOffline : 23.01.2011 11:38 | ako ziskat vsetky premenne

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
        (
        )

)


Offline

Čestný člen
Čestný člen
ako ziskat vsetky premenne

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 23.01.2011 11:41 | ako ziskat vsetky premenne

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.09
Prihlásený: 28.05.11
Príspevky: 179
Témy: 41 | 41
Napísal autor témyOffline : 23.01.2011 11:45 | ako ziskat vsetky premenne

potrebujem to len pre svoju osobnu potrebu keby doslo k nejakej neocakavanej chybe, aby som vedel lepsie analyzovat :D

Inak teraz som skusal
Kód:
print_r ($GLOBALS);
a taktiez mi to fungovalo :?


Offline

Čestný člen
Čestný člen
ako ziskat vsetky premenne

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 23.01.2011 11:52 | ako ziskat vsetky premenne

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.09
Prihlásený: 28.05.11
Príspevky: 179
Témy: 41 | 41
Napísal autor témyOffline : 23.01.2011 12:01 | ako ziskat vsetky premenne

A existuje nejaky kompromis? :D Alebo pouzit naraz $GLOBALS aj get_defined_vars()? :oops:


Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 23.01.2011 12:01 | ako ziskat vsetky premenne

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
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.09
Prihlásený: 28.05.11
Príspevky: 179
Témy: 41 | 41
Napísal autor témyOffline : 23.01.2011 12:06 | ako ziskat vsetky premenne

Tak sa ai budem musiet zmierit s tym ze nebudem vediet o vsetkom :D A ten piaty parameter v hlaseni chyb je tiez asi len $GLOBALS :oops:


Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 23.01.2011 12:56 | ako ziskat vsetky premenne

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 :D


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 23.01.2011 13:13 | ako ziskat vsetky premenne

btw, mozno ti aj toto pomoze

http://php.net/manual/en/function.debug-backtrace.php


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 03.01.11
Prihlásený: 21.02.11
Príspevky: 55
Témy: 1 | 1
NapísalOffline : 24.01.2011 15:26 | ako ziskat vsetky premenne

php30 píše:
A existuje nejaky kompromis? :D Alebo pouzit naraz $GLOBALS aj get_defined_vars()? :oops:
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();


Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 24.01.2011 15:44 | ako ziskat vsetky premenne

prohibit, 2?


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 03.01.11
Prihlásený: 21.02.11
Príspevky: 55
Témy: 1 | 1
NapísalOffline : 24.01.2011 15:59 | ako ziskat vsetky premenne

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()


Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 24.01.2011 16:07 | ako ziskat vsetky premenne

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
Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 03.01.11
Prihlásený: 21.02.11
Príspevky: 55
Témy: 1 | 1
NapísalOffline : 24.01.2011 16:27 | ako ziskat vsetky premenne

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


Offline

Čestný člen
Čestný člen
ako ziskat vsetky premenne

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 24.01.2011 16:32 | ako ziskat vsetky premenne

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.


Offline

Užívateľ
Užívateľ
ako ziskat vsetky premenne

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 24.01.2011 16:59 | ako ziskat vsetky premenne

Ď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
 [ Príspevkov: 16 ] 


ako ziskat vsetky premenne



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Ako ziskat certifikaty

v Internetový marketing, SEO, reklama

0

391

16.01.2011 14:08

beks

V tomto fóre nie sú ďalšie neprečítané témy.

Ako získať IP

v Sieťové a internetové programy

4

589

22.08.2010 12:02

Mego

V tomto fóre nie sú ďalšie neprečítané témy.

Ako ziskat data spat

v Operačné systémy Microsoft

3

294

26.04.2008 17:51

Tonyc

V tomto fóre nie sú ďalšie neprečítané témy.

Ako získať zdrojový kód vzdialeného súboru

v PHP, ASP

8

614

04.11.2011 17:03

camo

V tomto fóre nie sú ďalšie neprečítané témy.

Ako získať dáta z poškodeného HDD

v Pevné disky a radiče

4

3176

24.02.2013 11:03

michalesku

V tomto fóre nie sú ďalšie neprečítané témy.

Ako získať data z nefunkćného HDD?

v Pevné disky a radiče

7

309

26.09.2015 21:14

tatko Tom

V tomto fóre nie sú ďalšie neprečítané témy.

ako ziskat kod videa na stranku

v HTML, XHTML, XML, CSS

6

941

24.07.2009 23:12

wotan

V tomto fóre nie sú ďalšie neprečítané témy.

Youtube- ako ziskať veľa videní za krátky čas

v Služby a webstránky

9

297

07.01.2015 23:09

ac.milan

V tomto fóre nie sú ďalšie neprečítané témy.

Ako zapnut vsetky funkcie

v Ovládače

0

387

02.10.2008 13:00

jot

V tomto fóre nie sú ďalšie neprečítané témy.

vie niekto ako ziskat suradnice pinov z "google maps widgetu"?

v JavaScript, VBScript, Ajax

5

208

17.01.2015 4:37

Vlad

V tomto fóre nie sú ďalšie neprečítané témy.

Označiť všetky témy ako prečítané

v Správy pre vedenie fóra

4

852

21.10.2007 10:41

Baracuda

V tomto fóre nie sú ďalšie neprečítané témy.

Ako dostat vsetky linky z danej stranky ?

v PHP, ASP

1

377

03.12.2011 17:31

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Internet explorer ako vymazat uplne vsetky udaje ???

v Sieťové a internetové programy

11

3110

31.12.2008 12:41

uniqat

V tomto fóre nie sú ďalšie neprečítané témy.

BlackBerry Curve 8520- ako oznacit vsetky polozky naraz ?

v Mobilné zariadenia

0

587

17.12.2010 20:14

jkphoenix

V tomto fóre nie sú ďalšie neprečítané témy.

Ako rýchlo preniesť všetky prípony na jeden program?

v Ostatné programy

8

556

06.06.2007 7:54

stopa27

V tomto fóre nie sú ďalšie neprečítané témy.

Galaxy S6/S7 (všetky verzie) - ako zapnúť podsvietenie tlačidiel

v Smartfóny a tablety

0

1235

18.04.2016 9:39

hanesovic



© 2005 - 2017 PCforum, edited by JanoF