Witam.
Stworzyłem krótki formularz w pear QuickForm, który ma sprawdzać, czy wpisany wyraz jest już w bazie mysql, ale gdy klikam na submit za pierwszym razem walidacja jest robiona błędnie, dopiero, gdy po raz kolejny klikam na submit bez zmieniania czegokolwiek w formularzu, wtedy dopiero sprawdzanie danych jest wykonywane poprawnie.
Czy ktoś mógłby znaleźć błąd w moim skrypcie? Ja już straciłem pomysły co w nim zmienic...
============
require_once 'pear/QuickForm/QuickForm.php';
$form =& new HTML_QuickForm('newuser','POST');
$form->applyFilter('newlogin','trim');
// =====================================================================
// tutaj pobieram dana z bazy by ja porownac z wyrazem wpisanym w formularzu
$query = mysql_query("SELECT login FROM data WHERE login='".$form->getSubmitValue('newlogin')."' LIMIT 1");
$result = mysql_fetch_assoc($query);
if (empty($result))
$result['login'] = '';
$form->setConstants($result);
$form->addElement('hidden','login');
$form->addElement('text','newlogin','Login:',array('maxlength'=> 20));
$form->addElement('submit','submit',' Register ');
$form->addRule('newlogin','Musisz podać login!','required');
$form->addRule(array('newlogin','login'),'Wpisanego wyrazu nie ma jeszcze w bazie','compare');
if ($form->validate())
{
// wszytko ok, robie cos z otrzymanymi danymi
}
$form->display();