Kritika webu terciea.cekuj.net
http://terciea.cekuj.net
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 39 zpráv z 39.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Vypadá to hezky Máš dobře ošetřená hesla? A jak řešíš ten chat?
Hesla mám escapované a šifrované přes md5 .
Zprávy do chatu mám přes soubor -> zápis přes php, pomocí jquery automatický update.
md5
nepoužívej šáhni raději po dobře osolené
sha1
Jsou servery
co generují databáze s heslama kódovanýma pod md5
a je tam už
hodně slov. Takže když se k těm datům někdo dostane, tak se to ve
většině případů dá dešifrovat, protože uživatelé většinou volí
obvyklá snadno zapamatovatelná hesla.
Jako vždy se dívám na kód - a toto je strašné...
<html5>
<!Doctype html>
<head>
To jsem ještě neviděl...
Nějak takto by to mělo vypadat:
<!DOCTYPE html>
<html lang="cs-cz">
<head>
...
</head>
<body>
...
</body>
</html>
V HTML5 ve formuláři nepoužívej neutrální span, ale k tomu určený label. JS předpokládám bude více - takže založ již teď soubor.
<span><i>(Michael Olšavský)</i></span>
Zbytečné - jakož i mnohé jiné konstrukce - osekej to.
<script src="js/jquery.js"></script>
Patří do head.
Tak malá stránka a 3 CSS soubory?
Moje vize:
<!DOCTYPE html>
<html lang="cs-cz">
<head>
<meta charset="UTF-8">
<title>Menu</title>
<link rel="stylesheet" type="text/css" href="index.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function Send()
{
if(document.forms["form"].password.value == "" || document.forms["form"].name.value == "")
{
alert("Chybí údaje!");
return false;
}
return true;
}
</script>
</head>
<body>
<header><img src="obrazky_WWW/3A.png" style="float:left; position: static;" height="140px"/></header>
<nav>
<ul>
<li><a href="index.php?id=index" id="Novinky" title="Novinky">Menu</a></li>
<li><a href="index.php?id=akce" id="Akce" title="Akce">Akce</a></li>
<li><a href="index.php?id=fotky" id="Fotky" title="Fotky">Fotky</a></li>
<li><a href="index.php?frame=View/Content/rozvrh.php" id="Rozvrh" title="Rozvrh">Rozvrh</a></li>
<li><a href="index.php?frame=http://kavalirka.cz/suplovani/suplovtr.htm" title="Suplování">Suplování</a></li>
</ul>
</nav>
<div id="login">
<form method="POST" class="formular" id="form">
<label for="email">Email:</span>
<input type="text" name="email" placeholder="Zde zadejte svůj e-mail" />
<label for="passvord">Heslo:</span>
<input type="password" name="password" placeholder="Zde zadejte své heslo" />
<br />
<input type="submit" class="loginButton" name="submit" value="Přihlásit" />
<button class="loginButton" onclick="Send()" />Registrovat</button>
</form>
</div>
<article>
<h2><a href=index.php?clanek=13>Lístky na maturitní ples</a></h2>
<i>(Michael Olšavský)</i>
<p>Pro lístky na maturitní ples si říkejte u našeho pokladníka.</p>
<p><i>2013-02-06</i></p>
</article>
</body>
</html>
JS formuláře si nyní uprav - nemám čas - spím...
(Drobné chyby snad omluvíte, když to píši tak pozdě... )
Místo třídy formulář styluj element form... Oprava a úprava:
<!DOCTYPE html>
<html lang="cs-cz">
<head>
<meta charset="UTF-8">
<title>Menu</title>
<link rel="stylesheet" type="text/css" href="index.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
var uacForm,
action =
{
login: 'url',
register: 'url'
};
window.onload = function() {
uacForm = getElementById('uacForm');
}
function SendRegisterForm(currentAction)
{
errorMessage = [];
if(uacForm.name.value == '' && currentAction == 'register')
errorMessage.push('Jméno je prázdné.');
if(uacForm.password.value == '' && uacForm.password.value != '')
errorMessage.push("Heslo je prázdné.");
if(uacForm.email.value == '' && currentAction == 'register')
errorMessage.push('Jméno je prázdné.');
if(uacForm.name.value == '' && uacForm.email.value == '' currentAction == 'register')
errorMessage.push('Jméno i e-mail jsou prázdné.');
if (errorMessage.length == 0)
{
uacForm.action = action[currentAction];
uacForm.submit();
}
else
alert(errorMessage.join('\r\n'));
}
</script>
</head>
<body>
<header><img src="obrazky_WWW/3A.png" style="float:left; position: static;" height="140px"/></header>
<nav>
<ul>
<li><a href="index.php?id=index" id="Novinky" title="Novinky">Menu</a></li>
<li><a href="index.php?id=akce" id="Akce" title="Akce">Akce</a></li>
<li><a href="index.php?id=fotky" id="Fotky" title="Fotky">Fotky</a></li>
<li><a href="index.php?frame=View/Content/rozvrh.php" id="Rozvrh" title="Rozvrh">Rozvrh</a></li>
<li><a href="index.php?frame=http://kavalirka.cz/suplovani/suplovtr.htm" title="Suplování">Suplování</a></li>
</ul>
</nav>
<form method="post" id="uacForm">
<label for="name">Jméno:</label>
<input type="text" name="name" placeholder="Zde zadejte své jméno" />
<label for="passvord">Heslo:</label>
<input type="password" name="password" placeholder="Zde zadejte své heslo" />
<label for="email">Email:</label>
<input type="email" name="email" placeholder="Zde zadejte svůj e-mail" />
<br />
<button onclick="Send('login')">Přihlásit</button>
<button onclick="Send('register')" />Registrovat</button>
<h6>Pro přihlášení zadejte jméno, nebo heslo.</h6>
</form>
<article>
<h2><a href=index.php?clanek=13>Lístky na maturitní ples</a></h2>
<i>(Michael Olšavský)</i>
<p>Pro lístky na maturitní ples si říkejte u našeho pokladníka.</p>
<p><i>2013-02-06</i></p>
</article>
</body>
</html>
Nastyluj element button.
Možná tam jsou ještě chybky...
Ještě se na to podívám. Ale něco z toho se mi zdá trochu zbytečné. S těmi styly máš pravdu, ale už sem se několikrát setkal s názorem, že jquery se dává na konec, protože to jinak zpomaluje načítání samotné stránky.Ale díky
Já nechápu jeho přítomnost. A osobně jej nepoužívám. Každopádně jsem toho opravil a upravil zatraceně dost.
No nevím. To zpracování formuláře se mi zdá až moc zbytečné. Navíc mě to funguje trochu jinak. Takže jediné co si upravil je ta hlavička. Jinak ty styly byly rozdělené abych v tom měl nějaký pořádek. Musím ale uznat, že v tomhle máš pravdu.
Tak to si to prohlédni - přidal jsem labely, kontrolu v JS,... Místo JS placeholder... Je toho fakt dost. Také zbytečné konstrukce osekány.
Do nav - navigation nepatří formulář, ale navigace. html5 tag neexistuje, article v section - hmm,... Tak mi nepiš, že jsi měl blbě "jen kousek" - to je dost nadsázka...
Než cokoliv oficiálně vydáš, zvaliduj to:
Pořádek v CSS zařiď odstraněním zbytečných ID a tříd - globalizuj. Styluj elementy, rozděl do sekcí - elementy, id a třídy, komentuj, rozděl podle layoutu atd...
article se do section mimochodem dává ve většině případů.
Příště mlčet - dělej si co chceš.
http://validator.w3.org/check?…
Když si pořád myslíš, že existuje html5 tag...
O html5 tagu jsem ti neřekl ani slovo. Touhle chybou jsem si vědom. Ostatní není moc závažné. Navíc dva errory z osmi je ta reklama na endoře...
Další vyplavou, až to opravíš. Ano - měl jsi tam pár chybiček proti pravidlům HTML. Ale pak tam máš mnoho zbytečných konstrukcí, zbytečného JS - viz. placeholder atd... Máš tam JQuery, které nepoužiješ - nač? A i kvůli 3 věcem tahat celé JQuery - proč? Atd...
Přeci nehodláš dělat tak, že toto není závažné - k čemu to pak děláš? (To si také mohu jen tak něco vyplivnout...)
</html5>
<nav>
<a href="index.php?id=index" id="Novinky" title="Novinky">Menu</a>
<a href="index.php?id=akce" id="Akce" title="Akce">Akce</a>
<a href="index.php?id=fotky" id="Fotky" title="Fotky">Fotky</a>
<a href="index.php?frame=View/Content/rozvrh.php" id="Rozvrh" title="Rozvrh">Rozvrh</a>
<a href="index.php?frame=http://kavalirka.cz/suplovani/suplovtr.htm" title="Suplov�n�">Suplování</a>
<div id="login">
<form method="POST" class="formular" action="" id="form" onsubmit="return Send()">
<span style="color: #999;">Email: </span><input type="text" name="name" value="Zde zadejte svůj email" onclick="this.form.name.value=''" />
<span style="color: #999;">Heslo: </span><input type="password" name="password" value="Zde zadejte své heslo" onclick="this.form.password.value='';" />
<br />
<input type="submit" class="loginButton" name="submit" value="Přihlásit" />
<input type="button" class="loginButton" value="Registrovat" onclick="document.location.href = 'index.php?id=registration';" />
</form>
<script>
function Send()
{
if(document.forms["form"].password.value == "" || document.forms["form"].name.value == "")
{
alert("Chybí údaje!");
return false;
}
else{
return true;}
}
</script>
</div>
</nav>
Skript do head, do nav jen navigace,... (Nejlépe nav ul li)
K čemu je formulář v divu?
Ten formulář je includovaný -> proto
Skript je ve formuláři.
Nechápu - nikdy jsem nechápal podobné výmluvy - já v ASP generoval vždy tam kam jsem chtěl:
http://project-host.lusorion.com/
Stránka je složena z 5 částí - mám snad formulář v divu? Totéž s JS - mám tam jen jeden JS mimo soubor...
EDIT:
Ne není - blbost - skripty patří do head - a jak jsem psal - soubor by neuškodil.
Také pořád získávat data - stejná data. Jednou získej - v onload a ulož. Pak volej uložené...
Podívám se na to. Jinak ten kód už by měl být správně. Podívej se na to. W3C hlásí chybu jen na tu reklamu.
Edit: I ta navigace by měla být dobře.
Label nastyluj globálně:
style="color: #999;
Zvol vhodné pojmenovávání - a dalo by se tam pořád dost věcí osekat.
Ale spěje to ke konci... (Jen tak dál.)
Ještě otázka: k formulářům mám dát $_SERVER['PHP_SELF'] a nebo nechat action prázdný?
action="/"
Osobně bych ale udělal 2 akce - login a register - tak jak to tu mám...
Já ale potřebuji více formulářů, protože při registraci se zadává více věcí. Poté to řeším přes funkce. Mám to programované objektově.
Já to tak ale pochopil - že formulář máš jen jeden - protože má být jen jeden. Každopádně udělej validaci jak jsem poslal - přes mapu. A neodesílej pokud to není OK - takže místo input použij button. Při registraci nemusí být vidět login - takže takto pak udržíš jen jeden formulář... Nyní tedy jasně odděl login - a form pojmenuj inteligentně - loginForm a registerForm. Validaci udělej objektově - aby brala n důležitých inputů a když už kontroluješ chybějící údaje, kontroluj i zápis do DB přes AJAX.
OOP a PHP bych tolik nespojoval.
Ta mapa se mi celkem líbí, ale s tím jedním formulářem bude trochu problém. Já při registraci totiž mám ještě příjmení a bude tam i rok narození a opakování hesla, takže to už by byl trochu chaos.
Proč? Budou 2 - uděláš to jako control - partialview. A zobrazíš buď jeden, nebo druhý - nač login na register stránce? A akce také odděl - udělej to přes MVC a použij akci pouze jako akci - ne jako odkaz na stránku - v PHP pak rozděl a panuj... (Popis switch...)
Jakože formulář bude nahoře v tom menu? To je jediné s čím mám problém. S php už si dokážu poradit. A ty akce mám také. Nejsou to odkazy(teda kromě té registrace).
Snad tě dobře chápu.
Buď udělej v šabloně rovnou 2 formuláře - login a register a dej je do podmínky - pokud není register a pokud je. Jenže to jsou 2 větvení. Dále můžeš na každou stránku dávat volání generace loginformu a nedat ji jen na register stránce kde místo obsahu dáš registerform. A nebo dej login do šablony a dej mu podmínku pokud není register stránka ta aktuální...
A s tím AJAXem to alespoň zkus - podívej se do DB na existenci uživatele atd...
Proč se má do DB dívat AJAXem na existenci uživatele? Tento dotaz se zásadně posílá společně s heslem.
Viděl jsem tisíce stránek kontrolující existenci uživatele již ve formuláři - jak přesně to probíhá nevím - ale když už tu kontroluje něco, proč by nemohl kontrolovat vše?
Jquery jsem tam původně měl pro vybírání prvků, ale to moc nepoužívám. Teď tam vlastně je hlavně kvůli tomu chatu. Je to jednoduší než ajaxem. Jinak to kontrolování existence uživatelů už mam dělané přes php a zda se mi zbytečné to dělat jinak.
Tak sám si psal, jak je to velké, a přitom to bez problému celé stáhneš pro 3 věci...
Zobrazeno 39 zpráv z 39.