Valentínska akcia je tu! Získaj až 80 % extra kreditov ZADARMO na náš interaktívny e-learning. ZISTIŤ VIAC:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:
Avatar
Michael Olšavský:6.2.2013 21:41

Tak jsme s kámošem udělali třídní web. On řešil grafiku(obrazky atd.) a já strukturu a programování. Snažil jsem se to napsat tak nějak podle MVC. Je zde možnost loginu -> chat, články, profil, administrace. Normální uživatel nemá moc možností navíc(vlastně jen ten chat), takže pokud by někdo chtěl, můžu mu dát účet administrátora. Ještě jsem akorát neudělal zprávy (uživatel - uživatel) a oznámení. Pak mám problém s fontem, jelikož neumí diakritiku některých písmen. Ale zase se mi líbí...

Budu rád za každou radu a kritiku. :-)

 
Odpovedať
6.2.2013 21:41
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Michael Olšavský
David Hartinger:6.2.2013 21:46

Vypadá to hezky :) Máš dobře ošetřená hesla? A jak řešíš ten chat?

Hore Odpovedať
6.2.2013 21:46
New kid back on the block with a R.I.P
Avatar
Odpovedá na David Hartinger
Michael Olšavský:6.2.2013 21:48

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.

 
Hore Odpovedať
6.2.2013 21:48
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Michael Olšavský
David Hartinger:6.2.2013 21:53

Máš u hesel sůl?

Hore Odpovedať
6.2.2013 21:53
New kid back on the block with a R.I.P
Avatar
David Jančík
Vlastník
Avatar
Odpovedá na Michael Olšavský
David Jančík:6.2.2013 21:55

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.

Hore Odpovedať
6.2.2013 21:55
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Tvůrce
Avatar
matesax:6.2.2013 22:56

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ě... :) )

 
Hore Odpovedať
6.2.2013 22:56
Avatar
matesax
Tvůrce
Avatar
matesax:7.2.2013 6:25

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...

Editované
 
Hore Odpovedať
7.2.2013 6:25
Avatar
matesax
Tvůrce
Avatar
matesax:7.2.2013 8:05

Oprava:

window.onload = function() {

    uacForm = getElementById('uacForm');
};

; chybělo...

 
Hore Odpovedať
7.2.2013 8:05
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 11:41

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

 
Hore Odpovedať
7.2.2013 11:41
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 12:30

Já nechápu jeho přítomnost. A osobně jej nepoužívám. Každopádně jsem toho opravil a upravil zatraceně dost.

 
Hore Odpovedať
7.2.2013 12:30
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 15:15

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.

 
Hore Odpovedať
7.2.2013 15:15
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 16:01

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.

Editované
 
Hore Odpovedať
7.2.2013 16:01
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 16:11

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:

http://validator.w3.org/

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...

Editované
 
Hore Odpovedať
7.2.2013 16:11
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 16:17

article se do section mimochodem dává ve většině případů.

 
Hore Odpovedať
7.2.2013 16:17
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 16:23

Příště mlčet - dělej si co chceš.

http://validator.w3.org/check?…

Když si pořád myslíš, že existuje html5 tag...

Editované
 
Hore Odpovedať
7.2.2013 16:23
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 16:28

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...

 
Hore Odpovedať
7.2.2013 16:28
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 16:31

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>
Editované
 
Hore Odpovedať
7.2.2013 16:31
Avatar
matesax
Tvůrce
Avatar
matesax:7.2.2013 16:36
  <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?

Editované
 
Hore Odpovedať
7.2.2013 16:36
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 16:40

Ten formulář je includovaný -> proto
Skript je ve formuláři.

Editované
 
Hore Odpovedať
7.2.2013 16:40
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 16:43

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.

Editované
 
Hore Odpovedať
7.2.2013 16:43
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 16:56

Také pořád získávat data - stejná data. Jednou získej - v onload a ulož. Pak volej uložené...

 
Hore Odpovedať
7.2.2013 16:56
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 17:20

Co přesně si tím myslel?

 
Hore Odpovedať
7.2.2013 17:20
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 17:31
document.forms["form"].password

Ulož...

 
Hore Odpovedať
7.2.2013 17:31
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 17:36

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.

Editované
 
Hore Odpovedať
7.2.2013 17:36
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 17:47

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.)

 
Hore Odpovedať
7.2.2013 17:47
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 18:47

Ještě otázka: k formulářům mám dát $_SERVER['PHP_SEL­F'] a nebo nechat action prázdný?

 
Hore Odpovedať
7.2.2013 18:47
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 18:57
action="/"

Osobně bych ale udělal 2 akce - login a register - tak jak to tu mám...

 
Hore Odpovedať
7.2.2013 18:57
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 19:07

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ě.

 
Hore Odpovedať
7.2.2013 19:07
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 19:13

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.

Editované
 
Hore Odpovedať
7.2.2013 19:13
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 19:18

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.

 
Hore Odpovedať
7.2.2013 19:18
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 19:22

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...)

 
Hore Odpovedať
7.2.2013 19:22
Avatar
Odpovedá na matesax
Michael Olšavský:7.2.2013 19:25

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.

 
Hore Odpovedať
7.2.2013 19:25
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 19:30

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í...

 
Hore Odpovedať
7.2.2013 19:30
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:7.2.2013 19:37

A s tím AJAXem to alespoň zkus - podívej se do DB na existenci uživatele atd...

 
Hore Odpovedať
7.2.2013 19:37
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:8.2.2013 8:47

K čemu tam máš JQuery?

 
Hore Odpovedať
8.2.2013 8:47
Avatar
Kit
Tvůrce
Avatar
Odpovedá na matesax
Kit:8.2.2013 10:26

Proč se má do DB dívat AJAXem na existenci uživatele? Tento dotaz se zásadně posílá společně s heslem.

Hore Odpovedať
8.2.2013 10:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Kit
matesax:8.2.2013 13:40

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?

 
Hore Odpovedať
8.2.2013 13:40
Avatar
Odpovedá na matesax
Michael Olšavský:8.2.2013 16:50

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.

 
Hore Odpovedať
8.2.2013 16:50
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Michael Olšavský
matesax:8.2.2013 17:09

Tak sám si psal, jak je to velké, a přitom to bez problému celé stáhneš pro 3 věci...

 
Hore Odpovedať
8.2.2013 17:09
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 39 správy z 39.