public function getForm($action) { $form = new form_renderer($action); $form->append($tabs = new widget_tabs()); foreach ($this->info as $cat => $category) { $inputs = array(); foreach ($category['items'] as $id => $field) { $name = "options[{$cat}][{$id}]"; $value = $this->{$cat}->{$id}; $class = 'data_option_' . $field['type']; if (class_exists($class)) { $provider = new $class($field); $inputs[] = $provider->getField($name, $value); } elseif ($field['type'] == 'text') { $inputs[] = new form_field_text($name, $field['caption'], $value); } elseif ($field['type'] == 'textarea') { $inputs[] = new form_field_textarea($name, $field['caption'], $value); } elseif ($field['type'] == 'checkbox') { $inputs[] = new form_field_checkbox($name, $field['caption'], $value); } } $tabs->add(literal($category['caption']), implode('', $inputs)); } return $form; }
printf($error, 'Passwort und Wiederholung stimmen nicht überein'); } elseif ($usecap && !recaptcha_check_answer($recaptcha_privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"])->is_valid) { printf($error, 'Captcha ist inkorrekt'); } elseif ($db->query("SELECT 1 FROM `user_blocked`\n\t\t\tWHERE '%s' LIKE CONCAT('%%', `pattern`,'%%')\n\t\t\tAND `type` = 'name'", $_POST['register_name'])->num_rows()) { printf($error, 'Der Username ist unzulässig'); } elseif ($db->query("SELECT 1 FROM `user_blocked`\n\t\t\tWHERE '%s' LIKE CONCAT('%%', `pattern`,'%%')\n\t\t\tAND `type` = 'email'", $_POST['register_mail'])->num_rows()) { printf($error, 'Die E-Mail ist unzulässig'); } elseif ($db->id_get('user_data', $_POST['register_mail'], 'email')) { printf($error, 'Die angegebene E-Mail ist bereits vergeben'); } elseif ($db->id_get('user_data', $_POST['register_name'], 'name')) { printf($error, 'Der angegebene Name ist bereits vergeben'); } else { $db->insert('user_data', array('name' => $_POST['register_name'], 'email' => $_POST['register_mail'], 'pass_salt' => $salt = uniqid(), 'pass_hash' => session_iv::crypt($_POST['register_pass'], $salt), 'type' => 1)); // @TODO: Registration Mail throw new redirect(PAGE_SELF . 'completed'); } } if (isset($_GET['completed'])) { echo '<p>Registration erfolgreich und so...</p>'; } else { $captcha = '<div class="control-group"><label class="control-label" for="form_field_3">Captcha</label>' . '<div class="controls">' . recaptcha_get_html($recaptcha_publickey) . '</div></div>'; $form = new form_renderer(PAGE_SELF); $form->text('register_name', 'Username', $_POST['register_name']); $form->password('register_pass', 'Passwort'); $form->password('register_repetition', 'Wiederholung'); $form->text('register_mail', 'E-Mail', $_POST['register_mail']); if ($usecap) { $form->append($captcha); } echo $form; }