[PHP] AuthMe - WebRegistrace a WebLogin

Message
Autor
Uživatelský avatar
vasikxl
Příspěvky: 713
Registrován: 04 bře 2013, 20:57
Reputation: 0

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#11 Příspěvekod vasikxl » 22 črc 2013, 10:34

No, no, no, máš něco proti Čechům :lol:

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#12 Příspěvekod Mysteria » 22 črc 2013, 11:53

Tak tady máš moji verzi Zdendo, jak jsem slíbil (obsahuje i výběr mezi MD5, SHA1 a SHA256).
Spoiler: zobrazit

Kód: Vybrat vše

<!DOCTYPE html>
<
html xmlns='http://www.w3.org/1999/xhtml' lang='cs'>
    <head>
        <meta charset='UTF-8' />
        <meta name='author' content='Mysteria' />
        <meta name='description' content='' />
        <meta name='keywords' content='' />
        <meta name='robots' content='index, FOLLOW' />
        <title>AuthMe Registrace</title>
        <style>
            .register input { display: block; width: 200px; margin-bottom: 2px; box-sizing: border-box; -ms-box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
        </style>
    </head>
    <body>
        <form class='register' action='register.php' method='post'>
            <input type='text' name='name' value='' placeholder='Zadejte své jméno' required />
            <input type='password' name='password' value='' placeholder='Zadejte své heslo' required />
            <input type='password' name='password2' value='' placeholder='Zadejte své heslo znovu' required />
            <input type='submit' name='submit' value='Registrovat' />
        </form>
    </body>
</
html>
<?
php
$dbHost 
= 'localhost';
$dbUser = 'root';
$dbPw = 'password';
$dbName = 'web';
$hash = 'SHA256';
$maxAccPerIP = 10;

$db = new mysqli($dbHost, $dbUser, $dbPw, $dbName);
if (!empty($_POST['name']) && !empty($_POST['password']) && !empty($_POST['password2'])) {
    if (!$db->connect_errno) {
        if ($ps = $db->prepare('SELECT COUNT(*) FROM authme WHERE username = ?')) {
            $ps->bind_param('s', $_POST['name']);
            $ps->execute(); $ps->bind_result($count); $ps->fetch(); $ps->close();
            if ($count === 0) {
                if ($_POST['password'] === $_POST['password2']) {
                    if ($ps = $db->prepare('SELECT COUNT(*) FROM authme WHERE ip = ?')) {
                        $ps->bind_param('s', $_SERVER['REMOTE_ADDR']);
                        $ps->execute(); $ps->bind_result($count); $ps->fetch(); $ps->close();
                        if ($count < $maxAccPerIP) {
                            switch ($hash) {
                                case 'MD5':
                                    $pw = hash('md5', $_POST['password']); break;
                                case 'SHA1':
                                    $pw = hash('sha1', $_POST['password']); break;
                                case 'SHA256':
                                    $salt = (string)mt_rand(10000000, 999999999) . (string)mt_rand(10000000, 999999999);
                                    $pw = hash('sha256', $_POST['password']) . $salt;
                                    $pw = '$SHA$' . $salt . '$' . hash('sha256', $pw);
                                    break;
                            }
                            $authMeTime = time() * 1000;
                            if ($ps = $db->prepare('INSERT INTO authme (username, password, ip, lastlogin) VALUES (?, ?, ?, ?)')) {
                                $ps->bind_param('sssi', $_POST['name'], $pw, $_SERVER['REMOTE_ADDR'], $authMeTime);
                                if ($ps->execute()) {
                                    echo 'Registrace proběhla úspěšně!';
                                } else { echo 'Litujeme, ale registrace selhala (chyba: ' . $ps->errno . ' - ' . $ps->error . ').'; }
                            } else { echo 'Litujeme, ale registrace selhala (chyba: ' . $db->errno . ' - ' . $db->error . ').'; }
                        } else { echo 'Litujeme, ale z Vaší IP adresy je zaregistrováno příliš mnoho účtů.'; }
                    } else { echo 'Litujeme, ale registrace selhala (chyba: ' . $db->errno . ' - ' . $db->error . ').'; }
                } else { echo 'Litujeme, ale Vámi zadaná hesla se neshodují, zadejte je prosím znovu.'; }
            } else { echo 'Litujeme, ale Vámi zadaný nick již někdo používá, zadejte prosím jiný.'; };
        } else { echo 'Litujeme, ale registrace selhala (chyba: ' . $db->errno . ' - ' . $db->error . ').'; }
        $db->close();
    } else { echo 'Litujeme, nepodařilo se připojit k databázi (chyba: ' . $db->connect_errno . ' - ' . $db->connect_error . ').'; }
}
 

Uživatelský avatar
zdenda204
Příspěvky: 3617
Věk: 35
Registrován: 23 kvě 2012, 21:38
Reputation: 0

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#13 Příspěvekod zdenda204 » 22 črc 2013, 13:09

Super, ty ify se mi líbí :)
Ještě na netu vyčtu něco o tom bindování abych to pochopil a dodělám ten hash :)
Jen tam máš takovou chybku :) Neukončil jsi PHP :P
Přijímám zakázky na skripty/pluginy v PHP/Javě za malý poplatky! A kup mi sušenku :) Obrázek Obrázek
⇨Projekt Market⇦

Uživatelský avatar
nejento
Příspěvky: 9815
Registrován: 28 lis 2011, 14:09
Reputation: 55
Kontaktovat uživatele:

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#14 Příspěvekod nejento » 22 črc 2013, 14:20

On ti udělá takovouhle skvělou výpomoc a ty jsi ještě drzej...
Obrázek

Obrázek Přidejte se ke komunitě zákazníků na FakaHeda.eu Discord! Poznejte nové lidi nebo vyřešte svůj technický problém živě: http://discord.fakaheda.eu/

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#15 Příspěvekod Mysteria » 22 črc 2013, 15:35

To bindování je jenom součást MySQLi prepared statements, tedy toho, co zabraňuje SQL injection bez nutnosti používat nějaký escapovací funkce, o všechno se to postará 'samo'.
Co se týká neukončenýho PHPka, tak to není chyba, nýbrž doporučovaná věc, správně by se pokud za tím nenásleduje ještě nějaký HTMLko, by se ukončovací značka psát neměla. :)

nejento: Já mu oplácím to, jak kritizuje všechny ostatní, ať si taky užije. :P

Uživatelský avatar
zdenda204
Příspěvky: 3617
Věk: 35
Registrován: 23 kvě 2012, 21:38
Reputation: 0

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#16 Příspěvekod zdenda204 » 22 črc 2013, 17:15

Já nikoho nekritizuju :D
Ukaž pět příspěvků, kde tedy někoho kritizuju :D
Ale tak, já jsem za to vděčnej, aspoň se zase něco přiučím :P Jen to nemusel dávat veřejně :D
Přijímám zakázky na skripty/pluginy v PHP/Javě za malý poplatky! A kup mi sušenku :) Obrázek Obrázek
⇨Projekt Market⇦

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#17 Příspěvekod Mysteria » 22 črc 2013, 19:32

Právě že musel, jenom počkej, až se zejtra ráno podívám na ten login, to bude určitě ještě větší trapas, jako bych to už viděl. :P :mrgreen:

Uživatelský avatar
nejento
Příspěvky: 9815
Registrován: 28 lis 2011, 14:09
Reputation: 55
Kontaktovat uživatele:

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#18 Příspěvekod nejento » 22 črc 2013, 23:11

zdendo taky pak budu hledat, ano? :D
Obrázek

Obrázek Přidejte se ke komunitě zákazníků na FakaHeda.eu Discord! Poznejte nové lidi nebo vyřešte svůj technický problém živě: http://discord.fakaheda.eu/

Uživatelský avatar
zdenda204
Příspěvky: 3617
Věk: 35
Registrován: 23 kvě 2012, 21:38
Reputation: 0

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#19 Příspěvekod zdenda204 » 22 črc 2013, 23:32

Hoši, vy mě tak štvete :D
Radši pochvalu kdyby jste napsali, nebo v čem se zlepšit a tak :) (Mysty už má splněno :))
Přijímám zakázky na skripty/pluginy v PHP/Javě za malý poplatky! A kup mi sušenku :) Obrázek Obrázek
⇨Projekt Market⇦

Uživatelský avatar
Dawe5
Příspěvky: 358
Registrován: 23 srp 2012, 10:55
Reputation: 1
Kontaktovat uživatele:

Re: [PHP] AuthMe - WebRegistrace a WebLogin

#20 Příspěvekod Dawe5 » 04 srp 2013, 18:02

Dočkáme se ? :D
Obrázek


Zpět na „Návody“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů