Starší komentáře ke článku: Efektivnější reklamní systém v PHP

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Vita

Datum vložení: 23.9.2003 10:35:33

Proc uvozovky?
blabla... mysql_connect("$dbserver","$dbuser","$dbpass") ... blabla

Uh?
... isset($login) ...

Co se stane kdyz zavolam skript s ?$log=1 nebo ?$log=haha nebo ?$log=true

... $HTTP_GET_VARS[logout] ... UH? Tak $login nebo $HTTP_GET_VARS[logout]? A co treba quotovat? $HTTP_GET_VARS ['logout'] nebo $_GET ['logout'] nic? grrrr

Uprostred skriptu zas $PHP_SELF...

Co se stane kdyz pouziju napr. nazev "Joseph's banner"?


Ja to radsi nectu, to je clanek s znamkou nekde kolem 11-13 ;)

Avatar

Autor komentáře: kremik

Datum vložení: 23.9.2003 11:39:16

To se mi snad zdá! Jak sice uz uvedl vita - s nim naprosto souhlasim - tak musim stejne tak nesouhlasit s timto piggy kodem. Jednou je promenna predavana pres GET nacitana jako $login, podruhe jako $_SESSION['user_ff'], potom zase $HTTP_GET_VARS[logout], nebo <?=$PHP_SELF;?>. To je jako kdyby autor opily z hospody zacal psat clanek na interval a behem psani se mu nekolikrat zavrel manual a on pokazde pokracoval na jine strance, nebo dokonce v jine knize. Kdyz uz vytykam tak bych mel napsat jak by to melo byt spravne:
* vsechny promenne predavane pres GET by mely byt nacitany jako $_GET['nazevPromenne'],
* promenne posilane pres POST by mely byt cteny pres $_POST['nazevPromenne'],
* session promenne se ctou (a zapisuji) pres $_SESSION['nazevPromenne'],
* serverove promenne se ctou pres $_SERVER['nazevPromenne'] - tj. napr. $_SERVER['PHP_SELF']

ostatni priklady viz (doporucuji zejmena p. Zabojnikovi):
<a href='http://cz.php.net/manual/en/language.variables.predefined.php' target='_blank'>http://cz.php.net/manual/en/language.variables.predefined.php</a>

to ze nekde zacina PHP tag a neni ukoncen a zacina novy, nad tim uz nema cenu se ani rozcilovat.

Jsem prekvapen, co se na Intervalu muze take objevit.

kremik

Avatar

Autor komentáře: kremik

Datum vložení: 23.9.2003 11:41:31

je tam jedna chybka v moji druhe vete, spravne ma byt takto:
Jednou je promenna nacitana jako $login, podruhe jako $_SESSION['user_ff'], potom zase $HTTP_GET_VARS[logout], nebo <?=$PHP_SELF;?>.

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 23.9.2003 14:13:18

co tak v tom scriptu se drzet nejakeho standartu jednou pouzivate super globalni pole $_SESSION a hned na to pouzijete nedoporucovane session_register()

potom kdyz uz pouzijete superglobalni pole tak hned zaradite starou syntaxy $HTTP_XXX_VARS no a vrcholem vseho je $PHP_SELF nebo co tam presne je nekdo to tady uz psal

kod jsem si celej necetl a ani clanek ale jak jsem to tak okem prohlidnul tak moc se mi to nelibi :)

Avatar

Autor komentáře: Ondřej Zábojník

Datum vložení: 23.9.2003 14:57:58

Možná, kdyby si někteří z vás také ten článek přečetli, tak by zjistii, proč tam to či ono je. Ovšem jen proletět kód svým jakože zkušeným okem a pak zkritizovat, co se dá, to přece zvládne každý... Například: je vysvětleno, že $_session funguje jen v PHP 4.3.x¨, ne v nižších, proto je defaultně použito starších session_register a nová metoda je v komentáři. Pokud jde o isset($login), nevím o co jde? Jako co myslíte, že se stane, když zadáte ?$log=1 ?? Nic. Prostě vás to dál nepustí. To, že jednou je proměnná načítána jako session a jindy jako normální proměnná taky má svůj důvod. Například takový, že jednou jste přihlášený v systému a jednou ne. A když přihlášený nejste, těžko budete načítat session, pokud jste je ještě ani nezaregistrovali. To, že by se měly některé proměnné načítat $_GET a tak dál je sice pravda, ovšem je tu stejný problém jako u $_SESSION - PHP 4.3.x. Kdybyste také trochu při tom prolétávání kódu přemýšleli o souvislostech, zjistili byste, že $HTTP... jsou tam jen pro validaci formulářů. Pro ostatní je použita ta druhá metoda, takže v tom je také systém.

...no to je asi tak všechno, na co bych vůbec chtěl reagovat.

Avatar

Autor komentáře: 123

Datum vložení: 23.9.2003 15:39:18

Tyhle paka Vitu atd nemam vubec rad nic nepochvali jen kritizuji a svoje dilo nekde v hovnech....

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 0:15:05

prusvih je v tom, ze celej tenhle kod klekne ne vypnutejch register globals, jenze to Vam asi nevadi, ze jo, proc taky, ... to nema smysl

Avatar

Autor komentáře: Vita

Datum vložení: 24.9.2003 1:15:37

Chvalil jsem nekolikrat - ale proc mam proboha chvalit skript kterej je z pulky plnej nesmyslu a chyb? Mimochodem moje dila do toho netahejte, ta jsou funkcni i pri standardnim nastaveni serveru - tohle nikoli.

Avatar

Autor komentáře: Vita

Datum vložení: 23.9.2003 19:44:40

kdyz uz neco tvorite, zkuste se drzet jednotne syntaxe. Pouzit v pulce kodu $HTTP_GET_VARS, do toho tam mit zazavorkovane $_SESSION a mmj. pouzit soucasne i primy pristup k promenne je prasarna - naznacujete soucasne moznost 3 pristupu k promenne ktere jsou navzajem nefunckni.Stejne jako fakt ze nequotujete indexy pole - staci aby nekdo provedl define('blabla', 'blabla') a mate to v kytkach.

Avatar

Autor komentáře: Vita

Datum vložení: 23.9.2003 23:55:29

Mimochodem $_session nefunguje nikde, ne? ;) Ze mate $_SESSION zakomentovane jsem si vsiml, faktem ovsem je ze pouzivate veskere promenne pokazde jinak. A Znovu podotykam - indexy pole se uzaviraji podobne jako retezce do uvozovek nebo apostrofu. V opacnem pripade se vystavujete riziku define - ale i tak je to nekorektni zapis ktery php bere snad jen z historickych duvodu.

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 0:20:21

ehm, tak to je sila, fakt sila

<I>Například: je vysvětleno, že $_session funguje jen v PHP 4.3.x¨, ne v nižších, proto je defaultně použito starších session_register </I>

ale todle doprkynka neni vubec pravda

tohle snad ani nemyslite vazne, to je snuska demagogie a lzi, ja uz se z toho zvencnu

a ted uz to nevydrzim

$HTTP_GET_VARS[aktivovat])) <-- co to dopr*** je - tam je nekde konstanta aktivovat

jednou primo promenne, jednou historicky $HTTP_... - se proste nepouziva, proste neexistuje, skoda, ze ted nemuzu vlozit do prispevku audio, protoze sem fakticky nasran*** do bela

todle jsou proste elementarni neznalosti veci - ELEMENTARNI - <h1>ELEMENTARNI</h1>

za tyden tady mame milion dotazu proc nefunguje tohle ci tamto -> register_globals, ...

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 0:30:04

<?php
include "conn.php";
session_start();
if (isset($login)) { // jestliže uživatel právě odeslal data z přihlašovacího formuláře...
}
?>
...
<?php
if (!isset($log)) :

kdyz data z prihlasovaciho formulare neprijdou, tak neni o $log nikde nic receno a tudiz projde to, co je v query_stringu - toto by neplatilo pri vypnutych RG, jenze jiz pritomnost if (isset($login)) to a priori vylucuje. Tudiz budto je zde neco, co jste neuvedl (napriklad nejaky kod) nebo by zde melo stacit zavolat skript s parametrem ?log=1 - cokoliv, co to udela dale je irelevantni (dal uz jsem to fakt nezkoumal), jestli to treba nezobrazi nic, kvuli spatnemu jmenu/heslu (ktere by pak neexistovalo)

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 0:49:54

muzete mi prosim objasnit, kde jste vzal to cislo 4.3.x

manual:
Warning:
In PHP 4.2.0 and later, the default value for the PHP directive register_globals is off. This is a major change in PHP

uz jen letmou uvahou to znamena, ze minimalne v teto dobe musely superglob pole existovat, jedina zminka o 4.3 ve vztahu k zkracenym verzim je u $_FILES, kdy informace z tohoto pole uz nejsou v _REQUESTu a jak tak na to koukam, tak kratke verze snad funguji uz od 4.1.x

<B>Session variables: $_SESSION
Note:
Introduced in 4.1.0. In earlier versions, use $HTTP_SESSION_VARS. </B>

takze, co je todle doprkynka za vymluvy ?

jeste jednou jsem prosel ten vytvor a stejne, furt nic, nejak to furt cele nechapu ....

a mimochodem

<I>Kdybyste také trochu při tom prolétávání kódu přemýšleli o souvislostech, zjistili byste, že $HTTP... jsou tam jen pro validaci formulářů. Pro ostatní je použita ta druhá metoda, takže v tom je také systém. </I>

TAK za TODLE bych strilel, fakticky a bez milosti ... - vsude ma byt doprkynka $_GET/$_POST maximalne $_REQUEST, k nicemu nepristupovat primo. Jak todle muze rict autor? To uz nas to uci lidi, co to neumej? Me fakticky jebne.

Proc sem takhle nastvanej? Protoze tak nejak furt verim, ze to je chvilkova indispozice intervalu, ale tohle!!! Ja uz ani nebrecim po pokrocilejch tutorialech, ale proboha at jsou tady aspon funkcni veci ...

Avatar

Autor komentáře: Jiří Novák

Datum vložení: 24.9.2003 10:09:25

<B>Můj následující názor nemá vůbec žádnou souvislost s "kódem" ve článku!</B>

<I>...vsude ma byt doprkynka $_GET/$_POST maximalne $_REQUEST, k nicemu nepristupovat primo</>
Striktnost v tomto směru je sice hezká, ale pokud správně ošetřujete proměnný na hodnoty, které mají mít, i použití superglobálních proměnných není nijak nebezpečné. Tím myslím GET a POST, rozhodně ne SERVER, ENV, COOKIE a SESSION. Pokud totiž použijete $_GET/$_POST, může Vám tam stejně změnou formuláře podstrčit kdokoliv cokoliv - a osobně tedy testuju i z jakého serveru je skript spouštěn a případně z jaké stránky (je-li třeba v IFRAME) - tedy např. úpravou formuláře nebo dokonce spouštění z localu si dotyčný "hacker" moc nepomůže, s podobnými průhlednými fintami ho prostě skript dál nepustí (a případně mi dá vědět emailem, co že to zase někdo zkoušel).

Ale rád si poslechnu případné vyvrácení mého názoru.

Avatar

Autor komentáře: Jiří Novák

Datum vložení: 24.9.2003 10:10:38

pardon - uzavírám {I}

</I>

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 11:39:57

Jenze todle sakra neni jen otazka bezpecnosti - je jasny, ze pokud nekdo pouzije surovy data z url, tak je proste (bez pardonu) debil, v drtive vetsine to ma projit nejakym filtrem (na typ, na delku, ...) ale jde o to, ze pri zapnutych RG se Vam vytvari kazda promenna dvakrat -> pomalejsi zpracovani, zatez atd. atd. ono asi ma svoje opodstatneni to defaultni nastaveni ...

Vyvracet Vam mam co? To, co jste napsal je pouze obecna pravda, se kterou ja nepopiram (resp. jsem si toho nevsiml). Ted mluvim nastvane, ale stale ve vztahu k tomudle --censored-- clanku ;)

Avatar

Autor komentáře: Jiří Novák

Datum vložení: 24.9.2003 11:45:18

Dobře, pomalejší zpracování. Ale na freehostinzích je to jedno, protože tam jsou většinou stejně RG zapnuté, takže je tam pomalejší zpracovávání tak jako tak.
Já měl dojem, že mluvíte o nebezpečnosti takovéhoto použití.

Avatar

Autor komentáře: LZ

Datum vložení: 24.9.2003 12:20:59

<I>
Dobře, pomalejší zpracování. Ale na freehostinzích je to jedno, protože
tam jsou většinou stejně RG zapnuté, takže je tam pomalejší zpracovávání
tak jako tak. Já měl dojem, že mluvíte o nebezpečnosti takovéhoto použití.
</I>

ked sme uz pri tejto teme, IMHO tento nazor nie je spravny. RG su pokial
viem zapnute aj na vsetkych platenych hostingoch, ale to urcite nie je
dovod na rychlejsie spracovanie. zrychlenie spracovania spociva skor v
priamom pristupe parseru k hodnote premennej (pri starej metode
prechadzal polia EGPCS, v novej staci napr. $_GET['foo']).


LZ

Avatar

Autor komentáře: Jiří Novák

Datum vložení: 24.9.2003 17:33:55

Máte pravdu, i když při malých skriptech samozřejmě není rozdíl skoro žádný.

Tento můj názor nemění nic na tom, že sám používám již pouze $_GET, $_POST, $_COOKIE, $_SERVER resp. $_SESSION, pokud to není tak "urgentní", tak i $_REQUEST - tedy GET, POST a COOKIE dohromady.
A samozřejmě, že pokud je člověk začátečník, a dostatečně neošetřuje vstupní proměnnou (odkud - GET, POST atd., typ, rozsah...) nebo nekontroluje, odkud se skript resp. formulář spouští (jiný server, local...), i toto je přece jenom alespoň částečné zabezpečení, i když celkově dost chudé.

Avatar

Autor komentáře: Vita

Datum vložení: 24.9.2003 11:47:01

Vzhledem k tomu ze tady se pan ani neobtezoval osetrenim entit...

Avatar

Autor komentáře: LZ

Datum vložení: 24.9.2003 8:18:54

> Ovšem jen proletět kód svým jakože zkušeným okem
> a pak zkritizovat, co se dá, to přece zvládne každý...

tak ja povazujem svoje oko za rozhodne skusenejsie, ako to vase, takze
vas postoj ku kritike mi pripada dost absurdny ...
take prasenie som uz dost davno nevidel, a to sa na forum.builder.cz daju
najst velmi zaujimave prisernosti. nazor, ze je treba defaultne pouzit
stary sposob prace so session (prip. inymi premennymi prostredia) je v
takomto ponati uplne na draka, lebo chyba postup pri PHP 3 a ako iste
viete, uvodnou etapou vyvoja bolo PHP/FI 2.0. urcite by ste si mali skor
uvedomit, ze taketo postupy budu v svojich skriptoch aplikovat hlavne zaciatocnici (vsetci, co uz v PHP nieco napisali, sa skor pousmeju ...) a
ten kod rozhodne nie je ta spravna cesta.

> Kdybyste také trochu při tom prolétávání kódu přemýšleli o
> souvislostech, zjistili byste, že $HTTP... jsou tam jen pro validaci
> formulářů. Pro ostatní je použita ta druhá metoda, takže v tom je také
> systém.

to s tym systemom je dufam len vtip. ked uz chcete byt tak nadupany v
oblasti backward-compatibility, urcite je lepsie pouzit v clanku jednotnu
syntax (najlepsie podla poslednych trendov), a pre zaujemcov (prip.
lenivych typkov, ktorym staci PHPTriad spred 2 rokov) do prilohy bachnut
okrem index_super_globals.php aj index_depreciated_method.php.
kazdy si moze vybrat a uroven clanku by to nepochybne pozdvihlo.

BTW, asi by nebolo na skodu, keby sa v profile autora okrem clankov
zobrazovali aj dlzka skusenosti s temou (jazykom a pod.), pretoze napr.
tento clanok ma rozhodne nepresvedcil o tom, ze by autor mal pisat
tutorialy pre takyto server.


LZ

Avatar

Autor komentáře: Ondřej Zábojník

Datum vložení: 23.9.2003 15:52:05

díky... pár takových taky znám, ale co už...

Avatar

Autor komentáře: Pavel

Datum vložení: 23.9.2003 21:54:11

Sorry, ale vy si asi pletete optimalizaci php kódu pro jednotlivé verze s optimalizací pro různé prohlížeče.

Když už ve skriptu použiji $_SESSION, $_GET atd., znamená to, že spoléhám na PHP 4.3. Jaký má potom smysl optimalizovat "cosi" pomocí $HTTP_GET_VARS pro nižší verze PHP???!!!

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 0:21:22

ne to neznamena vubec nic, php 422 a superglobaly bezi, todle je proste fama

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 0:35:40

1) argumentovat zpetnou kompatibilitou povazuji za naprosto zcestny argument, nove verze phpka jsou zdarma a uprimne cokoli starsiho nez 4.2.2 na serveru bych dnes povazoval za nedbalost nebo nevedomost a oboji nelze u hostingu tolerovat
2) schizofrenie v kodu, konkretne pak v jeho syntaxi je neuveritelna, je to bud slepenina, nebo autor neni zcela v poradku
- jednou uvozovky, jednou apostrofy, jednou index pole jako konstanta, ... (btw: takrikajic "spravne" jsou pry apostrofy - nedavno jsem byl poucen na builderu)
3) koncepce kodu jako celku je priserna, definice funkce uprostred html je dle meho naprost silena (je nesmysl to hned hnat do trid a objektu, kdyz hlavni je vzdy myslenka, ale tohle nema ani hlavu ani patu)

troufam si nahlas rict, ze tohle je vylozene nedbalost redaktora a clanek v teto podobe NIKDY nemel vyjit

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 24.9.2003 16:29:42

muzu se zeptat proc je lepsi pouzivat apostrofy??? ja osobne pouzivam uvozovky prijdou mi pratyctejsi an cesky klavesnici hnedka po ruce :)

rad se necham totiz poucit asi jsem totiz tuto diskuzi na builderu prosvihnul...

Avatar

Autor komentáře: Jan Brašna

Datum vložení: 24.9.2003 17:51:04

Mrkni se do manu, je to tam napsany. Vyrazy v uvozovkach se parsuji - prohledavaji se na promenny, \\n aj., zatimco vyrazy v apostrofech jsou predany tak jak jsou...

$a = 'petition.eurolinux.org';
echo 'Petice za OpenSource - $a';
echo "Petice za OpenSource - $a";

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 24.9.2003 18:09:40

ano ano tohle vsechno vim s PHP uz par roku delam :) ale i tak me prijdou lepsi uvozovky ale podle me je to veci zvyku

Avatar

Autor komentáře: Bořek

Datum vložení: 24.9.2003 18:24:08

Osobně taky používám uvozovky, ale je to jedno - když člověk ví, že v uvozovkách se proměnný zpracujou a v apostrofech ne. Což by měl, protože je to vždycky na jedněch z prvních stránek, i pro začátečníky.
Je to věcí zvyku, stejně jako při programování odsazování TABulátorem nebo mezerou. Obojí je možný, rozdíl pražádný (snad kromě toho, že některé editory TABulátory nemají rády - a proto jsem já zvyklý na mezeru).

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 20:26:55

inteligentni editory zpracuji tabulator jako x nastavenych mezer ... odsazovani kodu je taktez standardizovano ...

Avatar

Autor komentáře: Bořek

Datum vložení: 25.9.2003 8:11:27

Ano, tabulátory nebo mezery :-) Ale záleží taky na překladači, i některé překladače tabulátory nemají zrovna v lásce (v některých spec. případech).

Avatar

Autor komentáře: Jan Brašna

Datum vložení: 24.9.2003 19:35:55

Co by na tohle asi rekl parser? Tak bud tam mam neco, co se ma zpracovavat, a holt necham, at se v tom parser pohrabe, a nebo mu proste zjednodusim praci tim, ze reknu, ze tam nic neni...

Avatar

Autor komentáře: Bořek

Datum vložení: 24.9.2003 19:53:55

Ach jo, to je zas diskuze o ničem... Zjednoduším mu práci o miliontinu vteřiny, to si fakt pošmákne, bože bože.
Ostatně, je to moje věc :-) Hezky ten parser potrápím až se z toho chudák zavaří, že mu neušetřím takovééého času, možná i více než jeden tik v krystalu procesoru! :-P

Howgh

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 20:25:40

tak za prve, ja jsem jen napsal, ze kdyz uz, tak dodrzovat apostrofy - imho souhlasim s nazory na builder - nic to nestoji a aplikaci zase o neco zrychli, nicmene v tom case bych velmi, velmi polemizoval (kdyz jsme to testovali na builder, tak rozdily jdou dle pripadu a pouziti az do sekund). Zalezi, jak cisty kod delate, jakou logiku aplikace ma - jako pravda je, ze na blbe udelany apl, to neprida - u jednoduche stranky je to jedno, v pripade zpracovani vetsiho bloku (typicky cykly) je vsak uspora znatelna ...

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 24.9.2003 20:11:54

mezi nama zakaz parsovani v uvozovkach se da zakazat lomitkem( \ ) takze nevidim problem pouzivat uvozovky :)

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 24.9.2003 20:22:48

todle slysim poprve, jak je tedy konkretni syntaxe?

$a = \"sss\"; //to snad ne

Avatar

Autor komentáře: jakub

Datum vložení: 24.9.2003 20:21:28

:) jo, to je fakt, jsou po ruce, tak je to i >>praktyctejsi<<, klidne, jako jo, ja uz dneska beru vsechno, to je neuveritelny ...

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 24.9.2003 22:22:53

u me je to spis sila zvyku nez prakticnost asi jsem spatne zvolil slova ale uvozovek se uz asi nezbavim zbavil jsem se spousty zlozvyku ve svem kodu a to vetisnou diky cteni for na builderu ale tohle pro me osobne bude asi velkej orisek

i kdyz jak se rika zbavit se da vseho ale zajimaly by me ty testy teda pokud je mate nekde napsane nebo nejlepe na inetu vystavene rad bych uvital odkaz a podival se na to

Avatar

Autor komentáře: jakub

Datum vložení: 25.9.2003 1:03:35

Co je tak tezkeho na tom zkusit pospojovat tri promenne + tri stringy jednou metodou " podruhe ' a pak trebas "{$pole[1]}", ... prohnat to cyklem (trebas 9tis opakovani a porovnat vysledky). Jak rikam, jednoznacne nebudou vzdy, ale temer vzdy vyjdou lepe. Jestli ale chcete primy a zretelny dukaz, tak ho pravdepodobne nedostanete. Nazor budu pouzivat uvozovky na sekundach nezalezi je asi stejne koser jako delat nevalidni kod, i kdyz to funguje a dobre vypada. Parser to taky sezere, ale je to zbytecny. Takze asi takhle.

Avatar

Autor komentáře: Vita

Datum vložení: 25.9.2003 1:28:01

Nelamejte to pres koleno. Dukaz nedostanete, v podonych pripadech si s tim totiz server poradi celkem v pohode. Rekneme ze byste to dokazal pri x desitkach opakovanych pokusu ze tam 'neco' je ale bez toho to vse zalezi asi na tisici veci.

Avatar

Autor komentáře: Bořek

Datum vložení: 25.9.2003 8:07:04

Ano, o tom to je, o sekundách, ale jedině v případě opravdu tisícových cyklů a vůbec objemných skriptech. Je to stejné jako porovnávat řetězce "jedna $dve tri" a "jedna ".$dve." tri". Rozdíl naprosto minimální. A stejné je to i jako sčítání a násobení. V počátcích procesorů pro PC bylo násobení několikanásobně pomalejší než sčítání a proto se doporučovalo raději použít "a+a" místo "2xa". Dnes je to už jiné a rozdíl i když je stále, tak ve zlomkách promile, a člověk se tím zabývá jen když opravdu potřebuje co nejrychlejší algoritmus, např. u oněch obr cyklů. Pak už je takové zkoumání užitečné, ale zabývat se tím v běžném programování?!
Reakce na můj několika desítek KB velký skript, kde používám obyčejné cykly (několik desítek průchodů a několik desítek cyklů) a skoro v celém v něm používám uvozovky, je i na zatíženém serveru (kterým WZ dozajista je) snad desetina vteřiny, včetně zápisu do DB atd., takže...

Avatar

Autor komentáře: jakub

Datum vložení: 25.9.2003 11:58:21

<I> "jedna $dve tri" a "jedna ".$dve." tri".</I>
zkuste "{$pole["jedna"]} blu bla ble {$pole["dva"]}" vs. $pole['jedna'].' blu bla ble '.$pole['dve'] - o tomhle mluvim

jako, jestli tady chcete abych odkejval, ze je to spravne, mate smulu, to je holt _objektivni_ pravda, kolik usetrite a jestli chcete/stoji Vam to za to je na Vas, ja rikam, ze kdyz ciste, tak ciste

za dalsi zalezi na urovni slozitosti aplikace - napriklad mira automatizace nekterych procesu - napr. kdyz se zeptate aplikace primo (ruco udelate kod) vs. kdyz zadate obecne podminky a aplikace musi dotaz sestavit sama atd. atd.

vy rikate, ze se to pozna pouze pri tisicich pruchodech apod. jenze bohuzel server ma za den takovych pozadavku opravdu tisice (vynasobime-li tisic pristupu napr 100 cykly na kazdy pozadavek, pak to cislo narusta) a navic existuji aplikace - napriklad chaty, kde je techto pozadavku velke mnozstvi s odstupem vzdy nekolika sekund taktez tisice. Az budete delat opravdu vetsi aplikaci, ktera bude muset odolat zatezi mnoha tisic pozadavku, pak budete setrit kde se da - navic kdyz TO NIC NESTOJI ...

;)

Avatar

Autor komentáře: Bořek

Datum vložení: 25.9.2003 12:16:41

Ale vždyť já neříkám nic jiného, že u větších aplikací to je k něčemu, stejně jakákoliv jiná optimalizace... Ale protože tyto velké aplikace nebudu dělat patrně nikdy (protože dělám jen menší řádově v několika tisících řádků ve zdrojáku, a ještě k tomu zadarmo resp. není to náplň mé pracovní činnosti), nepotřebuju ani ovládat dokonalost zrychlení takovýchto aplikací.
Kdyby byla pravda to co říkáte i u malých aplikací, ale v rámci desetitisíců jednotlivých webů (webzdarma.cz), zajisté by mi ty moje aplikace vykazovali pomalou reakci - leč to tak není a reakce je prakticky okamžitá.

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 25.9.2003 15:29:59

dobre ja se nebudu hadat :) koukam ze jste mnohem lepsi a tak nebudu ze sebe delat chytreho a ted otazka k veci

co je podle vaseho prikladu:
"{$pole["jedna"]} blu bla ble {$pole["dva"]}" vs. $pole['jedna'].' blu bla ble '.$pole['dve']

rychlejsi a co je lepsi jestli pouzivat toto {$pole["jedna"]} uvnitr stringu a nebo ho oddelit .$pole['dve'].

doufam ze jste me pochopil :)

Avatar

Autor komentáře: Bořek

Datum vložení: 25.9.2003 15:50:42

Zase něco co jsem neřekl a ani jsem si to nemyslel, neboť v PHP dělám tak max. 3 roky.

Rychlejší je to druhé, ale nevím co myslíte tím příkladem prvním, protože takovéhle "slátaniny" nepoužívám, a pokud je to pole, nikdy ho nedávám dovnitř řetězce. To věřím, že takováhle "prasárna" musí trvat "dlouho".

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 25.9.2003 15:56:12

no ono se da nove do stringu napsat {$promena} tim PHP parseru davate najevo ze tady ma parsovat ten kod uvnitr a myslim si ze i kdyz mate '{$promena}' tak vam to tu cast ve slozenych zavorkach parsuje

Avatar

Autor komentáře: jakub

Datum vložení: 26.9.2003 0:42:33

zkuste, me to vyslo na to druhe

Avatar

Autor komentáře: Vita

Datum vložení: 25.9.2003 18:47:25

Boze jakube, ty me prekvapujes. Jednak te mohu ujistit ze parser zdaleka neni tak hloupy za jaky ho povazujes, jednak ten tvuj pokus ti nevyjde. Parkrat se to zkouselo a musis to zkusit radove na 100.000 cyklech a alespon 30x. A ani pak neni vysledek jednoznacny protoze i pri 30ti pokusech nejsi schopen rict kdy jede server 'jen tobe' a kdy pro ostatni.

Prosimvas, pokud chcete argumentovat, tak si to nejdriv zkuste. Zkouseno to bylo, na okounu byly vysledky a tady ty vase argumenty zretelne vypovidaji o tom ze si leda myslite jak by to 'mohlo' fungovat.

Avatar

Autor komentáře: jakub

Datum vložení: 26.9.2003 0:52:54

ne, ne, ne ted se bavime seriozne - na builderu jsme o tom vedli debatu - a odzkouseno v konfiguracich

XP prof - apache2 - php 422 na 1GHz proc. 256+RAM - standalone - vysledky zretelnejsi
RedHat (tusim) - apache2 - php 432 (tusim - 2GHz proc 1024 RAM - polovicni rozdily oproti vyse zminene konfiguraci (hot server)

pravda, ze pro _zretelny_ (az 10 sekund) odstup je nutne udelat tolik pokusu, kolik pises

nehodlam se hadat na krev, manual imho jasne rika, co a jak se deje pri jednoduchych a slozenych uvozovkach, je to asi jako dogma, co se w3c standardu tyce - tzn. z meho pohledu je "legalni" pouziti xhtml+css2, perfekcionista udela web dle dogma - analogicky syntax u phpka.

btw:
<I>Prosimvas, pokud chcete argumentovat, tak si to nejdriv zkuste. Zkouseno to bylo, na okounu byly vysledky a tady ty vase argumenty zretelne vypovidaji o tom ze si leda myslite jak by to 'mohlo' fungovat. </I>

todle jsem jakoby necetl
1) to bych totiz napsal neco jako "ja si myslim, ze by to mohlo ..." nebo "udajne je to takhle ..." ;)))
2) do debat, kde si nejsem jisty se nepoustim, je to pak trapny ;)

Avatar

Autor komentáře: jakub

Datum vložení: 26.9.2003 0:56:51

Jen zaverem dodam, ze je mi jedno, kdo co pouziva, tohle je totiz ve vztahu k problemum v clanku opravdu detail a ja tuto problematiku zminil jako zajimavy postreh.

Avatar

Autor komentáře: petr from www.1studio.cz

Datum vložení: 24.9.2003 16:15:16

1. takto napsany kod je neprehledny a chybny
2. pouziti stareho PHP je jako neaktualizovat system o bezp. patche
3. co to trochu zjednodusit, a dat tomu logiku - nac jsou v php tridy a templaty?

je to jako kdyby to psal nekdo pred peti lety :-(

Avatar

Autor komentáře: Ondřej Zábojník

Datum vložení: 25.9.2003 13:36:32

Vypadá to, že mám po dlouhé době rekord v počtu příspěvků... takže, aplikace funguje přesně tak, jak má. To, že se nevyznáte v kódu je způsobeno asi tím, že je na vás moc složitý, třeba vybočil z vašeho stereotypu a prostě ho nechápete. To, že nemá žádný řád a je chaotický, je pitomost. A hádat se, kde jsou uvozovky a kde je apostrof - to je snad nějaký vtip, ne? To spíš přeskočilo vám než mně...

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 25.9.2003 15:26:51

ehm.... vy nam chtete rict ze tento kod je slozity tak to jsem asi nikdy neprogramoval protoze netno kod je spis naprosto prminitvni ale predevsim se vymika vsemu co jsem se kdy ucil a cemu jsem se priucil podle PHP manualu apod.

No pokud nam preskocilo tak radsi no comment...

Avatar

Autor komentáře: LZ

Datum vložení: 25.9.2003 15:28:22

<I>
> To, že se nevyznáte v kódu je způsobeno asi tím, že je na vás moc
> složitý, třeba vybočil z vašeho stereotypu a prostě ho nechápete.
</I>

praveze vobec nie je zlozity, je to uplne elementarna vec. ide skor o to,
ze pri programovani v akomkolvek jazyku existuje nieco ako
coding-(conventions|standards), aby logika kodu bola jasna komukolvek,
nie len "programatorom", ako ste vy. musim sa opakovat, vas postoj ku
kritike toho kodu je prinajmensom absurdny (pripomina mi skor urazeneho
pubertaka, ako skuseneho programatora).

<I>
To, že nemá žádný řád a je chaotický, je pitomost.
</I>

otrasna zlepenina, nic viac, nic menej ...

<I>
A hádat se, kde jsou uvozovky a kde je apostrof - to je snad nějaký vtip,
ne? To spíš přeskočilo vám než mně...
</I>

taky borec ako vy by mal kapitolu Strings v manuale k PHP ovladat
odpredu aj odzadu, tak sa len tak zbezne pozrite na to, co o pouzivani
" a ' napisali samotni autori (ktorym IMHO nepreskocilo ...)


LZ



Avatar

Autor komentáře: Vita

Datum vložení: 25.9.2003 18:52:06

Mily autore doporucuji vam precist si alespon zakladni kapitolu o PHP a praci s polem. Pak byste totiz vedel ze $HTTP_GET_VARS[logout] muze napsat jen a jen clovek ktery to nikdy necetl.

Spoleha se to totiz na jakousi pseudosyntaxi z PHP verze kolem 2.0 kde se neciselny index pole nemusel quotovat.

Avatar

Autor komentáře: Vita

Datum vložení: 25.9.2003 18:55:20

<a href='http://cz.php.net/manual/cs/language.types.array.php#language.types.array.donts' target='_blank'>http://cz.php.net/manual/cs/language.types.array.php#language.types.array.donts</a>

Avatar

Autor komentáře: jakub

Datum vložení: 26.9.2003 0:40:58

prominte ale byt soudny, tak vite, ze todle nema smysl pitvat, jak nize pise vite a nekolikrat vyse ja neni ani tak otazkou jestli psat uvozovky ci apostrofy ( jakoze jako programator byste mel znat rozdil), ale ze nekde se psat proste MUSI, ze vy jste takovy IGNORANT, ze to nepisete, je VAS problem proste textovy index pole se uzavira do uvozovek, pokud neobsahuje parsovany retezec, pak do apostrofu ...

VY povazujete za korektni zapis
$_HTTP_GET..., kdyz neni zadny problem pouzivat $_GET
$_HTTP_GET_VARS[logout] - kdyz syntakticky spravne je POUZE ... ['logout']
pristupovat k naproste vetsine primo, kdyz RG jsou defaultne off jiz asi rok (me snad jebne) me tady bude poucovat naprosteje diletant, co se phpka tyce ...

Avatar

Autor komentáře: jakub

Datum vložení: 26.9.2003 0:55:28

notabene ty lzi o zpetne kompatibilite - a vy to jeste obhajujete, me fakticky jebne

Avatar

Autor komentáře: Jan Brašna

Datum vložení: 27.9.2003 1:44:52

Tyhle argumenty snad nemyslite vazne, ze? Chcete jen vyzkouset, nakolik kdo z diskutujicich rozumi PHP, ze? Nebo se pletu?
Nikdy jsem se na intervalu s nikym z autoru neprel, slo jen o detaily, ale tohle nemuzete myslet jako seriozni prispevek...

Avatar

Autor komentáře: Vita

Datum vložení: 25.9.2003 19:59:50

Hmm, pres 100 kilo zakomentovanych vypisu z cookies ve strance fakt rulez :( Je to opravdu nutne resit prave takhle? A ja proc se to dyl nacita...

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 28.9.2003 21:53:21

Děkuji za upozornění, zdá se, že někdo <I>zapomněl</I> vypnout funkci pro debugging cookies ;-)

Avatar

Autor komentáře: Vita

Datum vložení: 28.9.2003 22:39:39

Njn, orka priste naskrabat na pergamen co spatne byt a poslat holub rovnou pro velmistr Malek. Treba on umet spravit takova vec ;)

Avatar

Autor komentáře: Ondřej Zábojník

Datum vložení: 26.9.2003 13:03:39

nejspíš budete mít v některých věcech pravdu a měl bych se i poučit... ovšem systém měl být napsaný jako naprosto jednoduchý, avšak efektivní reklamní systém, který by si stáhli jenom lidé např. s osobními stránkami, jež nijak zvlášť zpracování kódu nezajímá a jde jim spíš o to, že to bude fungovat...

Avatar

Autor komentáře: Jakub Podhorský

Datum vložení: 26.9.2003 13:52:14

konecne jste prizanl ze nejste dokonaly jako nikdo z nas pochopitelne ale myslim ze je to i tak spatnej pristup protoze proste standarty se maji dodrzovat vsude mate to jako s validnim (X)HTML kodem

jinak to jste rovnou mohl napsat ze je to pro lidi ktere nezajima kod ale funkcnost

P.S.: tyhle clanky by se podle me nemeli publikvoat pak se akorat delaji aplikace tohoto typu cili nezabezpecene nerikam ze ta vase ale kdyz si tohle precte nejakej zacatecnik s PHP tak zacne pouzivat $HHTP_XXX_VARS namisto $_XXX a nebo bude psat zastaraly registrovani session apod. tim pak vznikaji na nekterych forech minimalne jednou tidne dotazy proc me nefunguje tento kod:

odkaz: <a href='http://www.nejaka_stranka.cz/index.php?promena=hodnota' target='_blank'>http://www.nejaka_stranka.cz/index.php?promena=hodnota</a>

<?php
echo $promena;
?>

Avatar

Autor komentáře: Ondřej Zábojník

Datum vložení: 26.9.2003 14:20:53

já vím, že takto napsaný kód nepůsobí nejnověji, ovšem já jsem ho psal před nějakým měsícem, kdy jsem měl ještě PHP 4.0.3 a tam prostě nic jiného nefungovalo a spousta běžných a zběžných progamátorů nemá stále nové verze...

Avatar

Autor komentáře: jakub

Datum vložení: 26.9.2003 23:51:57

prosim Vas uz to nepitvejte, ja mam php 422 uz skoro rok, proste to nema smysl. Myslenka budiz, zpracovani priserny. Jak rikam nema smysl to hnat do trid, ale aspon oddelit definice funkci, sjednotit pristup k promennym (superglobals) - naznacit alespon minimalni miru zabezpeceni, dodrzovat elementarni spravnost syntax. Tohle mel proste korektor/redaktor odchytit a ja osobne povazuji za velkou chybu, ze se tak nestalo.

Avatar

Autor komentáře: Jan Brašna

Datum vložení: 27.9.2003 2:06:32

Nezlobte se, ale ja povazuji napr. moje PHP 4.1.1 za naprostou vykopavku, a ani ta nema se superglobalnimi poli problemy...

Avatar

Autor komentáře: Vita

Datum vložení: 27.9.2003 9:27:51

Spousta beznych a zbeznych programatoru predpokladam ma alespon prumerny hosting kde se o verzi PHP stara slusny clovek - ktery upgraduje. Uz kvuli bezpecnosti.

To nicmene neomlouva ze jste ve skriptu udelal par celkem zasadnich chyb a pomerne dost schizofrenne pracoval s promennyma. Prectete si prosim alespon ten link co jsem zde dal o tom co se s polem delat nema, jinak budete podobna zverstva plodit dal.

Avatar

Autor komentáře: Vita

Datum vložení: 27.9.2003 9:29:05

A rvat veci do databaze bez slashovani apostrofu a uvozovek take nema co spolecneho s verzi php (addslashes/stripslashes)

Avatar

Autor komentáře: Sagi

Datum vložení: 8.10.2004 10:47:32

U reklam bývá v současné době tendence spíše hodnotit počet kliknutí než počet zobrazení.
Uživatelé se přitom snaží reklamy ignorovat, seč mohou. Mně osobně se často stává, že zaujme-li mě kupříkladu reklamní proužek, většinou si to uvědomím, až když už jsem se proklikal na další stránku. Teprve tehdy se na původní stránku kvůli reklamě vracím, a je-li tam již zobrazen jiný reklamní proužek, jsem naštvaný, že tlačítko Zpět NEFUNGUJE KOREKTNĚ, a ke kýženému (a hodnocenému) kliknutí na reklamu samozřejmě nedojde. Celou ideu článku proto považuji za zcestnou.

Avatar

Autor komentáře: jakub023

Datum vložení: 1.8.2005 8:55:52

No ja som si stiahol kompletny zdrojak a uz som ho aj instaloval na server vsetko je tam ok az na to, ze ked pridam novu reklamnu poziciu tak mi ju tam prida a teraz tam chcem urobit upravu (lebo je to prazne)tak si kliknem na to cislo zobrazi sa mi ten formular je tam zaskrknute aktivni a dam ho odoslat (samozrejme ze tam aj nieco napisem). Po odoslani sa mi urobi akoby automaticky refresh a formular je nadalej prazny aj do tabulky reklama mi nic nezapise, je prazna. Ja som nerobil do toho ziadne vazne upravy akurat som tam dal iba kodovanie pre jazyk aby tam neboli tie somariny. Dik za skoru odpoved a vyriesenie mojeho problemu...

Avatar

Autor komentáře: Hans

Datum vložení: 13.10.2005 12:53:49

Dobrýden, když tak pěkně krytyzujete tento reklamní systém, kde by se dal sehnat nějaký lepší. Co jsem ho pročítal tak skoro všechna krytika je naprosto oprávněná. Děkuji za zdělení informaci.

Zpět na článek | Úvodní stránka Interval.cz