fork download
  1. <?php
  2. class Form
  3. {
  4. public $form;
  5. function __construct(array $form)
  6. {
  7. $this->form = $form;
  8. }
  9. function clear($data)
  10. {
  11. foreach ($this->form as $key => $value) {
  12. if (is_string($value)) {
  13. $data[$key] = trim(strip_tags($value));
  14. }
  15. if (is_int($value)) {
  16. $data[$key] = abs((int) $value);
  17. }
  18. }
  19. return $data;
  20. }
  21. function validate()
  22. {
  23. foreach ((array) $this->form as $key => $value) {
  24. if ($key == "name" && $key == "lastname") {
  25. if (strlen($value) > 200) {
  26. $error[$key] = "Введено слишком много символов, максимум можно вводить 200 символов";
  27. }
  28. }
  29. if ($key == "email") {
  30. if (preg_match("!^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$!", $value)) {
  31. } else {
  32. $error[$key] = "Почта введена некорректно";
  33. }
  34. }
  35. if ($key == "groupNumber") {
  36. if (strlen($value) > 5 or strlen($value) < 2) {
  37. $error[$key] = "Номер группы введён неправильно";
  38. }
  39. }
  40. if ($key == "point") {
  41. if ($value > 1000) {
  42. $error[$key] = "Количество баллов введено неправильно, так много быть не может";
  43. }
  44. }
  45. if ($key == "yearBorn") {
  46. (int) $value;
  47. if ($value > 2010 or $value < 1900) {
  48. $error[$key] = "Год введён неверно";
  49. }
  50. }
  51. }
  52. if (count($error) > 0) {
  53. return $error;
  54. }
  55. }
  56. }
  57. $name = "Транквилий";
  58. $lastname = "Konev";
  59. $email = "konev@gmail.com";
  60. $year = 19190;
  61. $point = 100;
  62. $groupNumber = "hh2eee3";
  63. $studentArray = array(
  64. "name" => $name,
  65. "lastname" => $lastname,
  66. "email" => $email,
  67. "yearBorn" => $year,
  68. "groupNumber" => $groupNumber,
  69. "point" => $point
  70. );
  71. $form = new Form($studentArray);
  72. if ($studentArray = $form->clear($studentArray)) {
  73. $formValidate = new Form($studentArray);
  74. $result = $formValidate->validate();
  75. if (count($result) == 0) {
  76. echo "Спасибо всё правильно введено";
  77. } else {
  78. foreach ($result as $key => $value) {
  79. echo "Поле: $key - $value \n";
  80. }
  81. }
  82. }
  83.  
Success #stdin #stdout 0.02s 24192KB
stdin
Standard input is empty
stdout
Поле: yearBorn - Год введён неверно 
Поле: groupNumber - Номер группы введён неправильно