Vyšlo nové PHP 5.2.7. Přináší ale problémy

Diskuze čtenářů k článku

Pavero  |  07. 12. 2008 22:49

Každopádně dva roky stará chyba, která se projevuje pod WinXP a IIS tím, že při restartu Windows se objeví chybová hlášky týkající se dllhost.exe zůstává.

http://bugs.php.net/bug.php?id=39960

Kdyby náhodou někdo věděl, jak se toho zbavit, budu rád, když to sem sdělí. Díky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 20:22

Vlastnost by to byla, dyby get_magic_quotes_gpc() vracela 0 (a ne 1, jako že funguje). Takhle to akorát rozbije něco, co dříve fungovalo.

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 20:24

Jestliže vrátí 1, provedu stripslashes(), jestliže 0, pokračuji ve zpracování. I když se magic_quotes vlivem chyby neprovede, spuštění stripslashes() nic nepokazí. A normální programátor to má stejně vypnuté.

Kde je problém?

Souhlasím  |  Nesouhlasím  |  Odpovědět
08. 12. 2008 00:11

Ano ano, děkujeme za názor na normální programátory, stejně jde o bug a je jedno jestli si dáš do pusy třeba fajfku.

A že se nic nepokazí? Tak co udělá zavolání stripslashes() s řetězcem \', který je jako vstup od uživatele a není ošetřen he?

Souhlasím  |  Nesouhlasím  |  Odpovědět
08. 12. 2008 00:20

Hmm, těžká otázka, nechá tam samotný apostrof? A co jako?

Souhlasím  |  Nesouhlasím  |  Odpovědět
08. 12. 2008 00:36

Pokud nechápeš, tak tady je vysvětlení:

Problém je, že magic_quotes_gpc se tváří jako zapnuté, takže bys normálně očekával že v řetězci je \\\', z čehož stripslashes() udělá \' (správně - co uživatel zadal). Jenže v řetězci je jenom \', tak zůstane samotný apostrof (špatně).

A pokud chápeš a přijde ti to v pohodě, tak nezávidím komukoliv, kdo s tebou bude pracovat

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 09:07

Neviděl bych to na chybu, ale na vlastnost. Tato funkce, stejně jako mnoho dalších, v PHP6 nebude a nikdo normální ji stejně dávno nepoužívá.

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 13:16

Bug to je (vývojáři to přiznali v diskuzi k bugu - This bug has been fixed in CVS.), ale vypadá to, že se to vývojáři snaží uhrát na vlastnost (ostatně jako už hodně chyb... )

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 13:29

Klidně vlastnost. Jako Python 2.6 byl přípravou na Python 3, může být PHP 5.2.7 / 5.3 přípravou na PHP 6, kde konečně hovadiny typu magic_quotes a register_globals nebudou.

Pokud to někdo normální používá a spoléhá na to, tak je to idiot amatér. Normálním programátorům to je ukradené, používají jiná řešení.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
07. 12. 2008 14:22

5.3 je skutečně tak míněna, ale 5.2.7 by mělo zachovávat vlastnosti řady 5.2.x, zvlášť když je to stabilní verze, takže to je nepochybně chyba, ne vlastnost.

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 14:48

Tak nas idiotsky amatery pouc, jak mame osetrovat POST a GET data, kdyz udelame zakaznikovi portal a nevime, jestli tam ma magic quotes zapnuty nebo ne. Schvalne se podivej, jak to resi vyvojari phpmyadminu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 14:53

Mně je celkem ukradené, jak to řeší vývojáři phpMyAdminu, tenhle nástroj pro mě není žádný etalon. Vím, jak to řeším já - tuhle stupidní direktivu automaticky pomocí .htaccess (nebo po dohodě s webhostingem) vypínám a používám vlastní ošetřování. Vzhledem k tomu, jak jsou magic_quotes nespolehlivé a špatně ošetřují, tak opravdu nechápu, jak je někdo v dnešní době může používat. To, co mi jde od uživatele, chci mít pod kontrolou a chci s tím manipulovat sám.

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 23:13

Takze kdyz to shrnu, tak profesionalni programator se musi vyhnout univerzalnimu reseni a v nejhorsim se domluvit s webhosterem, jinak je amater a idiot. Tohle me opravdu pobavilo

Souhlasím  |  Nesouhlasím  |  Odpovědět
07. 12. 2008 23:25

magic_quotes je univerzální řešení? To zase pobavilo mě :))

Ještě jednou. Pokud chci mít jistotu, že se má aplikace bude chovat správně, tak si zařídím korektní nastavení serveru. Tzn. vypnuté magic_quotes, vypnuté register_globals, vypnuté short_open_tag, vypnuté display_errors... Prostě pořádně nastavené prostředí. Pokud tu aplikaci někdo chce provozovat, tak se podle jejích požadavků zařídí.

Pokud i přesto chci mít jistotu, že mé řešení bude alespoň co do magic_quotes univerzální, tak při zjištění, že magic_quotes je 1, provedu automaticky stripslashes() a následně tak jako tak provedu vlastní ošetření.

Souhlasím  |  Nesouhlasím  |  Odpovědět
pepak  |  08. 12. 2008 07:24

Napište prosím příklad nějakého vstupu, který magic_quotes_gpc neošetří buď vůbec nebo jen nespolehlivě. Moc by mě to zajímalo. Děkuji.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor