Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Soutěž: Machr na PHP - Registrace, přihlašování

PHP PHP Machr na PHP - Registrace, přihlašování American English version English version

Soutěž již skončila

Zadání

Vaším úkolem v této soutěži bude vytvořit jednoduchou stránku a přidat na ní registrační formulář. Po registraci bude třeba účet aktivovat pomocí odkazu zaslaného na email. K tomu přidáte možnost přihlášení pro zaregistrované (a aktivované) účty + možnost obnovení hesla pomocí emailu.
Během vyplňování registračního formuláře budete pomocí JavaScriptu kontrolovat platnost vyplňovaných údajů (jako např. jak je dlouhé heslo, zda se shoduje s potvrzením hesla, jestli uživatel nezadal místo emailu nějaký nesmysl...)
Hodnotit budu kód (JavaScript i PHP) a funkčnost (zda vše funguje jak má, jestli stránka nevyhodí nějakou chybu) - a to půl na půl.
Maximum je sto bodů.
K JavaScriptu můžete použít čistou jQuery. Jakékoli jiné knihovny a frameworky jsou zakázány.

Výhra

Vítěz dostane placku Machr, a ocenění do portfolia.

Výhra

Výsledky

Jméno bodů Řešení ( Stáhnout vše )
Matúš Petrofčík 99 Stáhnout řešení
VitekST 88 Stáhnout řešení
grygerek.tomas 80 Stáhnout řešení
IT Man 80 Stáhnout řešení
Martin Štěpánek (Enormyk) 72 Stáhnout řešení
Eda Stehlík 22 Stáhnout řešení
Patrik Neumann 5 Stáhnout řešení
Aktivity (1)
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:19.5.2016 19:24

V této soutěži umožníte uživatelům stránky se zaregistrovat a následně přihlašovat.

Soutěž končí 29. května 12:00, tak se nezapomeň zapojit! :)

Odpovědět  +1 19.5.2016 19:24
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Konečný (pavelco1998):19.5.2016 19:31

Tak na tohle jsem zvědav, protože co jsem jen tak z nudy procházel na YT videa "php login", tak byly na cca čtyřech stránkách všechny videa do jednoho špatně :D

Nahoru Odpovědět  +2 19.5.2016 19:31
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Zdeněk Pavlátka:19.5.2016 19:36

Videa na YouTube jsou asi nejhorší zdroj návodů k programování, co znám. ;)

Nahoru Odpovědět  -1 19.5.2016 19:36
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
sunspinx
Člen
Avatar
sunspinx:19.5.2016 19:39

Vcera som sa zacal ucit PHP, tak to vyskusam :D

 
Nahoru Odpovědět  +1 19.5.2016 19:39
Avatar
IT Man
Redaktor
Avatar
IT Man:19.5.2016 19:43

Tak tohle je opravdu pro mě výzva. Rád se zúčastním. :)
Jen bych se chtěl zeptat, jestli je potřeba zobrazování profilu?

Nahoru Odpovědět  +1 19.5.2016 19:43
Cokoliv a kdokoliv může jednou uspět.
Avatar
Odpovídá na Zdeněk Pavlátka
Martin Konečný (pavelco1998):19.5.2016 19:57

Jo to je fakt, ale právě proto, že to je video, to asi sleduje hodně lidí :D ale tak na druhou stranu - čím víc lidí to dělá blbě, tím jsme my hodnotnější :D

Nahoru Odpovědět  +4 19.5.2016 19:57
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na IT Man
Zdeněk Pavlátka:19.5.2016 19:58

Stačí někde zobrazit kdo je přihlášený (pokud někdo je) a dát možnost k ukládání.

Nahoru Odpovědět  -1 19.5.2016 19:58
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Dominik Gavrecký:19.5.2016 21:11

Framework je povolený ?

Nahoru Odpovědět 19.5.2016 21:11
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:19.5.2016 21:23

Ne.

Nahoru Odpovědět 19.5.2016 21:23
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Matúš Petrofčík:19.5.2016 22:06
  • Hodnotí sa celá apka ako taká (tj. či je MVC, či to má pekné url...) alebo sa zameriavaš len na tú funkcionalitu registrácie/prih­lásenia (tj. či je to OOP, čo všetko robi...)?
  • Budeš sa pozerať aj na design? Dúfam že nie :D
  • Môžeme pre vlastné dobro používať trebárs bootstrap.css?

Ďakujem za odpovede :)

Editováno 19.5.2016 22:07
Nahoru Odpovědět 19.5.2016 22:06
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Marek Z.:19.5.2016 22:12

Dovolím si nesouhlasit. Díky jednomu seznamu videí jsem dokázal zprovoznit základní kostru platební brány přes PayPal.

Nahoru Odpovědět  +1 19.5.2016 22:12
Chybami se člověk učí, běžte se učit jinam!
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Matúš Petrofčík
Zdeněk Pavlátka:19.5.2016 22:14

Hodnotí sa celá apka ako taká (tj. či je MVC, či to má pekné url...) alebo sa zameriavaš len na tú funkcionalitu registrácie/prih­lásenia (tj. či je to OOP, čo všetko robi...)?

  • hodnotit budu jen ty registrace + přihlašování + to co k tomu patří (viz. zadání)

Budeš sa pozerať aj na design? Dúfam že nie

  • ne

Môžeme pre vlastné dobro používať trebárs bootstrap.css?

  • bootstrap klidně použij
Nahoru Odpovědět  +2 19.5.2016 22:14
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Marek Z.
Zdeněk Pavlátka:19.5.2016 22:18

Neříkám, že všechna videa jsou špatná, jen že těch dobrých moc není...

Nahoru Odpovědět 19.5.2016 22:18
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Bogdan
Redaktor
Avatar
Bogdan:21.5.2016 2:20

soutez je na php a kontrolovat spravnost pomoci javascriptu? wtf?

 
Nahoru Odpovědět  +3 21.5.2016 2:20
Avatar
Odpovídá na Bogdan
Mark Vajšbejn:21.5.2016 2:50

Mám takový dotaz, můžu využít pro mailování potřebných věcí PHPMailera?
viz. https://github.com/…er/PHPMailer (Přecejen, obsahem je pouze registrace, přihlášení - jednoduchý profil a nějakej odkaz)

Mimochodem, BlugW má pravdu. Je to dosti směšné. :-D
Tu má jít spíš o funkčnost a kvalitu kódu (když už)

 
Nahoru Odpovědět 21.5.2016 2:50
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Bogdan
Zdeněk Pavlátka:21.5.2016 11:01

Soutěž je na obojí... Název "Machr na PHP" je podle placky, protože placku "Machr na PHP, JavaScript a SQL" tu nemám ;)

Nahoru Odpovědět  ±0 21.5.2016 11:01
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Mark Vajšbejn:21.5.2016 11:09

Dobře tedy, každopádně, můžeš ještě odpovědět mně? :D

 
Nahoru Odpovědět 21.5.2016 11:09
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Mark Vajšbejn
Zdeněk Pavlátka:21.5.2016 11:10

Ne. Posílání mailů je součástí zadání... Cílem soutěže není vytvořit jen to co je v nadpisu / názvu, ale přečíst si celé zadání a splnit ho. Název stylu

Machr na PHP, JavaScript, Webdesign a SQL: jednoduché stránky, přihlášení, registrace, odesílání mailů, obnovení hesla a kontrola správnosti zadaných hodnot

není zrovna ideální ;)
Takže obsahem fakt není pouze registrace, přihlášení - jednoduchý profil a nějakej odkaz. A ten profil tam vůbec být nemusí, ačkoli body navíc za něj určitě budou.

Nahoru Odpovědět  +1 21.5.2016 11:10
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Mark Vajšbejn:21.5.2016 11:16

No, dobře. :D
Už ti plně rozumím, jen jsem olenivěl, když jsem viděl ten mail.

Mimochodem, do obsahu jsi to napsat mohl, případně minimálně bod, kterým vyvrátíš jakékoliv použití pomocných 'knihoven'. :-)

A mimochodem 2: pod pojmem profil, jsem měl na mysli jakousi stránku, která by bylo pouze pro přihlášené uživatele.

A jinak už jsem snad vše pobral, takže díky.

Editováno 21.5.2016 11:16
 
Nahoru Odpovědět 21.5.2016 11:16
Avatar
VitekST
Člen
Avatar
VitekST:21.5.2016 13:51

Smím použít MVC skeleton z mé vlastní dílny? (technicky vzato je to framework)

Můžu také použít knihovnu Tooltipster? (týká se to jen UI, chtěl bych ve formě popupu u políčka zobrazit případnou chybu validace formuláře)

 
Nahoru Odpovědět  +1 21.5.2016 13:51
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na VitekST
Zdeněk Pavlátka:21.5.2016 14:35

To, co jsi sám vytvořil je OK. A co se týče té knihovny, pokud jde jen o něco vizuálního tak ji klidně použij, vzhled nehodnotím.

Nahoru Odpovědět 21.5.2016 14:35
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Bogdan
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Bogdan:21.5.2016 20:33

SQL v tomhle pripade chapu. Javascript ne. Kdyz uz, pouzil bych ho na neco jineho(napr. registrace bez refreshe, atd..), ne na kontrolu spravnosti hodnot, protoze tohle jde v php(a placka je za php) ;)

Editováno 21.5.2016 20:34
 
Nahoru Odpovědět  -1 21.5.2016 20:33
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na Bogdan
Marek Z.:21.5.2016 22:51

V zadání máš zadané co se bude hodnotit, co na tom stále nechápeš?

Že se jedná o placku pouze z jednoho jazyka stále zadání nemění..

Nahoru Odpovědět  +1 21.5.2016 22:51
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Bogdan
Dominik Klapuch:21.5.2016 23:35

To sice ano, ale JS validace se hodí pokud nechceš zbytečně dávat požadavek na server. I když nemám JS rád, tak si myslím, že to k tomu prostě patří.

Nahoru Odpovědět  +1 21.5.2016 23:35
Kód a data patří k sobě.
Avatar
Bogdan
Redaktor
Avatar
Odpovídá na Marek Z.
Bogdan:21.5.2016 23:40

Napsal jsem co nechapu. Musim ti to opravdu opakovat?
Dominik Koudela to mas pravdu, ale zase javascript se da vzdy vypnout + tady jsou strasni zastanci toho, ze se tohle v js nema delat protoze se da vypnout, a potom tu najdu machra na PHP s timhle.

Editováno 21.5.2016 23:40
 
Nahoru Odpovědět  -1 21.5.2016 23:40
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Bogdan
TomasGlawaty:22.5.2016 0:11

Samozřejmě, že i přes JS validaci se musi data kontrolovat i na serveru. Validace pomocí JS je pouze UI feature pro klienta :)

Nahoru Odpovědět  +3 22.5.2016 0:11
Člověk může dosáhnout čeho si zamane. Jen musí chtít, případně něco obětovat ...
Avatar
Taskkill
Šéfredaktor
Avatar
Odpovídá na Dominik Klapuch
Taskkill:22.5.2016 0:19

jen ze zvedavosti... Kód a data patří k sobě. ... to je neco jako OOP FTW ? nebo spis hate FP?

 
Nahoru Odpovědět 22.5.2016 0:19
Avatar
Petr Kunčar
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Petr Kunčar:23.5.2016 0:07

Mohl by jsi mi prosim osvetlit tuto cast vety: "a dát možnost k ukládání". Kdyz je uzivatel prihlasen, co smi ukladat? Nejak jsem to v zadani nenasel.
Predem dekuji za odpoved.

 
Nahoru Odpovědět 23.5.2016 0:07
Avatar
Petr Stastny
Redaktor
Avatar
Petr Stastny:23.5.2016 8:18

Teda, tohle v C# tak se pridam. Nezamysli nekdo udelat na c# machra? ☺

 
Nahoru Odpovědět  +1 23.5.2016 8:18
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Petr Kunčar
Zdeněk Pavlátka:23.5.2016 9:42

Tam mělo být odhlášení... To je tak když píšeš o jednom a myslíš na druhé :D

Nahoru Odpovědět  +2 23.5.2016 9:42
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Matúš Petrofčík:30.5.2016 14:13

Snáď si na nás nezabudol :) :D

Nahoru Odpovědět 30.5.2016 14:13
obsah kocky = r^2 ... a preto vlak drnká
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
IT Man:30.5.2016 14:14

Psal jsem mu sám ze zvědavosti. Má prý hodně práce. :D

Nahoru Odpovědět 30.5.2016 14:14
Cokoliv a kdokoliv může jednou uspět.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na IT Man
Matúš Petrofčík:30.5.2016 14:30

V pohodke, len som bol zvedavý :) Čo si to sem nenapísal nech vedia aj ostatní? :D

Nahoru Odpovědět 30.5.2016 14:30
obsah kocky = r^2 ... a preto vlak drnká
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Matúš Petrofčík
IT Man:30.5.2016 14:38

Kontaktoval jsem ho chvilku před tebou a nestihl jsem to sem napsat ... eh, musím mít nějakou záminku. :D

Editováno 30.5.2016 14:39
Nahoru Odpovědět 30.5.2016 14:38
Cokoliv a kdokoliv může jednou uspět.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Nahoru Odpovědět 30.5.2016 14:43
obsah kocky = r^2 ... a preto vlak drnká
Avatar
IT Man
Redaktor
Avatar
IT Man:30.5.2016 14:55

A jelikož to Zdeněk Pavlátka nenapsal, ale mně ano, tak vyhodnocení bude možná už zítra. Nechci ale nic slibovat, ptal jsem se ho jen na +/- odpověď. :D
//EDIT: a třeba ho to donutí to vyhodnotit dřív. :D

Editováno 30.5.2016 14:56
Nahoru Odpovědět 30.5.2016 14:55
Cokoliv a kdokoliv může jednou uspět.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na IT Man
Zdeněk Pavlátka:30.5.2016 15:07

Nedonutí ;) nedostatek času je pořád nedostatek času

Nahoru Odpovědět  +2 30.5.2016 15:07
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Matúš Petrofčík:6.6.2016 11:31

No čo vedúci, ako to vyzerá? :)

Nahoru Odpovědět  +4 6.6.2016 11:31
obsah kocky = r^2 ... a preto vlak drnká
Avatar
IT Man
Redaktor
Avatar
IT Man:9.6.2016 16:21

Nás chce mít napnuté ... :D

Nahoru Odpovědět 9.6.2016 16:21
Cokoliv a kdokoliv může jednou uspět.
Avatar
Odpovídá na IT Man
Martin Štěpánek (Enormyk):9.6.2016 17:52

To už asi brzy prasknu :-D

Nahoru Odpovědět  +1 9.6.2016 17:52
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Matúš Petrofčík:9.6.2016 19:56

Zdeňek s nami hraje "Hide and seek" a kto ho nájde, dostane svoje hodnotenie :D

Nič to, ja si idem zahrať "Mensch ärgere dich nicht" :D

Nahoru Odpovědět 9.6.2016 19:56
obsah kocky = r^2 ... a preto vlak drnká
Avatar
IT Man
Redaktor
Avatar
IT Man:14.6.2016 16:52

Nějaké informace? Kdy by už mohlo být vyhodnocení? Už čekáme 16 dní. :D

Nahoru Odpovědět  +2 14.6.2016 16:52
Cokoliv a kdokoliv může jednou uspět.
Avatar
Odpovídá na IT Man
Patrik Neumann:15.6.2016 13:22

ano, nefunguje mu odesílání emailů z xamppu, teď asi řeší to odesílání několik dní, více informací mi na fb nepsal

Nahoru Odpovědět 15.6.2016 13:22
Nic není nemožné, proto se snažím dál.
Avatar
VitekST
Člen
Avatar
Odpovídá na Patrik Neumann
VitekST:15.6.2016 13:56

Problém je ten, že se neodesílají E-maily z validního SMTP serveru, takže většinou služby tyto E-maily zahazují (Seznam toto dělává).

Kdybychom měli možnost použít Mail2 PEAR modul (což je vlastně knihovna), či snad PHPMailer, atd, mohli bychom specifikovat validní SMTP server, a E-maily by přicházely.

Editováno 15.6.2016 13:58
 
Nahoru Odpovědět 15.6.2016 13:56
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Patrik Neumann
Matúš Petrofčík:15.6.2016 18:15

Co si to nehodi na nejaky freehosting, nap. Endora?

// recnicka otazka, ty mi odpovedat nemusis :)

Editováno 15.6.2016 18:16
Nahoru Odpovědět  +1 15.6.2016 18:15
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Marek Z.
Redaktor
Avatar
Marek Z.:15.6.2016 21:16

Však xampp má nějaký výchozí výstup na e-maily, to nestačí?

Nahoru Odpovědět 15.6.2016 21:16
Chybami se člověk učí, běžte se učit jinam!
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Marek Z.
Zdeněk Pavlátka:15.6.2016 23:30

Mělo by mi to běžet přes smtp.gmail.com, žádné chyby to nehází... Ale nikam se to nepošle, zkoušel jsem to posílat na centrum a gmail. Nic. A vaše výtvory právě opravuji, zítra tu bude vyhodnocení.

Nahoru Odpovědět  +1 15.6.2016 23:30
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Marek Z.:15.6.2016 23:38

Pamatuji si, že jsem kdysi řešil podobný problém a nevyřešil jsem jej. Už jsem na to neměl sílu..

Nahoru Odpovědět 15.6.2016 23:38
Chybami se člověk učí, běžte se učit jinam!
Avatar
Hadi.k
Člen
Avatar
Hadi.k:16.6.2016 10:56

Proč nemůžeme používat framework, a co je to vlastně framework ? Chápu že nemůžu použít nette, ale když si něco napíšu pro tento úkol už je to vlastně framework. Samotné mvc, se šablonama routováním, pěknyma URL už je samo o sobě vlastní framework.

Mám vlastní napsaný framework, který umí tohle vše pár řádkama a ten použít nemohu ? Jak se vlatně pak pozná zda to je framework nebo ne ? :)

To samé knihovna ? Nemužu použít něco z netu, ale když si napíšu vlastní knihovnu na něco tak tu taky nemůžu použít ? :)

Já vím, já vím, "hnidopich", ale chtělo by to určitě co ještě je a co není.

Editováno 16.6.2016 10:57
Nahoru Odpovědět 16.6.2016 10:56
"Ajťák" nikdy nebere telefon po prvním zazvonění!! Vždy je totiž velice vytížen - buď musí nejprve dopít ká...
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Hadi.k
Zdeněk Pavlátka:16.6.2016 14:19

Ideálně by celý výtvor měl být napsán v rámci soutěže - tzn. nepoužívat starší výtvory a cizí kód. Ten zákaz je hlavně kvůli těm cizím výtvorům. Smysl soutěže rozhodně není stáhnout si hotový framework z internetu. A to že použiješ svůj starší výtvor je trochu nefér k těm, co nic staršího nemají. Pokud to napíšeš v rámci dané soutěže, klidně to použij, ať už je to malá knihovnička nebo obrovský framework.

Nahoru Odpovědět 16.6.2016 14:19
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:16.6.2016 18:46

Díky všem za účast, zde jsou výsledky:

Eda Stehlík - 22 bodů
Kód: 20 bodů
O komentářích jsi asi v životě neslyšel, nemáš tam jediný. Kód není naformátovaný.
Na konec souborů, které obsahují čistě PHP, není třeba dávat ?>
Ve funkci registruj máš hodně vnořených podmínek. Takhle to je ještě relativně čitelné (i když NetBeans si stěžuje), ale představ si, že bys tam potřeboval přidat dalších třeba 5 podmínek... Katastrofa. Lepší je psát podmínky pod sebe a v nějaké proměnné si ukládat, zdali byly všechny splněny. Např. takhle:

$splneno = true;

if (!/* kontrola jména */) {
        // něco je špatně
        $zprava = "Zadali jste neplatné jméno!"; // ideálně by tam měly být různé hlášky podle toho, co je špatně
        $splneno = false;
}
if (!/* kontrola emailu */) {
        // ...
        $splneno = false;
}
// atd...

if ($splneno) {
        // všechny podmínky byly splněny
}

Javascript chybí úplně.

Funkčnost, použitelnost: 0 bodů
Nemáš tam index.php, takže stránky nelze spustit...

Zabezpečení: 2 body

Hashuješ pomocí SHA1, což je velmi slabý algoritmus. Sůl sice používáš, ale vždy stejnou.

Martin Štěpánek (Enormyk) - 72 bodů
Kód: 30 bodů
Kód není nejhorší (ačkoli není moc objektový), komentovaný je celkem dobře.
Dodám jen drobnou radu:
místo kódu

<?php
if ($_SESSION['overeni'] == 'ne') {
        echo('Nemáš ještě ověřený mail. <a href="index.php?znovuzasli=ano">Znovu zaslat ověřovací mail.</a>');
} else {
        echo('Úspěšně jsi se registroval a přihlásil.<br>');
        echo('Jsi přihlášen jako '.$_SESSION['mail']);
}
?>

lze použít tohle:

<?php if ($_SESSION['overeni'] == 'ne'): ?>
        Nemáš ještě ověřený mail. <a href="index.php?znovuzasli=ano">Znovu zaslat ověřovací mail.</a>
<?php else: ?>
        Úspěšně jsi se registroval a přihlásil.<br>
        Jsi přihlášen jako <?= $_SESSION['mail'] ?>
<?php endif; ?>

Funkčnost: 40 bodů
Nenašel jsem žádný problém.

Zabezpečení: 2 body
Hashuješ pomocí SHA1, což je velmi slabý algoritmus. Sůl sice používáš, ale vždy stejnou.

Matúš Petrofčík - 99 bodů
Kód: 40 bodů
Kód je objektový, komentovaný a přehledný.

Funkce validateName má poněkud divné chybové hlášky - někde mluvíš o jméně, někde o hesle.

Funkčnost, použitelnost: 40 bodů
Nenašel jsem žádný problém.

Zabezpečení: 19 bodů

Hesla hashuješ pomocí SHA512, používáš sůl. Super. Jednodušší by ale bylo použít funkci password_hash, která je k tomuhle určená a hash provádí vícekrát po sobě. (navíc se snadno používá)

VitekST - 88 bodů
Kód: 38 bodů
Krásný kód, jen těch komentářů tam moc není.

Funkčnost, použitelnost: 30 bodů
U registrace by měl být odkaz na přihlášení, U přihlášení by měl být odkaz na registraci a obnovu hesla. Nebo alespoň odkaz na úvodní stránku. Takhle když kliknu na některou z možností, dostanu se zpět jen přepsáním url. Totéž platí po aktivaci.
Pokud se nepodaří odeslat email, přesměruje mě stránka zpět na registraci, ať to zkusím znovu, ačkoli účet už je v databázi vytvořen - tím se použité uživatelské heslo zablokuje.

Zabezpečení: 20 bodů

Používáš password_hash - výborně.

Patrik Neumann - 5 bodů
Kód: 2 body
Error 404: Komentáře nenalezeny...
Kód je katastrofální, neobjektový, používáš superglobální pole, aniž by sis zkontroloval zda v něm něco je, používáš $_SESSION aniž bys předtím zavolal session_start().
PHP kód máš vložený dovnitř html místo na začátek souboru, kvůli tomu ti nefunguje přesměrování.
Nemáš ukončenou polovinu html tagů.
Údaje pro připojení k databázi máš v každém souboru spolu s kódem pro připojení.
Pro každou aktivaci účtu generuješ nový php soubor.
Pročti si zdejší články, je to tam pěkně vysvětlené.

Funkčnost, použitelnost: 3 body
Vyhazuje to hromadu chyb.
Po registraci se nikde neobjeví upozornění, že je třeba účet aktivovat.
Přihlášení nefunguje.

Zabezpečení: 0 bodů
Hashovací algoritmy SHA1 a md5 jsou jedny z nejslabších, radši použij password_hash. Navíc tam máš konstantní sůl.
Nemáš ochranu proti SQL Injection -> kdokoli se ti může nabourat do databáze. Cokoli co vkládáš do SQL dotazu musíš ošetřit. Nebo můžeš použít PDO, které to udělá za tebe.

grygerek.tomas - 80 bodů
Kód: 30 bodů
Komentáře tam občas jsou, ale nějak moc jich není, často popisují to, co je již jasné z názvu funkce.
Na konec souborů, které obsahují čistě PHP, není třeba dávat ?>
Třídy by měly být ve vlastních souborech, máš tam dost funkcí mimo třídy.
Jinak kód není špatný.

Pozn.: Nějak jsi mi zapomněl říct, jak má vypadat databáze, musel jsem to hledat v SQL dotazech...

Funkčnost, použitelnost: 30 bodů
Na hostingu ti to hází chybu při registraci (něco s databází).
Možnosti Registrace, Login a Logout by se měly zobrazovat podle toho, jestli je člověk přihlášený, ne vždy všechny. Navíc by asi měly být ve stejném jazyce...
Po registraci se nikde neobjeví upozornění, že je třeba účet aktivovat, uživatel se pak může divit, že se nelze přihlásit.
Jinak to funguje dobře.

Zabezpečení: 20 bodů

Používáš password_hash - výborně.

IT Man - 80 bodů
Kód: 35 bodů
Kód je pěkně komentovaný, objektový.
U metody Db.update máš výchozí hodnoty parametrů, ale parametry s výchozí hodnotou nemáš na konci. Platí pravidlo, že pokud má parametr výchozí hodnotu, mají ji mít i všechny za ním.
V PHP je lepší emaily validovat pomocí filter_var($email, FILTER_VALIDA­TE_EMAIL)

Nechápu, proč používáš 2 tabulky. Aktivační token máš v obou a jestli je účet aktivovaný máš v tabulce user také. Ta druhá je tam tedy úplně zbytečně.

Funkčnost, použitelnost: 30 bodů
Při obnově hesla posíláš jeho hash, ne heslo samotné. Tudíž se pak nelze přihlásit. Jinak vše funguje dobře, chválím možnost trvalého přihlášení.
Co se týče kontroly emailu:
[a-zA-Z.0-9 **** -_]+@[a-zA-Z0-9]+\.[a-z]{2,6}
Zpětné lomítko v emailu být nesmí, jinak nevím co ti na tom nefunguje.
JavaScriptová kontrola se neaktivuje při použití ctrl+v.

Zabezpečení: 15 bodů

Sůl by měla být různá pro jednotlivé účty, ne konstantní. Lepší by bylo k hashování použít funkci password_hash, která si sůl vytvoří sama.

Placku tedy získává Matúš Petrofčík Gratuluji :)

Nahoru Odpovědět  +6 16.6.2016 18:46
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
IT Man
Redaktor
Avatar
IT Man:16.6.2016 19:10

Matúš Petrofčík: já ti psal, že vyhraješ. :D Gratuluji, opravdu sis to zasloužil - výborná práce prostě! :)

Jinak díky za hodnocení, škoda toho čekání ale. A to zpětné lomítko - nejedná se o neutralizaci nějakého znaku? Už si to nepamatuji. :D

Nahoru Odpovědět  +2 16.6.2016 19:10
Cokoliv a kdokoliv může jednou uspět.
Avatar
Martin Konečný (pavelco1998):16.6.2016 19:42

Dovolim si jen přidat videonávod k těm, co používají Exceptions:
https://www.youtube.com/watch?…

Nahoru Odpovědět  +1 16.6.2016 19:42
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na IT Man
Zdeněk Pavlátka:16.6.2016 19:51

Jedná, ale ne v hranatých závorkách.

Nahoru Odpovědět 16.6.2016 19:51
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
VitekST
Člen
Avatar
VitekST:16.6.2016 20:47

Nikdo není dokonalý, ani já ne.
Gratuluji výherci. :)

 
Nahoru Odpovědět 16.6.2016 20:47
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
IT Man:16.6.2016 21:11

I tam. Jak by jsi tam chtěl uvést např. znak '-'? :)

Nahoru Odpovědět 16.6.2016 21:11
Cokoliv a kdokoliv může jednou uspět.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na IT Man
Zdeněk Pavlátka:16.6.2016 22:23

To on tam právě měl, koukám že v hodnocení se to špatně zobrazilo:

[a-zA-Z.0-9\-_]

ale akceptovalo to jak -, tak i \

Nahoru Odpovědět 16.6.2016 22:23
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
grygerek.tomas:16.6.2016 22:45

Teď na to koukám, že to na hostingu nefunguje. Já totiž v zaslaném řešení prvně poslal i hesla na DB hostingu. Heslo jsem proto změnil, ale script jsem zapomněl doopravit, protože jsem to měl dávno otestované.

Vlastní leností jsem se připravil o pár bodů, ale s tím jsem počítal.
Díky za podrobné hodnocení. Tato zpětná vazba se mi hodí :)

Ps: proč považuješ psaní ukončovacích znaků ?> v souborech pouze s funkcionalitou za "chybu"?

Editováno 16.6.2016 22:46
Nahoru Odpovědět 16.6.2016 22:45
Není proč se klanět.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Matúš Petrofčík:16.6.2016 22:49

Dík za hodnotenie a ostatním za účasť :)

K môjmu zadaniu: Tuník mi cez hangouts ešte vytkol, že mám validáciu v AuthModel-i, no lepšie by bolo ak by bola samostatne a kontrolovalo sa to už v Controller-i, a až potom by sa volali metódy AuthModel-u.

K tomu reguláru čo tu riešite. Podľa pcre(php) ak je v zátvorkách pomlčka, netreba ju exitovať (tak sa tomu vraví?), dôkaz v obrázku podľa "regex101.com"https:/­/regex101.com kde si bežne skúšam regulárne výrazy a odporúčam aj ostatným. U JavaScriptu je to ale inak.

Nahoru Odpovědět  +2 16.6.2016 22:49
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na grygerek.tomas
Matúš Petrofčík:16.6.2016 22:52

proč považuješ psaní ukončovacích znaků ?> v souborech pouze s funkcionalitou za "chybu"?

Pretože ak sa jedná čisto o PHP súbor, tak by sa za ?> mohol objaviť nejaký "biely znak", napr. nový riadok, a to by odoslalo http hlavičku prehliadaču (pretože by sa snažilo ten biely znak vypísať/vygene­rovať). No a to je problém, pretože potom nemôžeme napríklad poslať inú hlavičku (iný stavový kód, napr. 404, alebo presmerovanie).

Nahoru Odpovědět  +4 16.6.2016 22:52
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Matúš Petrofčík
Matúš Petrofčík:16.6.2016 22:53

Oj ten link tam! Tu je správne regex101.com

Nahoru Odpovědět 16.6.2016 22:53
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
grygerek.tomas:16.6.2016 23:03

Díky, "bílý znak" se mi ještě nepodařilo přifařit, tak jsem o tomto úskalí dosud nevěděl. Dobré vědět. Já ten kód chtěl mít hezký, teď alespoň ušetřím cca 3 znaky na soubor :D

Nahoru Odpovědět  +1 16.6.2016 23:03
Není proč se klanět.
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 62 zpráv z 62.