Validace – ověření shodnosti hesla a potvrzení hesla
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- pjoter
- Člen | 118
Prolezl jsem dokumentaci i fórum a poskládal jsem dokupy tohle:
<?php
require_once dirname(__FILE__) . '/BasePresenter.php';
class RegisterPresenter extends BasePresenter
{
public function renderDefault()
{
$this->template->form = $this['form'];
}
protected function createComponentForm($name)
{
$form = new AppForm($this, $name);
$form->addGroup();
$form->addText('jmeno', 'Jméno:', 32)
->addRule(Form::FILLED, 'Zadejte jméno.');
$form->addText('prijmeni', 'Příjmení:', 32)
->addRule(Form::FILLED, 'Zadejte příjmení.');
$form->addText('email', 'Email:', 35)
->addCondition(Form::FILLED)
->addRule(Form::EMAIL, 'Zadali jste neplatný email.');
$form->addPassword('heslo', 'Heslo:');
$form->addPassword('hesloCheck', 'Potvrzení hesla:')
->addConditionOn($form->getComponent('heslo'), Form::EQUAL, FALSE, 'Udělali jste chybu při potvrzení hesla.');
$form->addGroup();
$form->addSubmit('submit1', 'Registrovat se')->onClick[] = array($this, 'okClicked');
return $form;
}
public function okClicked(SubmitButton $form)
{
$values = $form->form->getValues();
// this is the end, my friend :-)
if (empty($disableExit)) exit;
}
}
?>
Potřebuji aby při špatném zadání vyskočilo okno s hláškou že bylo
zadáno špatně. Bere mi to ovšem všechno a nevypíše nic..
Děkuju za každou radu
Editoval pjoter (22. 8. 2009 18:48)
- Foowie
- Člen | 269
Já mám v projektu něco takového:
<?php
$form->addPassword("password", "Heslo: *")
->addRule(Form::FILLED, "Heslo musí být vyplněné !");
$form->addPassword("confirm_password", "Znovu heslo: *")
->addRule(Form::FILLED, "Potvrzovací heslo musí být vyplněné !")
->addConditionOn($form["password"], Form::FILLED)
->addRule(Form::EQUAL, "Hesla se musí shodovat !", $form["password"]);
?>
- Honza Kuchař
- Člen | 1662
Zalezi jestli to chceš použit v cele aplikaci nebo jenom v jednom presenteru
- pjoter
- Člen | 118
Mam to takhle ale porad stejna chyba
<?php
require_once dirname(__FILE__) . '/BasePresenter.php';
class RegisterPresenter extends BasePresenter
{
public function renderDefault()
{
$this->template->form = $this['form'];
}
protected function createComponentForm($name)
{
RobotLoader::load('Captcha');
//Form::extensionMethod('addCaptcha', array('Captcha', 'addCaptcha'));
$form = new AppForm($this, $name);
$form->addGroup();
$form->addText('jmeno', 'Jméno:', 32)
->addRule(Form::FILLED, 'Zadejte jméno.');
$form->addText('prijmeni', 'Příjmení:', 32)
->addRule(Form::FILLED, 'Zadejte příjmení.');
$form->addText('email', 'Email:', 35)
->addCondition(Form::FILLED)
->addRule(Form::EMAIL, 'Zadali jste neplatný email.');
$form->addPassword('heslo', 'Heslo:')
->addRule(Form::FILLED, 'Zadejte heslo.');
$form->addPassword('hesloCheck', 'Potvrzení hesla:')
->addRule(Form::FILLED, "Zadejte potvrzovací heslo.")
->addConditionOn($form["hesloCheck"], Form::FILLED)
->addRule(Form::EQUAL, "Hesla se musí shodovat !", $form["heslo"]);
$form->addCaptcha('captcha', 'Antispam')
->setTextColor(Image::rgb(255, 0, 0))
->addRule(Form::VALID, 'Opište správně písmena z obrázku.');
$form->addGroup();
$form->addSubmit('submit1', 'Registrovat se')->onClick[] = array($this, 'okClicked');
return $form;
}
public function okClicked(SubmitButton $form)
{
$values = $form->form->getValues();
// this is the end, my friend :-)
if (empty($disableExit)) exit;
}
}
?>
- rokerkony
- Člen | 122
me pomohlo zavolani
class_exists('Captcha');
mam to takhle:
class_exists('Captcha'); // tohle inicializuje tridu captcha :)
$form = new AppForm($this, 'guestBookForm');
$captcha = new Captcha('bookCaptcha');
$form['captcha'] = $captcha;
$form['captcha']->setTextColor(Image::rgb(255, 0, 0))
->addRule(Form::VALID, 'Opište správná písmena z obrázku.');