Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Lopuch, server nejen
pro botaniky

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Archiv
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: upxcatg
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 19.5.2008 11:48  2279
jak moc odhadujete že bude brzdit server servírování obrázků pomocí php (jen passthrough) oproti servírování přímo apačem?
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 14.5.2008 11:54  2278
EtDirloth [2277]: Což mi onehedá posloužilo jako důvod, abych s globals přestal pracovat :-).
etdirloth EtDirloth 14.5.2008 09:30  2277
Makhiel [2272]: huh [2274]: isset ani !empty ludom neodporucam v pripadoch, kedy testovana premenna nemusi byt typu Array - vtedy array_key_exists vyslovene potrebujes, pretoze ani v pripade vypnutych warnings a stringu $str['page'] nebude robit nepekne a tazko odhalitelne problemy. To vsak zrejme nebude pripad $_GET. Kedze ale presadzujem jednotny pristup vsade kde sa da, pouzivam array_key_exists - aj na superglobal arrays.
vid. comparison table, resp. jej krajsia verzia

Johny_G [2273]: ked ide len o register_globals, tak v tom nevidim problem, podpora tejto ficurie nebude az od php6
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 14.5.2008 07:41  2276
mam php verze 5.2.5 a nemam s tim odkazovanim na neexistujici prvek pole problém... chybový hlášení mam na ostrý verzi vypnutý a na pokusný při ladění mi to nevadí.
Skript mi to v každém případě neukončuje.
huh huh 14.5.2008 01:39  2275
a ano -- dnesni PHP (resp. dnesni doporucovane zpusoby) nema uz zadne vyhody (zejmena ve smyslu mene psani) nez od pocatku univerzalni skriptovaci jazyky typu Python nebo Ruby
huh huh 14.5.2008 01:33  2274
Johny_G [2273]: tak pouzivej !empty a mas to. jinak vypisovani notice se da samozrejme vypnout
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 14.5.2008 01:28  2273
Makhiel [2272]: Já mám právě podobnou konstrukci (jen místo isset používám array_key_exists), a připadá mi to jako docela dost balastu k nakrmení proměnné - nemluvě o tom, že tohle neřeší případ, kdy je v proměnné prázdná hodnota, a tudíž se musí ještě řádek připsat. Tohle je právě ta cesta, které jsem se původně chtěl vyhnout. No hodím to holt do nějaké funkce, ať nemám ze zdrojáku kompost.

To PHP pro mě úplně ztrácí kouzlo - v začátcích jsem prostě rovnou volal $page, a jak to díky register_globals pěkně chodilo :-).
makhiel 14.5.2008 01:15  2272
Já to zase vždy řešil jednoduše stylem

if (isset($_GET["page"])) $page = $_GET["page"];
else $page = "main";

respektive mám na to napsanou funkci, která by měla být v PHP6 už implementovaná rovnou :), o tolik složitější to není; v konfiguraci se dá poštelovat asi tak jen registerGlobals
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 13.5.2008 22:36  2271
Tak další dotaz - narazil jsem na divnou buzeraci v PHP 5 (chci teď psát přímo v něm, protože se patrně web nastěhuje na server, kde už 4 neběží), a ač se to na několika místech internetu řeší, moc vyřešené mi to nepřipadá. Jde o chybu "undefined index", která naskočí v případě, že se táži GETem na proměnnou, která v adrese není. Zdá se, že namísto toho, aby pole vrátilo normálně hodnotu null, tak to prostě hodí chybu a ukončí skript.

Příklad: Když volám třeba index.php?page=main, je vše v pořádku; když ale zavolám jenom index.php, tak vypadne chyba "Notice: Undefined index: page in [blablabla] on line [blablabla]", a je vymalováno. Vždy jsem měl případ chybějící proměnné řešen jednoduše stylem

$page = $_GET["page"];
if (!$page) $page = "main";

a nebyl s tím nikdy problém. Teď se zdá, že ještě budu muset předem prověřovat existenci indexu v poli $_GET, což už mi připadá dost uhozené, protože tím budu muset každé blbé proměnné věnovat 3 řádky kódu. Dá se to nějak snadno poštelovat v konfiguraci, nebo to je prostě tak?
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 21.4.2008 18:10  2270
To nepotřebuju - tam jsou jen obrázky, a ty stejně přes textarea nepřekreslím :-). Každopádně děkuju moc - proklikal jsem se k tomu od realpath.
huh huh 21.4.2008 18:06  2269
Neni. Akorat nemuzes mit podadresare.
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 21.4.2008 17:32  2268
Seru na to :-)).
$editfile = basename(trim($_GET["editfile"])); už není napadnutelné, že?
huh huh 21.4.2008 17:20  2267
cesta ke skriptu se da urcite vycist odnekud z $_SERVER, ale ja uz si nepamatuju, ktera presne to je
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 21.4.2008 17:11  2265
No jo, to jsem docela pitomec - to mě nenapadlo :-). Vtip je v tom, že zatím nevím, kde to bude bydlet... Buď to tedy můžu nechat neošetřené, a opravit to až na serveru, anebo použít jiné řešení. Vyhledat všechna lomítka by asi také nestačilo, že? Dalo by se to nahradit entitami.
huh huh 21.4.2008 17:06  2264
A co treba adresar/../../../../../etc/passwd ? Ja bych to prohnal realpath() a zkontroloval, jestli to zacina spravne

[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt