form_processing.lib.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Formset processing library
  5. *
  6. * @package PhpMyAdmin-Setup
  7. */
  8. /**
  9. * Processes forms registered in $form_display, handles error correction
  10. *
  11. * @param FormDisplay $form_display
  12. *
  13. * @return void
  14. */
  15. function process_formset(FormDisplay $form_display)
  16. {
  17. if (isset($_GET['mode']) && $_GET['mode'] == 'revert') {
  18. // revert erroneous fields to their default values
  19. $form_display->fixErrors();
  20. // drop post data
  21. header('HTTP/1.1 303 See Other');
  22. header('Location: index.php');
  23. exit;
  24. }
  25. if (!$form_display->process(false)) {
  26. // handle form view and failed POST
  27. $form_display->display(true, true);
  28. } else {
  29. // check for form errors
  30. if ($form_display->hasErrors()) {
  31. // form has errors, show warning
  32. $separator = PMA_get_arg_separator('html');
  33. $page = isset($_GET['page']) ? $_GET['page'] : null;
  34. $formset = isset($_GET['formset']) ? $_GET['formset'] : null;
  35. $formset = $formset ? "{$separator}formset=$formset" : '';
  36. $id = PMA_isValid($_GET['id'], 'numeric') ? $_GET['id'] : null;
  37. if ($id === null && $page == 'servers') {
  38. // we've just added a new server, get it's id
  39. $id = ConfigFile::getInstance()->getServerCount();
  40. }
  41. $id = $id ? "{$separator}id=$id" : '';
  42. ?>
  43. <div class="error">
  44. <h4><?php echo __('Warning') ?></h4>
  45. <?php echo __('Submitted form contains errors') ?><br />
  46. <a href="?page=<?php echo $page . $formset . $id . $separator . PMA_generate_common_url() . $separator ?>mode=revert"><?php echo __('Try to revert erroneous fields to their default values') ?></a>
  47. </div>
  48. <?php $form_display->displayErrors() ?>
  49. <a class="btn" href="index.php?<?php echo PMA_generate_common_url() ?>"><?php echo __('Ignore errors') ?></a>
  50. &nbsp;
  51. <a class="btn" href="?page=<?php echo $page . $formset . $id . $separator . PMA_generate_common_url() . $separator ?>mode=edit"><?php echo __('Show form') ?></a>
  52. <?php
  53. } else {
  54. // drop post data
  55. header('HTTP/1.1 303 See Other');
  56. header('Location: index.php');
  57. exit;
  58. }
  59. }
  60. }
  61. ?>