IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:26.2.2014 11:40

Ahoj, v pravidelné minisoutěži o placku Machr na PHP a samolepky si naprogramujeme tento týden něco odlehčujícího. Půjde o jednoduchou evidenci knih, podobný machr byl minulý týden v ASP.NET. Vytvořte web, který bude zobrazovat knihy z MySQL databáze, u knihy uložte několik údajů, např. titulek, autora a datum vydání, můžete ukládat i obrázky. Web následně zobrazí seznam všech knih a také poskytne administrační rozhraní pro jejich vkládání, mazání a editaci.

Pro pokročilé: Zpřístupněte administraci pouze přihlášeným uživatelům, seznam knih zobrazujte na několik stránek, vždy po deseti knihách.

Snažte se o objektovou aplikaci a vyvarujte se SQL injekcím a podobným chybám. Jako vždy platí, že je lepší jednoduché a hezké řešení, než řešení, které toho umí více, ale je špatně napsané. S řešením hotový web umístěte na nějaký hosting a pošlete odkaz.

Čas si dáme do pondělí 3.3. do 10:00.

Kompletní pravidla soutěží: http://www.itnetwork.cz/…outezi-machr

Editováno 26.2.2014 11:41
Odpovědět
26.2.2014 11:40
New kid back on the block with a R.I.P
Avatar
Pavel Mareš
Tvůrce
Avatar
Pavel Mareš:26.2.2014 12:49

Toto byla naše první "aplikace" ve škole v prvním ročníku, když jsme se začali učit php a mysql, teda skoro, my jsme dělali databázi CDéček :D . Už se těším až uvidím pár výtvorů, jak jsem to mohl udělat lépe, nebo jak to vytvořit dobře v OOP.

Nahoru Odpovědět
26.2.2014 12:49
Však ono půjde ...
Avatar
Uživatel sítě :26.2.2014 20:51

Stačí výpis/seznam knih či i to, aby měla každá kniha svoji stránku popřípadě?

Nahoru Odpovědět
26.2.2014 20:51
Chybami se člověk učí, běžte se učit jinam!
Avatar
michalkasparec
Tvůrce
Avatar
michalkasparec:1.3.2014 11:56

můj výtvor online: http://machr.kashpi.cz/
přihlášení
email: admin@example.com
heslo: adminpass

 
Nahoru Odpovědět
1.3.2014 11:56
Avatar
Odpovídá na michalkasparec
Zdeněk Pavlátka:1.3.2014 12:00

Moc pěkné rozhraní. :)

Nahoru Odpovědět
1.3.2014 12:00
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na michalkasparec
Martin Konečný (pavelco1998):1.3.2014 12:06

Hmm, Nette, tak to ti sdraco asi moc neohodnotí. :-D
Používáš na to nějaký dataGrid?

Nahoru Odpovědět
1.3.2014 12:06
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
michalkasparec
Tvůrce
Avatar
michalkasparec:1.3.2014 12:12

v tomto případě sem žádný dataGrid nepoužil, přišlo mi to na takovou jednoduchou věc zbytečné, jinak když už tak sem používal NiftyGrid
http://nette.merxes.cz/…ty/niftygrid

 
Nahoru Odpovědět
1.3.2014 12:12
Avatar

Člen
Avatar
:1.3.2014 12:13

Budou se ty s administrací na heslo & stránkováním hodnotit zvlášť, nebo všechno v jednom pytli?

 
Nahoru Odpovědět
1.3.2014 12:13
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:1.3.2014 12:15

Záleží kolik toho bude, klidně dám 2 placky za jednodušší a těžší variantu.

Nahoru Odpovědět
1.3.2014 12:15
New kid back on the block with a R.I.P
Avatar

Člen
Avatar
Odpovídá na David Hartinger
:1.3.2014 12:17

:o, tak to doufat, abych už přidal svůj výtvor jenom já :)

 
Nahoru Odpovědět
1.3.2014 12:17
Avatar
Odpovídá na michalkasparec
Neaktivní uživatel:1.3.2014 13:04

Nemyslím si, že se použití Bootstrapu a Nette bude na devbooku nějak hodnotit. :D Ale když už jsi to v tom Nette uhroudil, proč jsi tam dal SimpleRouter? To máš na serveru zakázaný mod_rewrite?

Nahoru Odpovědět
1.3.2014 13:04
Neaktivní uživatelský účet
Avatar
michalkasparec
Tvůrce
Avatar
michalkasparec:1.3.2014 13:44

on tam není SimpleRouter, ale jen sem neudělal routy na ty stránky, firendly URL nebylo součástí zadání, ale je to jeden řádek v Routru :)

 
Nahoru Odpovědět
1.3.2014 13:44
Avatar
Odpovídá na michalkasparec
Neaktivní uživatel:1.3.2014 14:05

No právě, je to jenom jeden řádek. Kvůli tomu se na to ptám. :D

Nahoru Odpovědět
1.3.2014 14:05
Neaktivní uživatelský účet
Avatar
Martin Konečný (pavelco1998):1.3.2014 15:46

Ok, nechci se přímo zapojit do soutěže, protože mi nejde o vyhrání placky, ale o vyřešení úkolu.
Nicméně bych byl rád, kdyby mi někdo (kdokoliv) napsal, co je v návrhu špatně.

Ukázka zde:
http://konecny.php5.cz/devbook/knihy/

Přihlásit se můžete jako test : test
Nedával jsem tam práva, takže měnit knihy může každý registrovaný uživatel.
Není možnost přidání autora, to už se mi dělat nechtělo (byla by to otázka jedné metody v BookControlleru, BookModelu a šablony).
Taky jsem poprvé použil Smarty, tak snad tam je vše OK.

Zdroják:
http://leteckaposta.cz/798926597

Díky

Editováno 1.3.2014 15:49
Nahoru Odpovědět
1.3.2014 15:46
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Ondřej Štorc
Tvůrce
Avatar
Ondřej Štorc:2.3.2014 12:20

Zde je můj výtvor: http://www.arakamus.moxo.cz/…ih/index.php
Je to můj první výtvor v PHP. Určitě to nevypadá přesně podle mých představ, ale na to že jsem se začal učit PHP ve středu to jde :). Login system jsem nestihl udělat tak každý může editovat knihy podle libosti.

Nahoru Odpovědět
2.3.2014 12:20
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Uživatel sítě :2.3.2014 18:37

Můj výtvor online najdete zde: http://sifler.php5.cz/?…
Ke stažení zde: http://leteckaposta.cz/590289109

Pokud chcete v online verzi zkusit uložení knihy tak údaje jsou:
nick: admin
heslo: 123admin

Nahoru Odpovědět
2.3.2014 18:37
Chybami se člověk učí, běžte se učit jinam!
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Uživatel sítě
Honza Bittner:2.3.2014 18:41

Hezké, funguje to, i přidávání knih... :D

Nahoru Odpovědět
2.3.2014 18:41
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na Honza Bittner
Ondrca:2.3.2014 18:44

Honza Bittner je legenda :D

Nahoru Odpovědět
2.3.2014 18:44
Zase jsem o něco chytřejší
Avatar
Odpovídá na Honza Bittner
Uživatel sítě :2.3.2014 18:44

Vyšla nová kniha jo? :D

Nahoru Odpovědět
2.3.2014 18:44
Chybami se člověk učí, běžte se učit jinam!
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na Honza Bittner
Ondrca:2.3.2014 19:22

Jen aby někdo nezaměnil slovíčko legenda za něco jinýho :D

Nahoru Odpovědět
2.3.2014 19:22
Zase jsem o něco chytřejší
Avatar
Odpovídá na Ondrca
Uživatel sítě :2.3.2014 21:54

Někdo může přiřadit i obrázek, to bych taky chtěl vidět co by tam asi bylo.. :D

Nahoru Odpovědět
2.3.2014 21:54
Chybami se člověk učí, běžte se učit jinam!
Avatar
Jan Poláček
Tvůrce
Avatar
Jan Poláček:3.3.2014 9:53

Přidávám svůj příspěvek, jen tak tak jsem něco stihl, ale určitě chci zpětnou vazbu, částečně jsem využil sdracovi tutoriály, takhle se mi programuje rychle a dobře -> http://leteckaposta.cz/348603156 a http://devbook.publikujem.cz/
Mít víc času, udělám toho více, ale i tak funguje administrace, přidání, úprava a mazání knihy.

Nahoru Odpovědět
3.3.2014 9:53
Instrukce na adrese 0x77104f29 odkazovala na adresu paměti 0x00000014. S pamětí nelze provést operaci: written.
Avatar
Matěj↓Andrle:3.3.2014 9:59

Inu, kamarád mi to sdělil včera. Myslím, že jsem podal extrémní výkon, tak se prosím nezlobte, ale stihnout jsem to vskutku nemohl...

http://lahiro.comli.com

Zdrojový kód:

http://ulozto.cz/…d/lahiro-zip

Smazání:

http://ulozto.cz/…516794614016

 
Nahoru Odpovědět
3.3.2014 9:59
Avatar
Odpovídá na Honza Bittner
Zdeněk Pavlátka:3.3.2014 11:00

Pěkná kniha, jen by to chtělo obrázek :D

Nahoru Odpovědět
3.3.2014 11:00
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:3.3.2014 12:20

Díky všem za účast, viděl jsem spoustu zajímavého kódu. Snažil jsem se ke všemu něco napsat, ale důkladně projet jednu takovouhle aplikaci by už bylo pomalu na 2 hodiny.

  • Ondřej Štorc - Pěkná recyklace Machra na ASP, jen někam zmizel Harry Potter :P Návrhově docela čitelné, ale bez MVCčka, takže se tabulky jen echují. Je škoda, že ručně kopíruješ do všech podstránek znovu layout, stačilo by tam dát něco jako require('layou­t_horni_cast.php'), za to obsah a pod to to samé pro spodní část. V těch vypisovacích metodách máš XSS, pozor na to.
  • Martin Konečný - Vypadá to na závan technologií, které jsem zde ještě nepotkal. Musím uznat, že to máš moc pěkně zvládnuté, události v kontrolerech a dokonce taková jednoduchá DependencyInjec­tion. To je tvůj framework? . Dávat konfig do ini mi přijde nebezpečné, protože jde stáhnout. Samozřejmě ho můžeš zakázat v .htaccess, ale dá se na to snadno zapomenout. Volil bych raději PHP soubor s nějakými konstantami. Tohle se mi fakt líbí, kódu je hodně, snad jsem něco zásadního nepřehlédl.
  • Jan Poláček - Hashovat heslo jen do md5 bez soli je jako kdybys ho nehashoval vůbec :) Použij nějakou bytelnější funkci a hlavně používej sůl. Ve třídě input máš XSS. To vylepšení zdejšího frameworku o metody kontrolerů je dost dobré, mám radost, že ten seriál k něčemu je a že ho dokážete takhle upravovat a používat. Asi se od tebe inspiruji a dám metody i do zdejšího tutoriálu.
  • kashpi - Tak sem zmizel ten Harry Potter :P Pohrál sis s tím hezky, hlavně přidělování autorů knihám. Jelikož je to Nette, tak nejsem kompetentní k tomu, abych ti ohodnotil jak správně jeho komponenty používáš, nicméně mi to připadá velmi dobře zvládnuté.
  • Sifler - V kódu máš SQL injekce. Tohle mě dostalo:
$id = $_GET['id'];//nemusíme ošetřovat, víme jistě, že se jedná o číslo
$result = Database::query("
        SELECT * FROM books
        WHERE id = '$id'
");

Když něco bereš ze vstupu, tak tam ti může každý napsat co chce :D Je jedno, že ten vstup vyplňuješ ty v odkazu, uživatel si ten odkaz může zkopírovat a změnit id na 'DELETE * FROM books--. Zapracuj také na názvosloví, třída ListsBooks a její metoda books(), co takhle BookList a metoda render()?

  • Matěj Andrle - SQL injekce.

Placky získávají Martin Konečný (pavelco1998) a michalkasparec. Napište prosím x adresu a publikujte své výtvory. Na ostatní se těším příště :)

Editováno 3.3.2014 12:22
Nahoru Odpovědět
3.3.2014 12:20
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Martin Konečný (pavelco1998):3.3.2014 12:28

Děkuji za ohodnocení. Žádný framework si nedělám, popravdě jsem původně ani netušil, že mi to bude fungovat. :-D

A na .htaccess v konfigu jsem opravdu zapomněl, díky za připomínku.

Nahoru Odpovědět
3.3.2014 12:28
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na David Hartinger
Ondřej Štorc:3.3.2014 12:32

No jelikoz jsem se PHP zacal ucit ve stredu tak jsem rad ze jsem splacal aspon toto a ze jsem dostal takove hodnoceni :-D. Jinak gratuluji vitezumm :-)

Editováno 3.3.2014 12:34
Nahoru Odpovědět
3.3.2014 12:32
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Ondřej Štorc
David Hartinger:3.3.2014 12:44

Říkáš, že kdybych to zadal v pondělí, tak je to na MVCčku jo? :D

Nahoru Odpovědět
3.3.2014 12:44
New kid back on the block with a R.I.P
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na David Hartinger
Ondřej Štorc:3.3.2014 13:00

Noo.. Dejme tomu :-D

Nahoru Odpovědět
3.3.2014 13:00
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Martin Konečný (pavelco1998):3.3.2014 16:39

Jen taková technická - jak mohu něco publikovat?

Nahoru Odpovědět
3.3.2014 16:39
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Ondřej Štorc:3.3.2014 16:43

Musíš zažádat o redaktorská práva ve svém profilu

Nahoru Odpovědět
3.3.2014 16:43
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Nahoru Odpovědět
3.3.2014 17:07
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na David Hartinger
Uživatel sítě :4.3.2014 8:25

Počkat a toto nestačí snad? :D

preg_match('/^[[:digit:]]+$/', $_GET['id']) == 1

Nic jiné než číslo ti to nepustí..

Nahoru Odpovědět
4.3.2014 8:25
Chybami se člověk učí, běžte se učit jinam!
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Uživatel sítě
Ondřej Štorc:4.3.2014 10:08

Když jsem ošetřoval zadání číslice tak jsem použil funkci is_numeric, připadá mi že to tvoje řešení takové složité... BTW. nemusíš dávat že se to rovná jedné v podmínce to znamená že je to true :)

Nahoru Odpovědět
4.3.2014 10:08
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Ondřej Štorc
Uživatel sítě :4.3.2014 10:17

Mě to moc složité nepřijde, klasický regulární výraz. Pokud to prostě číslo nebude, nemusím ochraňovat SQL injekci a zjišťovat zda vůbec existuje. To udělám prostě po tom, až mi to zjistí prostě zda jde o číslo.
Jde mi pouze o to, že tam SQL injekce není.. :)

Nahoru Odpovědět
4.3.2014 10:17
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Uživatel sítě
Martin Konečný (pavelco1998):4.3.2014 13:02

A nebo neifuj a přetypuj tu hodnotu na číslo. Když to nebude číslo, přetypuje se to na 0. Jeden SQL dotaz ty servery moc nezatíží. :-)

Nahoru Odpovědět
4.3.2014 13:02
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Testiik Pokusniikovy:7.6.2018 16:27

Ahoj, sice pozdě, ale je mozný stahnout uvedený zdrojáky k prozkoumání a inspiraci?
Jirka

 
Nahoru Odpovědět
7.6.2018 16:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 37 zpráv z 37.