Zatím testovací příspěvek…
Takto nějak vypadá můj script pro registraci uživatelů napsaný ve frameworku NETTE a databázovou vrstvou dibi.
<?php require 'Nette.minified/loader.php'; require 'dibi/dibi.php'; // nastavime dibi dibi::connect(array( 'driver' => 'mysql', 'host' => 'localhost', 'username' => 'root', 'password' => '****', 'database' => 'db_name', 'charset' => 'utf8', )); function myValidator($item) { $result = dibi::query('SELECT [id] FROM [user] WHERE [nick]=%s', $item->getValue()); return (count($result) === 0); } $form = new Form; echo '<h1>Registrace</h1>'; $form->addText('nick', 'Nick (přihlašovací jméno):*') ->addRule(Form::FILLED, 'Zadejte prosím nick.') ->addRule('myValidator', 'Tento nick už má někdo registrován.'); $form->addPassword('pass', 'Heslo:*') ->addRule(Form::FILLED, 'Zadejte prosím heslo.') ->addRule(Form::MIN_LENGTH, 'Zadané heslo je příliš krátké, zvolte si heslo alespoň o %d znacích.', 5); $form->addPassword('pass2', 'Heslo (pro kontrolu):*') ->addRule(Form::FILLED, 'Zadejte heslo ještě jednou pro kontrolu.') ->addRule(Form::EQUAL, 'Zadané hesla se neshodují.', $form['pass']); $form->addText('email', 'E-mail:*') ->setEmptyValue('@') ->addRule(Form::EMAIL, 'Zadejte prosím platný e-mail.'); $form->addText('icq', 'ICQ:'); $form->addText('skype', 'Skype:'); $form->addRadioList('news', 'Odebírat novinky:', array('ano' => 'ano', 'ne' => 'ne')); $form->addText('link', 'Link:')->addCondition(Form::FILLED) ->addRule(Form::URL, 'Link nemá formát webové adresy.'); $form->addSubmit('send', 'Registrovat'); if ($form->isSubmitted()) { if ($form->isValid()) { $values = $form->getValues(); // vytvoření kontrolního hashe $kontrolni_link = sha1($values['nick'] . time() . 'e743dd075ff52c2'); unset($values['pass2']); // druhé heslo neukládáme $values['retik'] = $kontrolni_link; dibi::query('INSERT INTO [user]', $values); #mail pro kontrolu $mail = new Mail; $mail->setFrom('Registrace na webu xxx.com <info@xxx.com>'); $mail->addTo($values['email']); $mail->setSubject('Registrace na webu xxx.com'); $mail->setBody("Děkujeme za Váši registraci. Potvrďte prosím na adrese http://xxx.com/registrace.php?kontrola={$kontrolni_link}"); $mail->send(); echo 'registrace dokončena.'; } else { $form->setDefaults(); echo $form; } } else { $form->setDefaults(array('news' => 'ne')); echo $form; } ?> |
Ahoj, jméno domény nemusíš mít v odesílání mailů natvrdo, stačí ho dynamycky vygenerovat pomocí $this->link() …
Jak si ten skript procházím, nidke nevidím zápis hesla, není tam?
Ahoj, zápis hesla?
Nebo přesně nechápu co myslíš?
zdravim,
chtel jsem se jenom zeptat jestli bys mohl postnout dokonceni registrace(ziskani parametr z linku atd).protoze jak se snazim tak jse snaznim porad nevim nato dojit…
Ahoj, ok zkusím to co nejdříve zařadit. Děkuji za námět.
Pingback: Jak na potvrzení registrace v NETTE? | Jan Kocmánek bloguje !!!
Jo jo, tak zápis hesla tam je… Mě by se spíš hodilo přihlášení v Nette.
Na serveru ROOT vyšel nejen k tomuto tématu velice povedený seriál.
http://zdrojak.root.cz/serialy/zaciname-s-nette-framework/
test (2 se neodeslali)
Aha, tak ono se to neodeslalo kvůli odkazu, tak na to kašlu, máš ICQ, nebo Skype? Rád bych se stebou o jednom tutoriálu z zdrojak pobavil. Díky