Diskuze: Machr na PHP - Základ eshopu
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 50 zpráv z 106.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Někteří z vás už to mají pěkné, jen vám poradím, že se ještě v e-shopech dává kolikrát tu položku chcete, tzn tam nebude
samsung
samsung
ale
samsung 2x
Také by bylo dobré doplnit to o AJAX.
a este nieco... radsej si na localhost nahod WAMP (ak mas Windows) a vyvijaj
to offline, nie online, lebo s tymi chybkami si prezradzas aj adresarovu
strukturu...
a ak bude to plnefunkcne, az potom to zaves dakde na nete a spristupni to
ostatnym
WAMP je dnes už zbytečný. Stačí samotné PHP, funguje jako webserver.
vcera som cital o tom... ale niektore tie baliky este stale obsahuju webovy server Apache
Těch webových serverů je celá řada. I Python má svůj. Některé fungují i jako proxy, samotné FastCGI se dá použít také jako webserver, Nginx, Lighttpd, ...
s tym suhlasim... tie dva co si spomenul su neporovnatelne mensie nez Apache a rychlejsie...
Našel jsem i pár opravdu miniaturních webserverů, měly něco kolem 30 KB.
existuje tolko roznych webovych serverov, dokonca aj Facebook ma svoju verziu weboveho servera
V jakém formátu chceš ten export databáze? phpMyAdmin mi dává strašně možností.
V čem se obvykle odevzdává export databáze?
Export - a můžeš nechat klidně možnost SQL, kterou budeš mít vybranou automaticky. A to je vše. Já to tak už kolikrát do soutěže odevzdal.
Ahoj. Účastním se také soutěže s mým dnešním na rychlo splácaným
výtvorem. Je to napsané s databází SQLite3, takže jestli ji máte na svém
počítači, tak vám to pojede ihned. Jestli máte pouze MySQL a nechcete
SQLite, tak odkomentujte v index.php připojení k MySQL,zakomentujte to s
SQLite a rozjeďte si ten sql příkaz. (MySQL je tam rychle předělané, tak
po něm moc nechtějte). Je to můj první pokus o MVC, tak pište prosím
jakékoliv připomínky.
http://leteckaposta.cz/904968463
Ahoj, přidám svůj výtvor.
Je to zatím bez dokumentace a řeším online hosting co podporuje .htacces
.
http://misaz.moxo.cz/…r-na-php.zip
export tabulek je zde http://misaz.moxo.cz/…dbexport.sql počíta s tím že
databáze se jmenuje eshop, pokud chcete jinak, tak to pozměňte v
eshopsettings.xml.
Je to poměrně róbusní (strávil jsem s tím celý týden) a je to navrženo, tak aby to šlo snadno rozšířit, alespoň já to zvládnu a až dopíšu komentáře, dokumentaci, tak by to mohli zvládnout i ostatní, uvidím jak to do zítřejších 10:00 stihnu.
Je tam i narychlo splácaná šablona v CSS, omlouvám se a odsazení zdrojového kódu, protože PHP tools mám jen ve Visual Studiu 2010, tak místo tabulátoru jsou mezery (neměl jsem náladu hledat to v nastavení bez vyhledávacího políčka) a CSS je odsazené úplně otřesně.
Do budoucna to budu rozšiřovat, snažil jsem se to navrhnout tak aby přidáni funkcionality bylo co nejsnadnější.
Router jsem si napsal celý sám, takže se od běžně používaných možná bude mírně lišit, chtěl jsem aby si našetl třídu podle URL, zjisitl jestli ta třída implementuje IPage (kvůli injekci) a pokud implementuje nechal ji připravit se a vypsat. Protože to skoro celé funguje na AJAXu, tak Router umí pracovat i s IAjaxItem, funguje obdobně jako u IPage.
Pro jistotu jsem to dal už dnes (i s nějakými menšími nedostatky), protože poslední dobou rád spím i do 11:00.
Tady dávám svůj výtvor:
http://nuz15-own-web.9e.cz/index.php
Divné znaky v textu ignorujte, špatně se načítají z databáze. na localu
mi to fungovalo, asi se to špatně načetlo na server.
Stránka umožňuje hodnocení knih, hledání mezi nimi a snažil jsem se o co
nejlepší design. Při objednávání se vypíše seznam objednaných knih. Je
to můj první projekt v PHP a tento jazyk spolu s MySQL jsem se učil během
tvorby. Kód tedy není nejlepší, ale snažil jsem se o objektový návrh.
Zdroják:
https://dl.dropboxusercontent.com/…r_na_php.zip
Export databáze:
https://dl.dropboxusercontent.com/…database.sql
Kódování opraveno
Nalezená chyba (neodeslání objednávky) opravena.
ONLINE : www.machrphp.tode.cz
ZDROJÁK : http://uloz.to/…machrphp-zip
heslo : sdraco
DB : http://uloz.to/…89732075-sql¨
heslo : sdraco
Přečti si pravidla pro soutěže..
Budou nahrány na shareserver leteckaposta.cz, dropbox nebo Google drive. Ne uloz.to nebo mega.
Opravil jsem pár zbývajících chyb. Upravený zdroják je na stejné
adrese.
pozn. Že je kniha skladem znamená, že jí mám doma
Madara stejně ti to nefunguje:
Kontrola objednávky
2x Tričko - 359 Kč Odebrat -> 718
1x Boty - 692 Kč Odebrat -> 718 + 692 = ?1051? -> 1410 Kč
Celkem : 1051 Kč
Je hezké, že ti to zobrazuje že mám 2x triko, ale počítat s tím to moc neumí. Musím ale uznat, že tvůj eshop je pro zákazníka asi nejvýhodnější. Pravda že oprava asi není nijak nákladná, ale ta chyba tam je.
Mohli byste, prosím, zasílat i ukázky? Rád totiž hledám způsoby, jak
podstrčit špatná data a poškodit tak systém.
Pozn.: Ale pro dobré účely! Chyby většinou autorovi nahlašuji, a tím mu pomáhám do budoucna k lepší ochraně.
Když dám koupit a poté se chci vrátit na předchozí stránku, tak se mi
košík vyprázdní. To je korektní chování? Promiň, jestli to je tak
úmyslně, jen mě to překvapilo
Ano, chová se to správně.
Protože pokud se vrátíš o stránku zpět, načte se ta stránka z cache
prohlížeče a tam jsi ty předměty ještě koupené neměl.
@Neregistrovanej: Kde jsi četl že se hodnotí i design? Jde o machra od Sdraca, jako
podlézání bych to moc neřešil...
Už jsem psal, že je to první, co jsem v php napsal. Funguje to a to je úspěch.
konečně mi moxo zprovoznilo DNS a funguje http://misazeshop.moxo.cz/ . Při nasazování jsem zjistil že na serveru kontroluje velikost písmen a proto mi to vždy hází nějaké chyby, protože v zdrojácích je to malžmi písmeny pay, cash, cart ale ty třídy jsou velkými Pay, Cash, Cart, nevím proč mi to neházelo ty chyby na localhostu. Kdyby vám to nejelo vůbec tak opravená varianta je zde: http://misaz.moxo.cz/…repaired.zip
je to dane tym, ze Windows nerozlisuje velke a male pismena, ale Unix like OS rozlisuju a to je casta chyba pri prenose kazdeho weboveho projektu z Windowsu na Linux/Unix
jo, tak aspoň že David Hartingervi bude fungovat i ta první verze co jsem stihl poslat před deadline.
Ty v tom eshopu můžeš odeslat oběd?
ked si pouzil OOP, kludne si mohol vyuzit aj auload, tym by si si usetril
nacitavanie tried (trieda by sa nacitala az vtedy, ak by bola potrebna - pri
vytvarani instancie), pri viacerych triedach velmi to zjednoduhsi kod.
dalej v tom kode hrozi, ze budez neho gulas...
vo sa tyka funkcnosti, pokial by bol db stroj nedostupny, tak by sa zobrazila hlaska, ze sa nepodarilo k databazi pripojit (co by bolaspravna cinnost), ale pokracovalo by to vyberom databazy, co by skoncilo vygenerovanim typickej chybovej hlasky, ze neexistuje ziadna databaza
ale inak na to, ze to je tvoj prvy PHP kod, sa mi paci
vzdy treba dodrziavat nazvy presne take velke, ako to mas ulozene vo
filesysteme... napr. u mna by to bez drobnej upravy nefungovalo, kedze moj
system rozlisuje velkost pismena a ze: index.php != INDEX.PHP != Index.php
vo svete Windows plati: index.php == INDEX.PHP == Index.php
cize treba na to davat pozor, lebo system Windows aj automaticky konvertuje
velkost pisma v nazve suborov a ak mas niekde volanie napr.:
include ("functions.php"};
a subor index.html, tak pri ukladani sa ti moze stat, ze Windows to
skonvertuje na Index.html a vo Windowse to bude fungovat
bezproblemovo,
ale ak to prenesies na Linuxovy, ci Unxovy, stroj (ci na Mac, resp. Solaris),
tak ti to potom prestane fungovat...
u sdraca by to fungovalo, ale na freehostingu nie, kedze freehosting bezi na LAMPP
Škoda jen že nejde přidat vícekrát položka z obchodu, ale jenom z
košíku... Ale jinak super...
To tvé se mi líbí ... pro zákazníka výhodné : http://prntscr.com/2kxqtb
Dneska se to nějak protáhlo, že?
těch příspěvků je strašně moc, nehledě na to že některé nejsou ani tady ve vlákně ale v PM. Navíc byl oběd, pak si sdraco musel dát nějakou pauzu aby mu z toho nehráblo. Nehledě na to že hodinu a půl trval druhý machr.
Jojo, máš recht
Taky musím na oběd.
Možná by se hodilo tlačítko pro označení příspěvku jako "odevzdávací"
aby se to pak nepletlo s obyčejnýma příspěvkama.
celkově by se pro to hodil nějaký systém, on možná nějaký časem přijde.
Bere se v úvahu i bezpečnost? Snad u všech eshopů jsem si dokázal objednat neexistující věc, smazat neexistující věc (v košíku mám -2 produktů), nebo dokonce kupovat věci za -17000 Kč.
Určitě, toto je základ
Já to mám celkem vyladěné, jen pochybuju že to bude uznaný či vůbec
výherní
jo, umě jde taky nakupovat za -1700, ale najde třeba smazat databázi. Ty záporné počty jsou pak jen o přidání jednoho řádku kódu. Čili já jsem tak nějak počítal, že se tam něco najde, ale ty bezpečnostní věci by měly být OK.
Škoda, že sem se nestihl zúčastnit, ale po prohlédnutí soutěžních
e-shopů některé nevypadají špatně. Až na kontrolu existujícího zboží
a vkládání validních dat do políček atd.
Smekám před lidma, co to "splácali" za pár hodin a je to vlastně nejspíš
jejich první eshop
edit: ani nevím, jestli bych se mohl zúčastnit, když dělam e-shopy v Nette
U mě dát záporný počet nejde, ale není nejlepší uchovávat objednávku v url.
Pánové, úroveň výsledků je opravdu příšerná, hodnotil jsem to dost dlouho a jsem z toho zklamaný a unavený. Machr na PHP bude určitě častěji, protože potřebujeme trénovat. PHP je opravdu špatně navržený jazyk. Pokud ho člověk dobře umí, dělá hezké věci. Ale pokud ho neumí nebo i když ho umí jen průměrně, tak se ten kód nedá číst.
Heredoc
Použití Heredoc není cool, a to ani trochu. Je to naprosto zbytečná věc,
která se v praxi nepoužívá. Pro šablony je
naprosto nevhodná, protože umožňuje vkládat pouze proměnné,
nelze zavolat metodu. A ne, ani hackování tohoto nedostatku pomocí getterů
není cool. PHP má naprosto skvělou šablonovou syntaxi, která je určena
přesně k tomu, aby byla v šablonách (a ne, není to, že něco echujete, PHP
má přímo konstrukce pro tvorbu šablon, stačí se podívat na místní
tutoriály). Za to, že tuto syntaxi neznáte a místo ní znáte tento nesmysl,
může dost možná Kit, tímto ho tedy žádám, aby to tu přestal
propagovat. Pokud vám PHP šablony z nějakého důvodu nestačí nebo se vám
nelíbí, existují věci jako Smarty nebo Latte, které jsou přímo
vytvořené pro tvorbu složitých šablon. Heredoc k tomu není a již ho takto
použitý nechci vidět. Dokonce mi připadá, že si myslíte, že když se
HTML echuje v modelu v heredoc, tak je to v pořádku. Ne, není, HTML patří
do šablony.
Narazil jsem dokonce na Kontroler, který vypadal takto:
foreach ($items as $item => $count) {
$name = $productManager->getNameOfItem($item);
$tbody[] = "<tr><td>".$name["jmeno_vyrobku"]."</td><td>".$count."</td><td>".
($bag->getPriceOfItem($item)*$count)."</td></tr>";
}
$tableRow = implode("\n", $tbody);
$this->data['table'] = @$table;
Tato technika je opravdu postavená na hlavu, kontroler je potom zasviněný HTML kódem a implode. MVC ztrácí smysl, takhle ne.
SQL injekce
V několika řešeních jsem našel dokonce SQL injekce. Toto je naprostý
základ, je to jako byste psali sloh a nevěděli, že věta začíná velkým
písmenem. Všechna řešení s SQL injekcemi v těchto soutěžích budou
odteď automaticky diskvalifikována a kód nebudu vůbec dále číst.
Pořadí hodnocení neodpovídá umístění v soutěži. Nejvíce se mi líbila řešení Zdeněk Bauer a Michal Martinek, ti získávají placku. Nevím, jestli to měli úplně dobře, jsem z ostatních opravdu odrovnaný.
Hodnocení
Příště již nebudu vůbec hodnotit řešení s tak zásadními chybami, jako jsou SQL injekce nebo nefunkční diakritika. Pevně doufám, že se úroveň soutěží v tomto jazyce časem zlepší, oproti ASP to je teda masakr, je vidět, že v dobře navrženém jazyce jsou prostě diametrálně kvalitnější výsledky.
Vítězové prosím publikujte a napište x. Ostatní si přečtěte nějaké místní seriály.
Wow Možná bych zkusil
dát repete s podobným zadáním, tj i řešení spojené se SESSION, MVC apod
Kdybych našel čas, přidal
bych se. Myslím že bych také nedopadl lépe v PHP
Zobrazeno 50 zpráv z 106.