diff options
Diffstat (limited to '')
| -rw-r--r-- | hugo/setup/lib/form_processing.lib.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/hugo/setup/lib/form_processing.lib.php b/hugo/setup/lib/form_processing.lib.php new file mode 100644 index 0000000..d9b6e6a --- /dev/null +++ b/hugo/setup/lib/form_processing.lib.php @@ -0,0 +1,62 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Formset processing library + * + * @package PhpMyAdmin-Setup + */ + +/** + * Processes forms registered in $form_display, handles error correction + * + * @param FormDisplay $form_display + * + * @return void + */ +function process_formset(FormDisplay $form_display) +{ + if (filter_input(INPUT_GET, 'mode') == 'revert') { + // revert erroneous fields to their default values + $form_display->fixErrors(); + // drop post data + header('HTTP/1.1 303 See Other'); + header('Location: index.php'); + exit; + } + if (!$form_display->process(false)) { + // handle form view and failed POST + $form_display->display(true, true); + } else { + // check for form errors + if ($form_display->hasErrors()) { + // form has errors, show warning + $separator = PMA_get_arg_separator('html'); + $page = filter_input(INPUT_GET, 'page'); + $formset = filter_input(INPUT_GET, 'formset'); + $formset = $formset ? "{$separator}formset=$formset" : ''; + $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT); + if ($id === null && $page == 'servers') { + // we've just added a new server, get it's id + $id = ConfigFile::getInstance()->getServerCount(); + } + $id = $id ? "{$separator}id=$id" : ''; + ?> + <div class="error"> + <h4><?php echo __('Warning') ?></h4> + <?php echo __('Submitted form contains errors') ?><br /> + <a href="?page=<?php echo $page . $formset . $id . $separator ?>mode=revert"><?php echo __('Try to revert erroneous fields to their default values') ?></a> + </div> + <?php $form_display->displayErrors() ?> + <a class="btn" href="index.php"><?php echo __('Ignore errors') ?></a> + + <a class="btn" href="?page=<?php echo $page . $formset . $id . $separator ?>mode=edit"><?php echo __('Show form') ?></a> + <?php + } else { + // drop post data + header('HTTP/1.1 303 See Other'); + header('Location: index.php'); + exit; + } + } +} +?> |
